diff --git a/package/android/CMakeLists.txt b/package/android/CMakeLists.txt index c65328cf..9deb327e 100644 --- a/package/android/CMakeLists.txt +++ b/package/android/CMakeLists.txt @@ -24,6 +24,8 @@ find_package(ReactAndroid REQUIRED CONFIG) find_package(fbjni REQUIRED CONFIG) find_library(LOG_LIB log) +include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/RNF+autolinking.cmake) + # Add react-native-filament sources add_library( ${PACKAGE_NAME} @@ -127,7 +129,7 @@ target_link_libraries( ) # Link with RNWC: -if (IS_OLD_ARCHITECTURE_ENABLED) +if(IS_OLD_ARCHITECTURE_ENABLED) # On the old arch RNWC publishes a prefab that we need to find (and it has a different name): find_package(react-native-worklets-core REQUIRED CONFIG) message("RN Filament: react-native-worklets core found! Enabling Worklets support...") @@ -136,13 +138,14 @@ if (IS_OLD_ARCHITECTURE_ENABLED) ${PACKAGE_NAME} react-native-worklets-core::rnworklets ) -else () +else() target_link_libraries( - ${PACKAGE_NAME} - react_codegen_rnfilament # link against the codegen generated library of rnf (needed so this module is compiled correctly) - react-native-worklets-core + ${PACKAGE_NAME} + react_codegen_rnfilament # link against the codegen generated library of rnf (needed so this module is compiled correctly) + react-native-worklets-core ) endif() + add_definitions(-DHAS_WORKLETS=1) # Filament (local CMake project as a git submodule) diff --git a/package/cpp/RNFChoreographer.cpp b/package/cpp/RNFChoreographer.cpp index 21b2b351..bf750069 100644 --- a/package/cpp/RNFChoreographer.cpp +++ b/package/cpp/RNFChoreographer.cpp @@ -16,7 +16,7 @@ void Choreographer::onFrame(double timestamp) { } void Choreographer::removeAllListeners() { - Logger::log(TAG, "Removing all listeners"); + margelo::Logger::log(TAG, "Removing all listeners"); // Simply create a new ListenerManager, so the memory of the old one gets freed. _listeners = ListenerManager::create(); } diff --git a/package/cpp/RNFChoreographer.h b/package/cpp/RNFChoreographer.h index 83813d0d..26c40705 100644 --- a/package/cpp/RNFChoreographer.h +++ b/package/cpp/RNFChoreographer.h @@ -4,7 +4,8 @@ #pragma once -#include "RNFListener.h" +#include "RNFLogger.h" +#include "HybridListenerSpec.hpp" #include "RNFListenerManager.h" #include @@ -14,7 +15,7 @@ class Choreographer { public: explicit Choreographer() {} ~Choreographer() { - Logger::log("Choreographer", "(MEMORY) Deleting Choreographer... ❌"); + margelo::Logger::log("Choreographer", "(MEMORY) Deleting Choreographer... ❌"); } using OnFrameCallback = std::function; diff --git a/package/cpp/RNFChoreographerWrapper.cpp b/package/cpp/RNFChoreographerWrapper.cpp index b8f93746..c702b8c9 100644 --- a/package/cpp/RNFChoreographerWrapper.cpp +++ b/package/cpp/RNFChoreographerWrapper.cpp @@ -12,13 +12,6 @@ ChoreographerWrapper::~ChoreographerWrapper() { stopAndRemoveListeners(); } -void ChoreographerWrapper::loadHybridMethods() { - registerHybridMethod("start", &ChoreographerWrapper::start, this); - registerHybridMethod("stop", &ChoreographerWrapper::stop, this); - registerHybridMethod("addFrameCallbackListener", &ChoreographerWrapper::addFrameCallbackListener, this); - registerHybridMethod("release", &ChoreographerWrapper::release, this, true); -} - void ChoreographerWrapper::start() { std::unique_lock lock(_mutex); @@ -31,17 +24,17 @@ void ChoreographerWrapper::stop() { pointee()->stop(); } -std::shared_ptr ChoreographerWrapper::addFrameCallbackListener(RenderCallback onFrameCallback) { +std::shared_ptr ChoreographerWrapper::addFrameCallbackListener(const std::function& callback) { std::unique_lock lock(_mutex); - Logger::log(TAG, "Adding frame callback listener"); + margelo::Logger::log(HybridChoreographerSpec::TAG, "Adding frame callback listener"); std::weak_ptr weakThis = shared(); - return pointee()->addOnFrameListener([weakThis, onFrameCallback](double timestamp) { + return pointee()->addOnFrameListener([weakThis, callback](double timestamp) { auto sharedThis = weakThis.lock(); if (sharedThis) { FrameInfo frameInfo = sharedThis->createFrameInfo(timestamp); - onFrameCallback(frameInfo); + callback(frameInfo); } }); } @@ -57,42 +50,38 @@ FrameInfo ChoreographerWrapper::createFrameInfo(double timestamp) { double passedSeconds = (timestamp - _startTime) / 1e9; double timeSinceLastFrame = (timestamp - _lastFrameTime) / 1e9; _lastFrameTime = timestamp; - return { - {"timestamp", timestamp}, - {"passedSeconds", passedSeconds}, - {"startTime", _startTime}, - {"timeSinceLastFrame", timeSinceLastFrame}, - }; + return FrameInfo(timestamp, _startTime, passedSeconds, timeSinceLastFrame); } void ChoreographerWrapper::stopAndRemoveListeners() { // Its possible that the pointer was already released manually by the user - if (!getIsValid()) { - Logger::log(TAG, "stopAndRemoveListeners() called but Choreographer is invalid already!"); + if (!HybridPointerHolder::getIsValid()) { + margelo::Logger::log(HybridChoreographerSpec::TAG, "stopAndRemoveListeners() called but Choreographer is invalid already!"); return; } - Logger::log(TAG, "Stopping choreographer and removing listeners..."); + margelo::Logger::log(HybridChoreographerSpec::TAG, "Stopping choreographer and removing listeners..."); pointee()->stop(); // Clear all listeners now - that will cause the listeners function destructors to be called // When onRuntimeDestroyed gets called we still have time to stopAndRemoveListeners our jsi functions (RenderCallback): pointee()->removeAllListeners(); } -void ChoreographerWrapper::release() { - std::unique_lock lock(_mutex); - stopAndRemoveListeners(); - PointerHolder::release(); -} +// TODO: tries to overwrite release from PointerHolder +//void ChoreographerWrapper::release() { +// std::unique_lock lock(_mutex); +// stopAndRemoveListeners(); +// PointerHolder::release(); +//} void ChoreographerWrapper::onRuntimeDestroyed(jsi::Runtime*) { std::unique_lock lock(_mutex); - Logger::log(TAG, "Runtime destroyed..."); + margelo::Logger::log(HybridChoreographerSpec::TAG, "Runtime destroyed..."); stopAndRemoveListeners(); } std::shared_ptr ChoreographerWrapper::getChoreographer() { - if (getIsValid()) { + if (HybridPointerHolder::getIsValid()) { return pointee(); } return nullptr; diff --git a/package/cpp/RNFChoreographerWrapper.h b/package/cpp/RNFChoreographerWrapper.h index cb7d862e..9f614aa4 100644 --- a/package/cpp/RNFChoreographerWrapper.h +++ b/package/cpp/RNFChoreographerWrapper.h @@ -4,18 +4,18 @@ #pragma once +#include "HybridChoreographerSpec.hpp" #include "RNFChoreographer.h" -#include "jsi/RNFPointerHolder.h" +#include "jsi/RNFHybridPointerHolder.h" #include "jsi/RNFRuntimeCache.h" namespace margelo { -using FrameInfo = std::unordered_map; -using RenderCallback = std::function; +using namespace nitro::RNF; -class ChoreographerWrapper : public PointerHolder, public RuntimeLifecycleListener { +class ChoreographerWrapper : public HybridChoreographerSpec, public HybridPointerHolder, public RuntimeLifecycleListener { public: - explicit ChoreographerWrapper(std::shared_ptr choreographer) : PointerHolder(TAG, choreographer) {} + explicit ChoreographerWrapper(std::shared_ptr choreographer) : HybridChoreographerSpec(), HybridPointerHolder(HybridChoreographerSpec::TAG, choreographer) {} ~ChoreographerWrapper() override; void loadHybridMethods() override; @@ -25,9 +25,9 @@ class ChoreographerWrapper : public PointerHolder, public Runtime friend class FilamentView; // Allow filament view to access protected method private: // Exposed JS API - void start(); - void stop(); - std::shared_ptr addFrameCallbackListener(RenderCallback onFrameCallback); + void start() override; + void stop() override; + std::shared_ptr addFrameCallbackListener(const std::function& callback) override; void release() override; private: // Internal @@ -39,8 +39,5 @@ class ChoreographerWrapper : public PointerHolder, public Runtime std::mutex _mutex; double _startTime = 0; double _lastFrameTime = 0; - -private: - static constexpr auto TAG = "ChoreographerWrapper"; }; } // namespace margelo diff --git a/package/cpp/RNFFilamentBuffer.h b/package/cpp/RNFFilamentBuffer.h index 3fc1a4b5..865b7921 100644 --- a/package/cpp/RNFFilamentBuffer.h +++ b/package/cpp/RNFFilamentBuffer.h @@ -1,14 +1,13 @@ #pragma once #include "RNFManagedBuffer.h" -#include "jsi/RNFPointerHolder.h" +#include "jsi/RNFHybridPointerHolder.h" namespace margelo { -class FilamentBuffer : public PointerHolder { +class FilamentBuffer : public HybridPointerHolder { public: - explicit FilamentBuffer(std::shared_ptr buffer) : PointerHolder("FilamentBuffer", buffer) {} - void loadHybridMethods() override {} + explicit FilamentBuffer(std::shared_ptr buffer) : HybridPointerHolder("FilamentBuffer", buffer) {} std::shared_ptr getBuffer() { return pointee(); diff --git a/package/cpp/RNFFilamentProxy.cpp b/package/cpp/RNFFilamentProxy.cpp index c881994d..b5d7bf3b 100644 --- a/package/cpp/RNFFilamentProxy.cpp +++ b/package/cpp/RNFFilamentProxy.cpp @@ -45,18 +45,18 @@ bool FilamentProxy::getHasWorklets() { #if HAS_WORKLETS std::shared_ptr FilamentProxy::createWorkletContext() { - Logger::log(TAG, "Creating Worklet Context..."); + margelo::Logger::log(TAG, "Creating Worklet Context..."); auto jsDispatcher = getJSDispatcher(); auto runOnJS = [=](std::function&& function) { jsDispatcher->runAsync(std::move(function)); }; auto renderThreadDispatcher = getRenderThreadDispatcher(); auto runOnWorklet = [=](std::function&& function) { renderThreadDispatcher->runAsync(std::move(function)); }; auto& runtime = getMainJSRuntime(); auto workletContext = std::make_shared("FilamentRenderer", &runtime, runOnJS, runOnWorklet); - Logger::log(TAG, "Successfully created WorkletContext! Installing global Dispatcher..."); + margelo::Logger::log(TAG, "Successfully created WorkletContext! Installing global Dispatcher..."); workletContext->invokeOnWorkletThread([=](RNWorklet::JsiWorkletContext*, jsi::Runtime& runtime) { - Dispatcher::installRuntimeGlobalDispatcher(runtime, renderThreadDispatcher); - Logger::log(TAG, "Successfully installed global Dispatcher in WorkletContext!"); + margelo::Dispatcher::installRuntimeGlobalDispatcher(runtime, renderThreadDispatcher); + margelo::Logger::log(TAG, "Successfully installed global Dispatcher in WorkletContext!"); }); return workletContext; @@ -64,11 +64,11 @@ std::shared_ptr FilamentProxy::createWorkletContex #endif jsi::Value FilamentProxy::getCurrentDispatcher(jsi::Runtime& runtime, const jsi::Value&, const jsi::Value*, size_t) { - return Dispatcher::getRuntimeGlobalDispatcherHolder(runtime); + return margelo::Dispatcher::getRuntimeGlobalDispatcherHolder(runtime); } std::future> FilamentProxy::loadAssetAsync(const std::string& path) { - Logger::log(TAG, "Loading asset %s...", path.c_str()); + margelo::Logger::log(TAG, "Loading asset %s...", path.c_str()); auto weakThis = std::weak_ptr(shared()); auto dispatcher = getBackgroundDispatcher(); return dispatcher->runAsyncAwaitable>([weakThis, path]() { @@ -82,7 +82,7 @@ std::future> FilamentProxy::loadAssetAsync(const } std::future> FilamentProxy::findFilamentViewAsync(int id) { - Logger::log(TAG, "Finding FilamentView #%i...", id); + margelo::Logger::log(TAG, "Finding FilamentView #%i...", id); auto weakThis = std::weak_ptr(shared()); auto dispatcher = getUIDispatcher(); return dispatcher->runAsyncAwaitable>([weakThis, id]() { @@ -96,15 +96,15 @@ std::future> FilamentProxy::findFilamentViewAsync( } std::shared_ptr FilamentProxy::createTestObject() { - Logger::log(TAG, "Creating TestObject..."); + margelo::Logger::log(TAG, "Creating TestObject..."); return std::make_shared(); } std::shared_ptr FilamentProxy::createEngine(std::optional backend, std::optional> arguments) { - Logger::log(TAG, "Creating Engine..."); + margelo::Logger::log(TAG, "Creating Engine..."); - std::shared_ptr renderThread = getRenderThreadDispatcher(); + std::shared_ptr renderThread = getRenderThreadDispatcher(); Engine::Config config = EngineConfigHelper::makeConfigFromUserParams(arguments); Engine::Backend backendEnum = Engine::Backend::DEFAULT; @@ -118,14 +118,14 @@ std::shared_ptr FilamentProxy::createEngine(std::optionalrunAsync([engine]() { - Logger::log(TAG, "Destroying engine..."); + margelo::Logger::log(TAG, "Destroying engine..."); Engine::destroy(engine); }); }); // Get screen refresh rate float refreshRate = getDisplayRefreshRate(); - Logger::log(TAG, "Display refresh rate: %f Hz", refreshRate); + margelo::Logger::log(TAG, "Display refresh rate: %f Hz", refreshRate); float densityPixelRatio = getDensityPixelRatio(); @@ -136,13 +136,13 @@ std::shared_ptr FilamentProxy::createEngine(std::optional FilamentProxy::createBullet() { - Logger::log(TAG, "Creating Bullet..."); + margelo::Logger::log(TAG, "Creating Bullet..."); return std::make_shared(); } jsi::Value FilamentProxy::createChoreographerWrapper(jsi::Runtime& runtime, const jsi::Value&, const jsi::Value*, size_t) { - Logger::log(TAG, "Creating Choreographer..."); + margelo::Logger::log(TAG, "Creating Choreographer..."); std::shared_ptr choreographer = createChoreographer(); ChoreographerWrapper* choreographerWrapperPtr = new ChoreographerWrapper(choreographer); @@ -157,7 +157,7 @@ jsi::Value FilamentProxy::createChoreographerWrapper(jsi::Runtime& runtime, cons delete ptr; }); - return JSIConverter>::toJSI(runtime, choreographerWrapper); + return margelo::JSIConverter>::toJSI(runtime, choreographerWrapper); } } // namespace margelo diff --git a/package/cpp/RNFFilamentProxy.h b/package/cpp/RNFFilamentProxy.h index 6cf84b00..1a50a543 100644 --- a/package/cpp/RNFFilamentProxy.h +++ b/package/cpp/RNFFilamentProxy.h @@ -10,6 +10,7 @@ #include #include +#include "HybridFilamentProxy.hpp" #include "RNFChoreographer.h" #include "RNFChoreographerWrapper.h" #include "RNFFilamentBuffer.h" @@ -36,8 +37,9 @@ namespace margelo { using namespace facebook; +using namespace margelo::RNF; -class FilamentProxy : public HybridObject { +class FilamentProxy : public margelo::HybridObject { public: explicit FilamentProxy() : HybridObject(TAG) {} @@ -51,22 +53,22 @@ class FilamentProxy : public HybridObject { /** * Get the Dispatcher for the main react JS thread. */ - virtual std::shared_ptr getJSDispatcher() = 0; + virtual std::shared_ptr getJSDispatcher() = 0; /** * Get the Dispatcher that is responsible for rendering to Filament. * This is guaranteed to only use a single Thread, as opposed to a Thread-pool. */ - virtual std::shared_ptr getRenderThreadDispatcher() = 0; + virtual std::shared_ptr getRenderThreadDispatcher() = 0; /** * Get the Dispatcher for the platform-default UI Thread. * This is guaranteed to only use a single Thread, as opposed to a Thread-pool. */ - virtual std::shared_ptr getUIDispatcher() = 0; + virtual std::shared_ptr getUIDispatcher() = 0; /** * Get a Dispatcher that uses a Thread-pool for background operations such as File I/O. * This Dispatcher may use multiple Threads to run code. */ - virtual std::shared_ptr getBackgroundDispatcher() = 0; + virtual std::shared_ptr getBackgroundDispatcher() = 0; /** * Get the refresh rate of the display in Hz. * Needed for correct frame pacing and dynamic resolution calculations. diff --git a/package/cpp/RNFFilamentRecorder.h b/package/cpp/RNFFilamentRecorder.h index fd5e1762..f4d880d1 100644 --- a/package/cpp/RNFFilamentRecorder.h +++ b/package/cpp/RNFFilamentRecorder.h @@ -18,12 +18,12 @@ namespace margelo { using namespace facebook; -class FilamentRecorder : public HybridObject { +class FilamentRecorder : public margelo::HybridObject { public: using ReadyForMoreDataCallback = std::function; public: - explicit FilamentRecorder(std::shared_ptr renderThreadDispatcher, int width, int height, int fps, double bitRate); + explicit FilamentRecorder(std::shared_ptr renderThreadDispatcher, int width, int height, int fps, double bitRate); ~FilamentRecorder(); public: @@ -77,7 +77,7 @@ class FilamentRecorder : public HybridObject { static constexpr auto TAG = "FilamentRecorder"; protected: - std::shared_ptr _renderThreadDispatcher; + std::shared_ptr _renderThreadDispatcher; int _width; int _height; int _fps; diff --git a/package/cpp/RNFFilamentView.h b/package/cpp/RNFFilamentView.h index e0b6e51d..6c819875 100644 --- a/package/cpp/RNFFilamentView.h +++ b/package/cpp/RNFFilamentView.h @@ -16,9 +16,9 @@ namespace margelo { using namespace facebook; -class FilamentView : public HybridObject { +class FilamentView : public margelo::HybridObject { public: - explicit FilamentView() : HybridObject("FilamentView") {} + explicit FilamentView() : margelo::HybridObject("FilamentView") {} ~FilamentView() override; public: diff --git a/package/cpp/RNFListener.cpp b/package/cpp/RNFListener.cpp index 880fca2f..58a38c7c 100644 --- a/package/cpp/RNFListener.cpp +++ b/package/cpp/RNFListener.cpp @@ -16,10 +16,6 @@ Listener::~Listener() { remove(); } -void Listener::loadHybridMethods() { - registerHybridMethod("remove", &Listener::remove, this); -} - void Listener::remove() { if (_isRemoved) { return; diff --git a/package/cpp/RNFListener.h b/package/cpp/RNFListener.h index ea3e1aa9..ff86bd4b 100644 --- a/package/cpp/RNFListener.h +++ b/package/cpp/RNFListener.h @@ -4,24 +4,22 @@ #pragma once -#include "jsi/RNFHybridObject.h" +#include "HybridListenerSpec.hpp" #include #include namespace margelo { -class Listener : public HybridObject { +class Listener : public nitro::RNF::HybridListenerSpec { public: using ListenerRemover = std::function; public: explicit Listener(ListenerRemover&& remove); - void loadHybridMethods() override; - static std::shared_ptr create(ListenerRemover&& remover); ~Listener(); - void remove(); + void remove() override; private: ListenerRemover _remove; diff --git a/package/cpp/RNFSurface.h b/package/cpp/RNFSurface.h index 3e04f2e2..a5c0b221 100644 --- a/package/cpp/RNFSurface.h +++ b/package/cpp/RNFSurface.h @@ -10,7 +10,7 @@ namespace margelo { -class Surface : public HybridObject { +class Surface : public margelo::HybridObject { public: explicit Surface() : HybridObject("Surface") {} diff --git a/package/cpp/RNFSurfaceProvider.h b/package/cpp/RNFSurfaceProvider.h index 9b5c1c93..78f00369 100644 --- a/package/cpp/RNFSurfaceProvider.h +++ b/package/cpp/RNFSurfaceProvider.h @@ -15,7 +15,7 @@ namespace margelo { -class SurfaceProvider : public HybridObject { +class SurfaceProvider : public margelo::HybridObject { public: using TOnCreate = std::function surface)>; using TOnResize = std::function surface, int width, int height)>; @@ -32,8 +32,8 @@ class SurfaceProvider : public HybridObject { public: std::shared_ptr addOnSurfaceChangedListener(Callbacks&& callbacks); - std::shared_ptr addOnSurfaceCreatedListener(TOnCreate callback, std::shared_ptr dispatcher); - std::shared_ptr addOnSurfaceDestroyedListener(TOnDestroy callback, std::shared_ptr dispatcher); + std::shared_ptr addOnSurfaceCreatedListener(TOnCreate callback, std::shared_ptr dispatcher); + std::shared_ptr addOnSurfaceDestroyedListener(TOnDestroy callback, std::shared_ptr dispatcher); virtual std::shared_ptr getSurfaceOrNull() = 0; std::optional> getSurface(); diff --git a/package/cpp/bullet/RNFRigidBodyWrapper.h b/package/cpp/bullet/RNFRigidBodyWrapper.h index a01161d1..fe8710f3 100644 --- a/package/cpp/bullet/RNFRigidBodyWrapper.h +++ b/package/cpp/bullet/RNFRigidBodyWrapper.h @@ -21,7 +21,7 @@ class RigidBodyWrapper; */ using CollisionCallback = std::function&, const std::shared_ptr)>; -class RigidBodyWrapper : public HybridObject { +class RigidBodyWrapper : public margelo::HybridObject { public: explicit RigidBodyWrapper(double mass, std::shared_ptr shape, std::unique_ptr motionState, std::string id, std::optional collisionCallback); diff --git a/package/cpp/core/RNFAABBWrapper.h b/package/cpp/core/RNFAABBWrapper.h index 0c3fc8a7..65eb2e3d 100644 --- a/package/cpp/core/RNFAABBWrapper.h +++ b/package/cpp/core/RNFAABBWrapper.h @@ -11,7 +11,7 @@ namespace margelo { using namespace filament; -class AABBWrapper : public HybridObject { +class AABBWrapper : public margelo::HybridObject { public: explicit AABBWrapper(const Aabb& aabb) : HybridObject("AABBWrapper"), _aabb(aabb) {} void loadHybridMethods() override; diff --git a/package/cpp/core/RNFAmbientOcclusionOptionsWrapper.h b/package/cpp/core/RNFAmbientOcclusionOptionsWrapper.h index 2cc83612..88635ce7 100644 --- a/package/cpp/core/RNFAmbientOcclusionOptionsWrapper.h +++ b/package/cpp/core/RNFAmbientOcclusionOptionsWrapper.h @@ -12,7 +12,7 @@ namespace margelo { using namespace filament; -class AmbientOcclusionOptionsWrapper : public HybridObject, public AmbientOcclusionOptions { +class AmbientOcclusionOptionsWrapper : public margelo::HybridObject, public AmbientOcclusionOptions { public: explicit AmbientOcclusionOptionsWrapper() : HybridObject("AmbientOcclusionOptionsWrapper") {} explicit AmbientOcclusionOptionsWrapper(const AmbientOcclusionOptions& options) diff --git a/package/cpp/core/RNFDynamicResolutionOptions.h b/package/cpp/core/RNFDynamicResolutionOptions.h index b01b2c8f..90c9ff7f 100644 --- a/package/cpp/core/RNFDynamicResolutionOptions.h +++ b/package/cpp/core/RNFDynamicResolutionOptions.h @@ -12,7 +12,7 @@ namespace margelo { using namespace filament; -class DynamicResolutionOptionsWrapper : public HybridObject, public DynamicResolutionOptions { +class DynamicResolutionOptionsWrapper : public margelo::HybridObject, public DynamicResolutionOptions { public: explicit DynamicResolutionOptionsWrapper() : HybridObject("DynamicResolutionOptions") {} explicit DynamicResolutionOptionsWrapper(const DynamicResolutionOptions& options) diff --git a/package/cpp/core/RNFEngineImpl.h b/package/cpp/core/RNFEngineImpl.h index 4a42677a..9aef57a7 100644 --- a/package/cpp/core/RNFEngineImpl.h +++ b/package/cpp/core/RNFEngineImpl.h @@ -45,7 +45,7 @@ using ManipulatorBuilder = Manipulator::Builder; // If you add a new method that you want to expose to JS, you need to add it to the EngineWrapper as well. class EngineImpl : public std::enable_shared_from_this { public: - explicit EngineImpl(std::shared_ptr rendererDispatcher, std::shared_ptr engine, float displayRefreshRate, + explicit EngineImpl(std::shared_ptr rendererDispatcher, std::shared_ptr engine, float displayRefreshRate, float densityPixelRatio); // First a surface provider must be set, then once we have a surface a swapchain can be created and finally the swapchain can be set @@ -73,7 +73,7 @@ class EngineImpl : public std::enable_shared_from_this { private: std::mutex _mutex; std::shared_ptr _engine; - std::shared_ptr _rendererDispatcher; + std::shared_ptr _rendererDispatcher; std::shared_ptr _surfaceProvider; std::shared_ptr _surfaceListener; std::shared_ptr _materialProvider; diff --git a/package/cpp/core/RNFEngineWrapper.cpp b/package/cpp/core/RNFEngineWrapper.cpp index 5960f930..bcc4273b 100644 --- a/package/cpp/core/RNFEngineWrapper.cpp +++ b/package/cpp/core/RNFEngineWrapper.cpp @@ -60,7 +60,7 @@ void EngineWrapper::setSurfaceProvider(std::shared_ptr surfaceP } std::shared_ptr EngineWrapper::createSwapChainForSurface(std::shared_ptr surfaceProvider, bool enableTransparentRendering) { - Logger::log(TAG, "Creating swapchain for surface ..."); + margelo::Logger::log(TAG, "Creating swapchain for surface ..."); std::shared_ptr surface = surfaceProvider->getSurfaceOrNull(); if (surface == nullptr) { @@ -74,7 +74,7 @@ std::shared_ptr EngineWrapper::createSwapChainForSurface(std:: return std::make_shared(swapChain); } std::shared_ptr EngineWrapper::createSwapChainForRecorder(std::shared_ptr recorder) { - Logger::log(TAG, "Creating swapchain for recorder ..."); + margelo::Logger::log(TAG, "Creating swapchain for recorder ..."); if (recorder == nullptr) { throw std::invalid_argument("Recorder is null"); diff --git a/package/cpp/core/RNFFilamentInstanceWrapper.h b/package/cpp/core/RNFFilamentInstanceWrapper.h index 51a0b13c..83369c0c 100644 --- a/package/cpp/core/RNFFilamentInstanceWrapper.h +++ b/package/cpp/core/RNFFilamentInstanceWrapper.h @@ -18,7 +18,7 @@ using namespace gltfio; class AnimatorWrapper; -class FilamentInstanceWrapper : public HybridObject { +class FilamentInstanceWrapper : public margelo::HybridObject { public: explicit FilamentInstanceWrapper(FilamentInstance* instance) : HybridObject("FilamentInstanceWrapper"), _instance(instance) {} diff --git a/package/cpp/core/RNFRenderableManagerImpl.cpp b/package/cpp/core/RNFRenderableManagerImpl.cpp index fd7d57ba..4e2ef1bf 100644 --- a/package/cpp/core/RNFRenderableManagerImpl.cpp +++ b/package/cpp/core/RNFRenderableManagerImpl.cpp @@ -94,7 +94,7 @@ Texture* RenderableManagerImpl::createTextureFromBuffer(std::shared_ptrgetPushMessage(); - Logger::log(TAG, "Error loading texture: %s", error.c_str()); + margelo::Logger::log(TAG, "Error loading texture: %s", error.c_str()); throw std::runtime_error("Error loading texture: " + error); } @@ -143,7 +143,7 @@ void RenderableManagerImpl::changeMaterialTextureMap(std::shared_ptr newInstance = std::shared_ptr(MaterialInstance::duplicate(materialInstance), [engine, dispatcher](MaterialInstance* instance) { dispatcher->runAsync([engine, instance]() { - Logger::log(TAG, "Destroying material instance %p", instance); + margelo::Logger::log(TAG, "Destroying material instance %p", instance); engine->destroy(instance); }); }); @@ -166,7 +166,7 @@ void RenderableManagerImpl::startUpdateResourceLoading() { // Check for textures that now have all their miplevels initialized. while (Texture* _texture = _textureProvider->popTexture()) { - Logger::log(TAG, "%p has all its miplevels ready.", _texture); + margelo::Logger::log(TAG, "%p has all its miplevels ready.", _texture); } } } @@ -282,7 +282,7 @@ void RenderableManagerImpl::scaleBoundingBox(std::shared_ptr { public: - explicit SwapChainWrapper(std::shared_ptr swapChain) : PointerHolder("SwapChainWrapper", swapChain) {} + explicit SwapChainWrapper(std::shared_ptr swapChain) : PointerHolder("SwapChainWrapper", swapChain) {} + + void loadHybridMethods() override {} - void loadHybridMethods() override {} - - std::shared_ptr getSwapChain() { - return pointee(); - } + std::shared_ptr getSwapChain() { + return pointee(); + } }; } // namespace margelo diff --git a/package/cpp/core/math/RNFTMat44Wrapper.h b/package/cpp/core/math/RNFTMat44Wrapper.h index 55584b63..bb067926 100644 --- a/package/cpp/core/math/RNFTMat44Wrapper.h +++ b/package/cpp/core/math/RNFTMat44Wrapper.h @@ -10,7 +10,7 @@ namespace margelo { using namespace filament; -class TMat44Wrapper : public HybridObject { +class TMat44Wrapper : public margelo::HybridObject { public: explicit TMat44Wrapper(math::mat4f matrix) : HybridObject("TMat44Wrapper"), _matrix(matrix) {} diff --git a/package/cpp/core/utils/RNFEntityWrapper.h b/package/cpp/core/utils/RNFEntityWrapper.h index a5743dc9..b3e79ce4 100644 --- a/package/cpp/core/utils/RNFEntityWrapper.h +++ b/package/cpp/core/utils/RNFEntityWrapper.h @@ -11,7 +11,7 @@ namespace margelo { using namespace utils; using namespace filament; -class EntityWrapper : public HybridObject { +class EntityWrapper : public margelo::HybridObject { public: explicit EntityWrapper(Entity entity) : HybridObject("EntityWrapper"), _entity(entity) {} explicit EntityWrapper(const VertexEntity& vertexEntity) diff --git a/package/cpp/jsi/RNFHybridObject.h b/package/cpp/jsi/RNFHybridObject.h index ef6d81b0..ed6b0e86 100644 --- a/package/cpp/jsi/RNFHybridObject.h +++ b/package/cpp/jsi/RNFHybridObject.h @@ -18,7 +18,7 @@ namespace margelo { using namespace facebook; -class HybridObject : public jsi::HostObject, public std::enable_shared_from_this { +class HybridObject : public jsi::HostObject, public std::enable_shared_from_this { public: struct HybridFunction { jsi::HostFunctionType function; @@ -84,12 +84,12 @@ class HybridObject : public jsi::HostObject, public std::enable_shared_from_this std::index_sequence) { if constexpr (std::is_same_v) { // It's a void method. - (obj->*method)(JSIConverter>::fromJSI(runtime, args[Is])...); + (obj->*method)(margelo::JSIConverter>::fromJSI(runtime, args[Is])...); return jsi::Value::undefined(); } else { // It's returning some C++ type, we need to convert that to a JSI value now. - ReturnType result = (obj->*method)(JSIConverter>::fromJSI(runtime, args[Is])...); - return JSIConverter>::toJSI(runtime, std::move(result)); + ReturnType result = (obj->*method)(margelo::JSIConverter>::fromJSI(runtime, args[Is])...); + return margelo::JSIConverter>::toJSI(runtime, std::move(result)); } } diff --git a/package/cpp/jsi/RNFHybridPointerHolder.h b/package/cpp/jsi/RNFHybridPointerHolder.h new file mode 100644 index 00000000..7e57327b --- /dev/null +++ b/package/cpp/jsi/RNFHybridPointerHolder.h @@ -0,0 +1,83 @@ +// +// RNFHybridPointerHolder.h +// Pods +// +// Created by Hanno Gödecke on 08.10.24. +// + +#pragma once + +#include "HybridPointerHolderSpec.hpp" +#include "RNFLogger.h" + +namespace margelo { + +using namespace facebook; + +template class HybridPointerHolder : public nitro::RNF::HybridPointerHolderSpec { +protected: + HybridPointerHolder(const char* name, std::shared_ptr pointer) : HybridPointerHolderSpec(), _name(name), _pointer(pointer) {} + + /** + * Create a new instance of a pointer holder which holds a shared_ptr of the given value. + * The shared_ptr will be move-constructed. + * @param name The name of the implementing class, for example "ViewWrapper". + * @param value The value this class will hold as a shared_ptr. It might be destroyed from JS at any point via `release()`. + */ + HybridPointerHolder(const char* name, T&& value) : HybridPointerHolder(name, std::make_shared(std::move(value))) {} + + /** + * Called when the PointerHolder gets automatically destroyed (e.g. via GC) and the shared_ptr will be destroyed. + */ + ~HybridPointerHolder() override { + nitro::RNF::HybridPointerHolderSpec::~HybridPointerHolderSpec(); + if (_pointer != nullptr) { + margelo::Logger::log(TAG, "Automatically releasing %s... (~PointerHolder())", TAG); + } + } + +public: + /** + * Manually release this reference to the pointer. + * If there are any other references to this pointer, no memory will be force-deleted. + */ + virtual void release() override { + std::unique_lock lock(_mutex); + + if (_pointer == nullptr) { + throw std::runtime_error("Pointer " + _name + " has already been manually released!"); + } + margelo::Logger::log(TAG, "Manually releasing %s... (PointerHolder::release())", _name.c_str()); + _pointer = nullptr; + } + + /** + * Get if the pointer is still valid and strong. + */ + bool getIsValid() override { + std::unique_lock lock(_mutex); + + return _pointer != nullptr; + } + +protected: + /** + * Get the shared_ptr this class is holding. + * If it has already been manually released from JS, this method will throw a runtime_error. + */ + std::shared_ptr pointee() { + std::unique_lock lock(_mutex); + + if (_pointer == nullptr) { + throw std::runtime_error("Pointer " + _name + " has already been manually released!"); + } + return _pointer; + } + +private: + std::string _name; + std::shared_ptr _pointer; + std::mutex _mutex; +}; +} + diff --git a/package/cpp/jsi/RNFJSIConverter.h b/package/cpp/jsi/RNFJSIConverter.h index 686003f0..36269569 100644 --- a/package/cpp/jsi/RNFJSIConverter.h +++ b/package/cpp/jsi/RNFJSIConverter.h @@ -42,7 +42,7 @@ template struct JSIConverter { }; // int <> number -template <> struct JSIConverter { +template <> struct margelo::JSIConverter { static int fromJSI(jsi::Runtime&, const jsi::Value& arg) { return static_cast(arg.asNumber()); } @@ -52,7 +52,7 @@ template <> struct JSIConverter { }; // double <> number -template <> struct JSIConverter { +template <> struct margelo::JSIConverter { static double fromJSI(jsi::Runtime&, const jsi::Value& arg) { return arg.asNumber(); } @@ -62,7 +62,7 @@ template <> struct JSIConverter { }; // float <> number -template <> struct JSIConverter { +template <> struct margelo::JSIConverter { static float fromJSI(jsi::Runtime&, const jsi::Value& arg) { return static_cast(arg.asNumber()); } @@ -72,7 +72,7 @@ template <> struct JSIConverter { }; // int64_t <> BigInt -template <> struct JSIConverter { +template <> struct margelo::JSIConverter { static double fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { return arg.asBigInt(runtime).asInt64(runtime); } @@ -82,7 +82,7 @@ template <> struct JSIConverter { }; // uint64_t <> BigInt -template <> struct JSIConverter { +template <> struct margelo::JSIConverter { static double fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { return arg.asBigInt(runtime).asUint64(runtime); } @@ -92,7 +92,7 @@ template <> struct JSIConverter { }; // bool <> boolean -template <> struct JSIConverter { +template <> struct margelo::JSIConverter { static bool fromJSI(jsi::Runtime&, const jsi::Value& arg) { return arg.asBool(); } @@ -102,7 +102,7 @@ template <> struct JSIConverter { }; // std::string <> string -template <> struct JSIConverter { +template <> struct margelo::JSIConverter { static std::string fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { return arg.asString(runtime).utf8(runtime); } @@ -112,7 +112,7 @@ template <> struct JSIConverter { }; // std::optional <> T | undefined -template struct JSIConverter> { +template struct margelo::JSIConverter> { static std::optional fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { if (arg.isUndefined() || arg.isNull()) { return std::nullopt; @@ -130,7 +130,7 @@ template struct JSIConverter> { }; // Enum <> Union -template struct JSIConverter::value>> { +template struct margelo::JSIConverter::value>> { static TEnum fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { std::string string = arg.asString(runtime).utf8(runtime); TEnum outEnum; @@ -145,7 +145,7 @@ template struct JSIConverter <> Promise -template struct JSIConverter> { +template struct margelo::JSIConverter> { static std::future fromJSI(jsi::Runtime&, const jsi::Value&) { throw std::runtime_error("Promise cannot be converted to a native type - it needs to be awaited first!"); } @@ -153,7 +153,7 @@ template struct JSIConverter> { auto sharedFuture = std::make_shared>(std::move(arg)); return PromiseFactory::createPromise(runtime, [sharedFuture = std::move(sharedFuture)](jsi::Runtime& runtime, std::shared_ptr promise, - std::shared_ptr dispatcher) { + std::shared_ptr dispatcher) { // Spawn new async thread to wait for the result std::thread waiterThread([promise, &runtime, dispatcher, sharedFuture = std::move(sharedFuture)]() { // wait until the future completes. we are running on a background task here. @@ -198,7 +198,7 @@ template struct JSIConverter> { }; // [](Args...) -> T {} <> (Args...) => T -template struct JSIConverter> { +template struct margelo::JSIConverter> { static std::function fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { jsi::Function function = arg.asObject(runtime).asFunction(runtime); @@ -243,7 +243,7 @@ template struct JSIConverter <> T[] -template struct JSIConverter> { +template struct margelo::JSIConverter> { static std::vector fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { jsi::Array array = arg.asObject(runtime).asArray(runtime); size_t length = array.size(runtime); @@ -267,7 +267,7 @@ template struct JSIConverter> { }; // std::unordered_map <> Record -template struct JSIConverter> { +template struct margelo::JSIConverter> { static std::unordered_map fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { jsi::Object object = arg.asObject(runtime); jsi::Array propertyNames = object.getPropertyNames(runtime); @@ -298,7 +298,7 @@ template struct is_shared_ptr_to_host_object : std::false_type {}; template struct is_shared_ptr_to_host_object> : std::is_base_of {}; -template struct JSIConverter::value>> { +template struct margelo::JSIConverter::value>> { using TPointee = typename T::element_type; #if DEBUG @@ -358,7 +358,7 @@ template struct is_shared_ptr_to_native_state : std::false_type {}; template struct is_shared_ptr_to_native_state> : std::is_base_of {}; -template struct JSIConverter::value>> { +template struct margelo::JSIConverter::value>> { using TPointee = typename T::element_type; #if DEBUG diff --git a/package/cpp/jsi/RNFPointerHolder.h b/package/cpp/jsi/RNFPointerHolder.h index ce67fc00..e1f1144a 100644 --- a/package/cpp/jsi/RNFPointerHolder.h +++ b/package/cpp/jsi/RNFPointerHolder.h @@ -13,7 +13,7 @@ namespace margelo { using namespace facebook; -template class PointerHolder : public HybridObject { +template class PointerHolder : public margelo::HybridObject { protected: // no default constructor PointerHolder() = delete; @@ -42,7 +42,7 @@ template class PointerHolder : public HybridObject { */ ~PointerHolder() { if (_pointer != nullptr) { - Logger::log(TAG, "Automatically releasing %s... (~PointerHolder())", _name.c_str()); + margelo::Logger::log(TAG, "Automatically releasing %s... (~PointerHolder())", _name.c_str()); } } @@ -57,7 +57,7 @@ template class PointerHolder : public HybridObject { if (_pointer == nullptr) { throw std::runtime_error("Pointer " + _name + " has already been manually released!"); } - Logger::log(TAG, "Manually releasing %s... (PointerHolder::release())", _name.c_str()); + margelo::Logger::log(TAG, "Manually releasing %s... (PointerHolder::release())", _name.c_str()); _pointer = nullptr; } diff --git a/package/cpp/jsi/RNFPointerHolderNitro.h b/package/cpp/jsi/RNFPointerHolderNitro.h new file mode 100644 index 00000000..cf4b37fd --- /dev/null +++ b/package/cpp/jsi/RNFPointerHolderNitro.h @@ -0,0 +1,106 @@ +// +// Created by Marc Rousavy on 16.04.24. +// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +#include "RNFLogger.h" +#include +#include + +namespace margelo { + +using namespace facebook; + +template class PointerHolderNitro { +protected: + // no default constructor + PointerHolderNitro() = delete; + + /** + * Create a new instance of a pointer holder which holds the given shared_ptr. + * @param name The name of the implementing class, for example "ViewWrapper". + * @param pointer The pointer this class will hold. It might be released from JS at any point via `release()`. + */ + PointerHolderNitro(const char* name, std::shared_ptr pointer) : _name(name), _pointer(pointer) {} + + /** + * Create a new instance of a pointer holder which holds a shared_ptr of the given value. + * The shared_ptr will be move-constructed. + * @param name The name of the implementing class, for example "ViewWrapper". + * @param value The value this class will hold as a shared_ptr. It might be destroyed from JS at any point via `release()`. + */ + PointerHolderNitro(const char* name, T&& value) : PointerHolderNitro(name, std::make_shared(std::move(value))) {} + + /** + * Called when the PointerHolder gets automatically destroyed (e.g. via GC) and the shared_ptr will be destroyed. + */ + ~PointerHolderNitro() { + if (_pointer != nullptr) { + Logger::log(TAG, "Automatically releasing %s... (~PointerHolder())", _name.c_str()); + } + } + +protected: + /** + * Manually release this reference to the pointer. + * If there are any other references to this pointer, no memory will be force-deleted. + */ + virtual void release() { + std::unique_lock lock(_mutex); + + if (_pointer == nullptr) { + throw std::runtime_error("Pointer " + _name + " has already been manually released!"); + } + Logger::log(TAG, "Manually releasing %s... (PointerHolder::release())", _name.c_str()); + _pointer = nullptr; + } + + /** + * Get the shared_ptr this class is holding. + * If it has already been manually released from JS, this method will throw a runtime_error. + */ + std::shared_ptr pointee() { + std::unique_lock lock(_mutex); + + if (_pointer == nullptr) { + throw std::runtime_error("Pointer " + _name + " has already been manually released!"); + } + return _pointer; + } + + /** + * Get if the pointer is still valid and strong. + */ + bool getIsValid() { + std::unique_lock lock(_mutex); + + return _pointer != nullptr; + } + +protected: + // Hybrid Setup +// void loadHybridMethods() override { +// // load base methods/properties +// HybridObject::loadHybridMethods(); +// // load custom methods/properties +// registerHybrids(this, [](nitro::Prototype& prototype) { +// prototype.registerHybridMethod("release", &PointerHolderNitro::release); +// prototype.registerHybridGetter("isValid", &PointerHolderNitro::getIsValid); +// }); +// } + +private: + std::string _name; + std::shared_ptr _pointer; + std::mutex _mutex; + static constexpr auto TAG = "PointerHolder"; +}; + +} // namespace margelo diff --git a/package/cpp/jsi/RNFPromiseFactory.h b/package/cpp/jsi/RNFPromiseFactory.h index 2127d538..d4d55efb 100644 --- a/package/cpp/jsi/RNFPromiseFactory.h +++ b/package/cpp/jsi/RNFPromiseFactory.h @@ -16,7 +16,7 @@ namespace margelo { class PromiseFactory { public: - using RunPromise = std::function promise, std::shared_ptr dispatcher)>; + using RunPromise = std::function promise, std::shared_ptr dispatcher)>; /** Create a new promise and run the given function. diff --git a/package/cpp/test/RNFTestHybridObject.h b/package/cpp/test/RNFTestHybridObject.h index d3fa91d9..383c0165 100644 --- a/package/cpp/test/RNFTestHybridObject.h +++ b/package/cpp/test/RNFTestHybridObject.h @@ -12,7 +12,7 @@ namespace margelo { -class TestHybridObject : public HybridObject { +class TestHybridObject : public margelo::HybridObject { public: explicit TestHybridObject() : HybridObject("TestHybridObject") {} diff --git a/package/cpp/threading/RNFCallInvokerDispatcher.h b/package/cpp/threading/RNFCallInvokerDispatcher.h index e9a4fb1e..4bb22a60 100644 --- a/package/cpp/threading/RNFCallInvokerDispatcher.h +++ b/package/cpp/threading/RNFCallInvokerDispatcher.h @@ -14,7 +14,7 @@ using namespace facebook; /** * A Dispatcher that uses react::CallInvoker for it's implementation */ -class CallInvokerDispatcher : public Dispatcher { +class CallInvokerDispatcher : public margelo::Dispatcher { public: explicit CallInvokerDispatcher(std::shared_ptr callInvoker) : _callInvoker(callInvoker) {} @@ -30,4 +30,4 @@ class CallInvokerDispatcher : public Dispatcher { std::shared_ptr _callInvoker; }; -} // namespace margelo \ No newline at end of file +} // namespace margelo diff --git a/package/example/AppExampleFabric/Gemfile b/package/example/AppExampleFabric/Gemfile index 8d72c37a..2a7ce357 100644 --- a/package/example/AppExampleFabric/Gemfile +++ b/package/example/AppExampleFabric/Gemfile @@ -3,7 +3,6 @@ source 'https://rubygems.org' # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version ruby ">= 2.6.10" -# Cocoapods 1.15 introduced a bug which break the build. We will remove the upper -# bound in the template on Cocoapods with next React Native release. -gem 'cocoapods', '>= 1.13', '< 1.15' -gem 'activesupport', '>= 6.1.7.5', '< 7.1.0' +# Exclude problematic versions of cocoapods and activesupport that causes build failures. +gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' +gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' diff --git a/package/example/AppExampleFabric/Gemfile.lock b/package/example/AppExampleFabric/Gemfile.lock index 983472ba..c0a52e7e 100644 --- a/package/example/AppExampleFabric/Gemfile.lock +++ b/package/example/AppExampleFabric/Gemfile.lock @@ -95,8 +95,8 @@ PLATFORMS ruby DEPENDENCIES - activesupport (>= 6.1.7.5, < 7.1.0) - cocoapods (>= 1.13, < 1.15) + activesupport (>= 6.1.7.5, != 7.1.0) + cocoapods (>= 1.13, != 1.15.1, != 1.15.0) RUBY VERSION ruby 2.6.10p210 diff --git a/package/example/AppExampleFabric/android/app/build.gradle b/package/example/AppExampleFabric/android/app/build.gradle index a1390b0b..b88b766b 100644 --- a/package/example/AppExampleFabric/android/app/build.gradle +++ b/package/example/AppExampleFabric/android/app/build.gradle @@ -49,6 +49,9 @@ react { // // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" // hermesFlags = ["-O", "-output-source-map"] + + /* Autolinking */ + autolinkLibrariesWithApp() } /** @@ -114,5 +117,3 @@ dependencies { implementation jscFlavor } } - -apply from: file("../../../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) diff --git a/package/example/AppExampleFabric/android/app/src/main/AndroidManifest.xml b/package/example/AppExampleFabric/android/app/src/main/AndroidManifest.xml index 4122f36a..e1892528 100644 --- a/package/example/AppExampleFabric/android/app/src/main/AndroidManifest.xml +++ b/package/example/AppExampleFabric/android/app/src/main/AndroidManifest.xml @@ -8,7 +8,8 @@ android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" - android:theme="@style/AppTheme"> + android:theme="@style/AppTheme" + android:supportsRtl="true"> ex.autolinkLibrariesFromCommand() } rootProject.name = 'RNFFabric' -apply from: file("../../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) include ':app' includeBuild('../../../node_modules/@react-native/gradle-plugin') diff --git a/package/example/AppExampleFabric/ios/Podfile.lock b/package/example/AppExampleFabric/ios/Podfile.lock index 95447af8..a95c9d16 100644 --- a/package/example/AppExampleFabric/ios/Podfile.lock +++ b/package/example/AppExampleFabric/ios/Podfile.lock @@ -1,12 +1,33 @@ PODS: - - boost (1.83.0) + - boost (1.84.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.74.1) + - FBLazyVector (0.75.4) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.74.1): - - hermes-engine/Pre-built (= 0.74.1) - - hermes-engine/Pre-built (0.74.1) + - hermes-engine (0.75.4): + - hermes-engine/Pre-built (= 0.75.4) + - hermes-engine/Pre-built (0.75.4) + - NitroModules (0.11.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - RCT-Folly (2024.01.01.00): - boost - DoubleConversion @@ -23,52 +44,32 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.74.1) - - RCTRequired (0.74.1) - - RCTTypeSafety (0.74.1): - - FBLazyVector (= 0.74.1) - - RCTRequired (= 0.74.1) - - React-Core (= 0.74.1) - - React (0.74.1): - - React-Core (= 0.74.1) - - React-Core/DevSupport (= 0.74.1) - - React-Core/RCTWebSocket (= 0.74.1) - - React-RCTActionSheet (= 0.74.1) - - React-RCTAnimation (= 0.74.1) - - React-RCTBlob (= 0.74.1) - - React-RCTImage (= 0.74.1) - - React-RCTLinking (= 0.74.1) - - React-RCTNetwork (= 0.74.1) - - React-RCTSettings (= 0.74.1) - - React-RCTText (= 0.74.1) - - React-RCTVibration (= 0.74.1) - - React-callinvoker (0.74.1) - - React-Codegen (0.74.1): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly - - RCTRequired - - RCTTypeSafety - - React-Core - - React-debug - - React-Fabric - - React-FabricImage - - React-featureflags - - React-graphics - - React-jsi - - React-jsiexecutor - - React-NativeModulesApple - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - React-Core (0.74.1): + - RCTDeprecation (0.75.4) + - RCTRequired (0.75.4) + - RCTTypeSafety (0.75.4): + - FBLazyVector (= 0.75.4) + - RCTRequired (= 0.75.4) + - React-Core (= 0.75.4) + - React (0.75.4): + - React-Core (= 0.75.4) + - React-Core/DevSupport (= 0.75.4) + - React-Core/RCTWebSocket (= 0.75.4) + - React-RCTActionSheet (= 0.75.4) + - React-RCTAnimation (= 0.75.4) + - React-RCTBlob (= 0.75.4) + - React-RCTImage (= 0.75.4) + - React-RCTLinking (= 0.75.4) + - React-RCTNetwork (= 0.75.4) + - React-RCTSettings (= 0.75.4) + - React-RCTText (= 0.75.4) + - React-RCTVibration (= 0.75.4) + - React-callinvoker (0.75.4) + - React-Core (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.1) + - React-Core/Default (= 0.75.4) - React-cxxreact - React-featureflags - React-hermes @@ -80,7 +81,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.74.1): + - React-Core/CoreModulesHeaders (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -97,7 +98,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.74.1): + - React-Core/Default (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -113,13 +114,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.74.1): + - React-Core/DevSupport (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.1) - - React-Core/RCTWebSocket (= 0.74.1) + - React-Core/Default (= 0.75.4) + - React-Core/RCTWebSocket (= 0.75.4) - React-cxxreact - React-featureflags - React-hermes @@ -131,7 +132,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.74.1): + - React-Core/RCTActionSheetHeaders (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -148,7 +149,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.74.1): + - React-Core/RCTAnimationHeaders (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -165,7 +166,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.74.1): + - React-Core/RCTBlobHeaders (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -182,7 +183,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.74.1): + - React-Core/RCTImageHeaders (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -199,7 +200,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.74.1): + - React-Core/RCTLinkingHeaders (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -216,7 +217,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.74.1): + - React-Core/RCTNetworkHeaders (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -233,7 +234,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.74.1): + - React-Core/RCTSettingsHeaders (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -250,7 +251,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.74.1): + - React-Core/RCTTextHeaders (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -267,7 +268,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.74.1): + - React-Core/RCTVibrationHeaders (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -284,12 +285,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.74.1): + - React-Core/RCTWebSocket (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.1) + - React-Core/Default (= 0.75.4) - React-cxxreact - React-featureflags - React-hermes @@ -301,36 +302,241 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.74.1): + - React-CoreModules (0.75.4): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.1) - - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.1) - - React-jsi (= 0.74.1) + - RCTTypeSafety (= 0.75.4) + - React-Core/CoreModulesHeaders (= 0.75.4) + - React-jsi (= 0.75.4) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.74.1) + - React-RCTImage (= 0.75.4) + - ReactCodegen - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.1): - - boost (= 1.83.0) + - React-cxxreact (0.75.4): + - boost - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.1) - - React-debug (= 0.74.1) - - React-jsi (= 0.74.1) + - React-callinvoker (= 0.75.4) + - React-debug (= 0.75.4) + - React-jsi (= 0.75.4) - React-jsinspector - - React-logger (= 0.74.1) - - React-perflogger (= 0.74.1) - - React-runtimeexecutor (= 0.74.1) - - React-debug (0.74.1) - - React-Fabric (0.74.1): + - React-logger (= 0.75.4) + - React-perflogger (= 0.75.4) + - React-runtimeexecutor (= 0.75.4) + - React-debug (0.75.4) + - React-defaultsnativemodule (0.75.4): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-domnativemodule + - React-Fabric + - React-featureflags + - React-featureflagsnativemodule + - React-graphics + - React-idlecallbacksnativemodule + - React-ImageManager + - React-microtasksnativemodule + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-domnativemodule (0.75.4): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-FabricComponents + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-Fabric (0.75.4): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/animations (= 0.75.4) + - React-Fabric/attributedstring (= 0.75.4) + - React-Fabric/componentregistry (= 0.75.4) + - React-Fabric/componentregistrynative (= 0.75.4) + - React-Fabric/components (= 0.75.4) + - React-Fabric/core (= 0.75.4) + - React-Fabric/dom (= 0.75.4) + - React-Fabric/imagemanager (= 0.75.4) + - React-Fabric/leakchecker (= 0.75.4) + - React-Fabric/mounting (= 0.75.4) + - React-Fabric/observers (= 0.75.4) + - React-Fabric/scheduler (= 0.75.4) + - React-Fabric/telemetry (= 0.75.4) + - React-Fabric/templateprocessor (= 0.75.4) + - React-Fabric/uimanager (= 0.75.4) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/animations (0.75.4): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/attributedstring (0.75.4): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistry (0.75.4): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistrynative (0.75.4): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components (0.75.4): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/components/legacyviewmanagerinterop (= 0.75.4) + - React-Fabric/components/root (= 0.75.4) + - React-Fabric/components/view (= 0.75.4) + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/legacyviewmanagerinterop (0.75.4): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/root (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -341,20 +547,7 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.74.1) - - React-Fabric/attributedstring (= 0.74.1) - - React-Fabric/componentregistry (= 0.74.1) - - React-Fabric/componentregistrynative (= 0.74.1) - - React-Fabric/components (= 0.74.1) - - React-Fabric/core (= 0.74.1) - - React-Fabric/imagemanager (= 0.74.1) - - React-Fabric/leakchecker (= 0.74.1) - - React-Fabric/mounting (= 0.74.1) - - React-Fabric/scheduler (= 0.74.1) - - React-Fabric/telemetry (= 0.74.1) - - React-Fabric/templateprocessor (= 0.74.1) - - React-Fabric/textlayoutmanager (= 0.74.1) - - React-Fabric/uimanager (= 0.74.1) + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -363,7 +556,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.1): + - React-Fabric/components/view (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -374,6 +567,7 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -382,7 +576,8 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.1): + - Yoga + - React-Fabric/core (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -393,6 +588,7 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -401,7 +597,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.1): + - React-Fabric/dom (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -412,6 +608,7 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -420,7 +617,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.1): + - React-Fabric/imagemanager (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -431,6 +628,7 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -439,7 +637,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.1): + - React-Fabric/leakchecker (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -450,17 +648,7 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.74.1) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.1) - - React-Fabric/components/modal (= 0.74.1) - - React-Fabric/components/rncore (= 0.74.1) - - React-Fabric/components/root (= 0.74.1) - - React-Fabric/components/safeareaview (= 0.74.1) - - React-Fabric/components/scrollview (= 0.74.1) - - React-Fabric/components/text (= 0.74.1) - - React-Fabric/components/textinput (= 0.74.1) - - React-Fabric/components/unimplementedview (= 0.74.1) - - React-Fabric/components/view (= 0.74.1) + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -469,7 +657,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.1): + - React-Fabric/mounting (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -480,6 +668,7 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -488,7 +677,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.1): + - React-Fabric/observers (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -499,6 +688,8 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric/observers/events (= 0.75.4) + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -507,7 +698,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.1): + - React-Fabric/observers/events (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -518,6 +709,7 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -526,7 +718,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.1): + - React-Fabric/scheduler (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -537,15 +729,18 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric/observers/events + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor - React-logger + - React-performancetimeline - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.1): + - React-Fabric/telemetry (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -556,6 +751,7 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -564,7 +760,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.1): + - React-Fabric/templateprocessor (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -575,6 +771,7 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -583,7 +780,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.1): + - React-Fabric/uimanager (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -594,15 +791,18 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric/uimanager/consistency (= 0.75.4) + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor - React-logger + - React-rendererconsistency - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.1): + - React-Fabric/uimanager/consistency (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -613,15 +813,17 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor - React-logger + - React-rendererconsistency - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.1): + - React-FabricComponents (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -632,6 +834,10 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric + - React-FabricComponents/components (= 0.75.4) + - React-FabricComponents/textlayoutmanager (= 0.75.4) + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -639,8 +845,10 @@ PODS: - React-rendererdebug - React-runtimescheduler - React-utils + - ReactCodegen - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.1): + - Yoga + - React-FabricComponents/components (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -651,6 +859,17 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric + - React-FabricComponents/components/inputaccessory (= 0.75.4) + - React-FabricComponents/components/iostextinput (= 0.75.4) + - React-FabricComponents/components/modal (= 0.75.4) + - React-FabricComponents/components/rncore (= 0.75.4) + - React-FabricComponents/components/safeareaview (= 0.75.4) + - React-FabricComponents/components/scrollview (= 0.75.4) + - React-FabricComponents/components/text (= 0.75.4) + - React-FabricComponents/components/textinput (= 0.75.4) + - React-FabricComponents/components/unimplementedview (= 0.75.4) + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -658,8 +877,10 @@ PODS: - React-rendererdebug - React-runtimescheduler - React-utils + - ReactCodegen - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.1): + - Yoga + - React-FabricComponents/components/inputaccessory (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -670,6 +891,8 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -677,9 +900,10 @@ PODS: - React-rendererdebug - React-runtimescheduler - React-utils + - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.74.1): + - React-FabricComponents/components/iostextinput (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -690,6 +914,8 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -697,8 +923,10 @@ PODS: - React-rendererdebug - React-runtimescheduler - React-utils + - ReactCodegen - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.1): + - Yoga + - React-FabricComponents/components/modal (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -709,6 +937,8 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -716,8 +946,10 @@ PODS: - React-rendererdebug - React-runtimescheduler - React-utils + - ReactCodegen - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.1): + - Yoga + - React-FabricComponents/components/rncore (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -728,6 +960,8 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -735,8 +969,10 @@ PODS: - React-rendererdebug - React-runtimescheduler - React-utils + - ReactCodegen - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.1): + - Yoga + - React-FabricComponents/components/safeareaview (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -747,6 +983,8 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -754,8 +992,10 @@ PODS: - React-rendererdebug - React-runtimescheduler - React-utils + - ReactCodegen - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.1): + - Yoga + - React-FabricComponents/components/scrollview (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -766,6 +1006,8 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -773,8 +1015,10 @@ PODS: - React-rendererdebug - React-runtimescheduler - React-utils + - ReactCodegen - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.1): + - Yoga + - React-FabricComponents/components/text (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -785,6 +1029,8 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -792,8 +1038,10 @@ PODS: - React-rendererdebug - React-runtimescheduler - React-utils + - ReactCodegen - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.1): + - Yoga + - React-FabricComponents/components/textinput (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -804,6 +1052,8 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -811,8 +1061,10 @@ PODS: - React-rendererdebug - React-runtimescheduler - React-utils + - ReactCodegen - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.1): + - Yoga + - React-FabricComponents/components/unimplementedview (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -823,7 +1075,8 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/uimanager + - React-Fabric + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -831,8 +1084,10 @@ PODS: - React-rendererdebug - React-runtimescheduler - React-utils + - ReactCodegen - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.1): + - Yoga + - React-FabricComponents/textlayoutmanager (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -843,6 +1098,8 @@ PODS: - React-Core - React-cxxreact - React-debug + - React-Fabric + - React-featureflags - React-graphics - React-jsi - React-jsiexecutor @@ -850,46 +1107,92 @@ PODS: - React-rendererdebug - React-runtimescheduler - React-utils + - ReactCodegen - ReactCommon/turbomodule/core - - React-FabricImage (0.74.1): + - Yoga + - React-FabricImage (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.1) - - RCTTypeSafety (= 0.74.1) + - RCTRequired (= 0.75.4) + - RCTTypeSafety (= 0.75.4) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.74.1) + - React-jsiexecutor (= 0.75.4) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.74.1) - - React-graphics (0.74.1): + - React-featureflags (0.75.4) + - React-featureflagsnativemodule (0.75.4): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-graphics (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.1) + - React-jsi + - React-jsiexecutor - React-utils - - React-hermes (0.74.1): + - React-hermes (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.1) + - React-cxxreact (= 0.75.4) - React-jsi - - React-jsiexecutor (= 0.74.1) + - React-jsiexecutor (= 0.75.4) - React-jsinspector - - React-perflogger (= 0.74.1) + - React-perflogger (= 0.75.4) - React-runtimeexecutor - - React-ImageManager (0.74.1): + - React-idlecallbacksnativemodule (0.75.4): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-ImageManager (0.75.4): - glog - RCT-Folly/Fabric - React-Core/Default @@ -898,83 +1201,104 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.74.1): + - React-jserrorhandler (0.75.4): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - - React-Mapbuffer - - React-jsi (0.74.1): - - boost (= 1.83.0) + - React-jsi (0.75.4): + - boost - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.1): + - React-jsiexecutor (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.1) - - React-jsi (= 0.74.1) + - React-cxxreact (= 0.75.4) + - React-jsi (= 0.75.4) - React-jsinspector - - React-perflogger (= 0.74.1) - - React-jsinspector (0.74.1): + - React-perflogger (= 0.75.4) + - React-jsinspector (0.75.4): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.74.1) - - React-jsitracing (0.74.1): + - React-runtimeexecutor (= 0.75.4) + - React-jsitracing (0.75.4): - React-jsi - - React-logger (0.74.1): + - React-logger (0.75.4): - glog - - React-Mapbuffer (0.74.1): + - React-Mapbuffer (0.75.4): - glog - React-debug - - react-native-filament (1.2.2): + - React-microtasksnativemodule (0.75.4): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric - React-featureflags - React-graphics - React-ImageManager - - react-native-filament/camutils (= 1.2.2) - - react-native-filament/filamat (= 1.2.2) - - react-native-filament/filament (= 1.2.2) - - react-native-filament/gltfio_core (= 1.2.2) - - react-native-filament/image (= 1.2.2) - - react-native-filament/ktxreader (= 1.2.2) - - react-native-filament/math (= 1.2.2) - - react-native-filament/tsl (= 1.2.2) - - react-native-filament/uberz (= 1.2.2) - - react-native-filament/utils (= 1.2.2) + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-filament (1.5.1): + - DoubleConversion + - glog + - hermes-engine + - NitroModules + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - react-native-filament/camutils (= 1.5.1) + - react-native-filament/filamat (= 1.5.1) + - react-native-filament/filament (= 1.5.1) + - react-native-filament/gltfio_core (= 1.5.1) + - react-native-filament/image (= 1.5.1) + - react-native-filament/ktxreader (= 1.5.1) + - react-native-filament/math (= 1.5.1) + - react-native-filament/tsl (= 1.5.1) + - react-native-filament/uberz (= 1.5.1) + - react-native-filament/utils (= 1.5.1) - react-native-worklets-core - React-NativeModulesApple - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/camutils (1.2.2): + - react-native-filament/camutils (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -987,17 +1311,18 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/filamat (1.2.2): + - react-native-filament/filamat (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1011,17 +1336,18 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/filament (1.2.2): + - react-native-filament/filament (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1035,17 +1361,18 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/gltfio_core (1.2.2): + - react-native-filament/gltfio_core (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1060,17 +1387,18 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/image (1.2.2): + - react-native-filament/image (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1083,17 +1411,18 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/ktxreader (1.2.2): + - react-native-filament/ktxreader (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1107,17 +1436,18 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/math (1.2.2): + - react-native-filament/math (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1129,17 +1459,18 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/tsl (1.2.2): + - react-native-filament/tsl (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1151,17 +1482,18 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/uberz (1.2.2): + - react-native-filament/uberz (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1176,17 +1508,18 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/utils (1.2.2): + - react-native-filament/utils (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1199,40 +1532,40 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-safe-area-context (4.10.1): + - react-native-safe-area-context (4.11.0): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric - React-featureflags - React-graphics - React-ImageManager - - react-native-safe-area-context/common (= 4.10.1) - - react-native-safe-area-context/fabric (= 4.10.1) + - react-native-safe-area-context/common (= 4.11.0) + - react-native-safe-area-context/fabric (= 4.11.0) - React-NativeModulesApple - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-safe-area-context/common (4.10.1): + - react-native-safe-area-context/common (4.11.0): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1243,17 +1576,17 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-safe-area-context/fabric (4.10.1): + - react-native-safe-area-context/fabric (4.11.0): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1265,39 +1598,39 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-video (6.1.2): + - react-native-video (6.6.4): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric - React-featureflags - React-graphics - React-ImageManager - - react-native-video/Video (= 6.1.2) + - react-native-video/Video (= 6.6.4) - React-NativeModulesApple - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-video/Video (6.1.2): + - react-native-video/Fabric (6.6.4): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1308,6 +1641,29 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-video/Video (6.6.4): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - react-native-video/Fabric + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga @@ -1318,7 +1674,6 @@ PODS: - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1329,11 +1684,12 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-nativeconfig (0.74.1) - - React-NativeModulesApple (0.74.1): + - React-nativeconfig (0.75.4) + - React-NativeModulesApple (0.75.4): - glog - hermes-engine - React-callinvoker @@ -1344,25 +1700,28 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.74.1) - - React-RCTActionSheet (0.74.1): - - React-Core/RCTActionSheetHeaders (= 0.74.1) - - React-RCTAnimation (0.74.1): + - React-perflogger (0.75.4) + - React-performancetimeline (0.75.4): + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact + - React-RCTActionSheet (0.75.4): + - React-Core/RCTActionSheetHeaders (= 0.75.4) + - React-RCTAnimation (0.75.4): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - - React-Codegen - React-Core/RCTAnimationHeaders - React-jsi - React-NativeModulesApple + - ReactCodegen - ReactCommon - - React-RCTAppDelegate (0.74.1): + - React-RCTAppDelegate (0.75.4): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-CoreModules - React-debug + - React-defaultsnativemodule - React-Fabric - React-featureflags - React-graphics @@ -1378,27 +1737,29 @@ PODS: - React-RuntimeHermes - React-runtimescheduler - React-utils + - ReactCodegen - ReactCommon - - React-RCTBlob (0.74.1): + - React-RCTBlob (0.75.4): - DoubleConversion - fmt (= 9.1.0) - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-Codegen - React-Core/RCTBlobHeaders - React-Core/RCTWebSocket - React-jsi - React-jsinspector - React-NativeModulesApple - React-RCTNetwork + - ReactCodegen - ReactCommon - - React-RCTFabric (0.74.1): + - React-RCTFabric (0.75.4): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-Core - React-debug - React-Fabric + - React-FabricComponents - React-FabricImage - React-featureflags - React-graphics @@ -1406,61 +1767,64 @@ PODS: - React-jsi - React-jsinspector - React-nativeconfig + - React-performancetimeline - React-RCTImage - React-RCTText + - React-rendererconsistency - React-rendererdebug - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.74.1): + - React-RCTImage (0.75.4): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - - React-Codegen - React-Core/RCTImageHeaders - React-jsi - React-NativeModulesApple - React-RCTNetwork + - ReactCodegen - ReactCommon - - React-RCTLinking (0.74.1): - - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.1) - - React-jsi (= 0.74.1) + - React-RCTLinking (0.75.4): + - React-Core/RCTLinkingHeaders (= 0.75.4) + - React-jsi (= 0.75.4) - React-NativeModulesApple + - ReactCodegen - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.1) - - React-RCTNetwork (0.74.1): + - ReactCommon/turbomodule/core (= 0.75.4) + - React-RCTNetwork (0.75.4): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - - React-Codegen - React-Core/RCTNetworkHeaders - React-jsi - React-NativeModulesApple + - ReactCodegen - ReactCommon - - React-RCTSettings (0.74.1): + - React-RCTSettings (0.75.4): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - - React-Codegen - React-Core/RCTSettingsHeaders - React-jsi - React-NativeModulesApple + - ReactCodegen - ReactCommon - - React-RCTText (0.74.1): - - React-Core/RCTTextHeaders (= 0.74.1) + - React-RCTText (0.75.4): + - React-Core/RCTTextHeaders (= 0.75.4) - Yoga - - React-RCTVibration (0.74.1): + - React-RCTVibration (0.75.4): - RCT-Folly (= 2024.01.01.00) - - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple + - ReactCodegen - ReactCommon - - React-rendererdebug (0.74.1): + - React-rendererconsistency (0.75.4) + - React-rendererdebug (0.75.4): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.74.1) - - React-RuntimeApple (0.74.1): + - React-rncore (0.75.4) + - React-RuntimeApple (0.75.4): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1477,8 +1841,9 @@ PODS: - React-RuntimeCore - React-runtimeexecutor - React-RuntimeHermes + - React-runtimescheduler - React-utils - - React-RuntimeCore (0.74.1): + - React-RuntimeCore (0.75.4): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1491,9 +1856,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.74.1): - - React-jsi (= 0.74.1) - - React-RuntimeHermes (0.74.1): + - React-runtimeexecutor (0.75.4): + - React-jsi (= 0.75.4) + - React-RuntimeHermes (0.75.4): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1504,7 +1869,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.74.1): + - React-runtimescheduler (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1513,64 +1878,129 @@ PODS: - React-debug - React-featureflags - React-jsi + - React-rendererconsistency - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.74.1): + - React-utils (0.75.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.74.1) - - ReactCommon (0.74.1): - - ReactCommon/turbomodule (= 0.74.1) - - ReactCommon/turbomodule (0.74.1): + - React-jsi (= 0.75.4) + - ReactCodegen (0.75.4): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-NativeModulesApple + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactCommon (0.75.4): + - ReactCommon/turbomodule (= 0.75.4) + - ReactCommon/turbomodule (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.1) - - React-cxxreact (= 0.74.1) - - React-jsi (= 0.74.1) - - React-logger (= 0.74.1) - - React-perflogger (= 0.74.1) - - ReactCommon/turbomodule/bridging (= 0.74.1) - - ReactCommon/turbomodule/core (= 0.74.1) - - ReactCommon/turbomodule/bridging (0.74.1): + - React-callinvoker (= 0.75.4) + - React-cxxreact (= 0.75.4) + - React-jsi (= 0.75.4) + - React-logger (= 0.75.4) + - React-perflogger (= 0.75.4) + - ReactCommon/turbomodule/bridging (= 0.75.4) + - ReactCommon/turbomodule/core (= 0.75.4) + - ReactCommon/turbomodule/bridging (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.1) - - React-cxxreact (= 0.74.1) - - React-jsi (= 0.74.1) - - React-logger (= 0.74.1) - - React-perflogger (= 0.74.1) - - ReactCommon/turbomodule/core (0.74.1): + - React-callinvoker (= 0.75.4) + - React-cxxreact (= 0.75.4) + - React-jsi (= 0.75.4) + - React-logger (= 0.75.4) + - React-perflogger (= 0.75.4) + - ReactCommon/turbomodule/core (0.75.4): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.1) - - React-cxxreact (= 0.74.1) - - React-debug (= 0.74.1) - - React-jsi (= 0.74.1) - - React-logger (= 0.74.1) - - React-perflogger (= 0.74.1) - - React-utils (= 0.74.1) + - React-callinvoker (= 0.75.4) + - React-cxxreact (= 0.75.4) + - React-debug (= 0.75.4) + - React-featureflags (= 0.75.4) + - React-jsi (= 0.75.4) + - React-logger (= 0.75.4) + - React-perflogger (= 0.75.4) + - React-utils (= 0.75.4) - rn-fetch-blob (0.12.0): - React-Core - - RNGestureHandler (2.16.2): + - RNGestureHandler (2.20.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - RNReanimated (3.15.4): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - RNReanimated/reanimated (= 3.15.4) + - RNReanimated/worklets (= 3.15.4) + - Yoga + - RNReanimated/reanimated (3.15.4): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1581,17 +2011,17 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - RNReanimated (3.11.0): + - RNReanimated/worklets (3.15.4): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1602,17 +2032,17 @@ PODS: - React-RCTFabric - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - RNScreens (3.31.1): + - RNScreens (3.34.0): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1624,18 +2054,18 @@ PODS: - React-RCTImage - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNScreens/common (= 3.31.1) + - RNScreens/common (= 3.34.0) - Yoga - - RNScreens/common (3.31.1): + - RNScreens/common (3.34.0): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - - React-Codegen - React-Core - React-debug - React-Fabric @@ -1647,6 +2077,7 @@ PODS: - React-RCTImage - React-rendererdebug - React-utils + - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga @@ -1660,6 +2091,7 @@ DEPENDENCIES: - fmt (from `../../../node_modules/react-native/third-party-podspecs/fmt.podspec`) - glog (from `../../../node_modules/react-native/third-party-podspecs/glog.podspec`) - hermes-engine (from `../../../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) + - NitroModules (from `../../../node_modules/react-native-nitro-modules`) - RCT-Folly (from `../../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCT-Folly/Fabric (from `../../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCTDeprecation (from `../../../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) @@ -1667,17 +2099,21 @@ DEPENDENCIES: - RCTTypeSafety (from `../../../node_modules/react-native/Libraries/TypeSafety`) - React (from `../../../node_modules/react-native/`) - React-callinvoker (from `../../../node_modules/react-native/ReactCommon/callinvoker`) - - React-Codegen (from `build/generated/ios`) - React-Core (from `../../../node_modules/react-native/`) - React-Core/RCTWebSocket (from `../../../node_modules/react-native/`) - React-CoreModules (from `../../../node_modules/react-native/React/CoreModules`) - React-cxxreact (from `../../../node_modules/react-native/ReactCommon/cxxreact`) - React-debug (from `../../../node_modules/react-native/ReactCommon/react/debug`) + - React-defaultsnativemodule (from `../../../node_modules/react-native/ReactCommon/react/nativemodule/defaults`) + - React-domnativemodule (from `../../../node_modules/react-native/ReactCommon/react/nativemodule/dom`) - React-Fabric (from `../../../node_modules/react-native/ReactCommon`) + - React-FabricComponents (from `../../../node_modules/react-native/ReactCommon`) - React-FabricImage (from `../../../node_modules/react-native/ReactCommon`) - React-featureflags (from `../../../node_modules/react-native/ReactCommon/react/featureflags`) + - React-featureflagsnativemodule (from `../../../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`) - React-graphics (from `../../../node_modules/react-native/ReactCommon/react/renderer/graphics`) - React-hermes (from `../../../node_modules/react-native/ReactCommon/hermes`) + - React-idlecallbacksnativemodule (from `../../../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`) - React-ImageManager (from `../../../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) - React-jserrorhandler (from `../../../node_modules/react-native/ReactCommon/jserrorhandler`) - React-jsi (from `../../../node_modules/react-native/ReactCommon/jsi`) @@ -1686,6 +2122,7 @@ DEPENDENCIES: - React-jsitracing (from `../../../node_modules/react-native/ReactCommon/hermes/executor/`) - React-logger (from `../../../node_modules/react-native/ReactCommon/logger`) - React-Mapbuffer (from `../../../node_modules/react-native/ReactCommon`) + - React-microtasksnativemodule (from `../../../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) - react-native-filament (from `../../..`) - react-native-safe-area-context (from `../../../node_modules/react-native-safe-area-context`) - react-native-video (from `../../../node_modules/react-native-video`) @@ -1693,6 +2130,7 @@ DEPENDENCIES: - React-nativeconfig (from `../../../node_modules/react-native/ReactCommon`) - React-NativeModulesApple (from `../../../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) - React-perflogger (from `../../../node_modules/react-native/ReactCommon/reactperflogger`) + - React-performancetimeline (from `../../../node_modules/react-native/ReactCommon/react/performance/timeline`) - React-RCTActionSheet (from `../../../node_modules/react-native/Libraries/ActionSheetIOS`) - React-RCTAnimation (from `../../../node_modules/react-native/Libraries/NativeAnimation`) - React-RCTAppDelegate (from `../../../node_modules/react-native/Libraries/AppDelegate`) @@ -1704,6 +2142,7 @@ DEPENDENCIES: - React-RCTSettings (from `../../../node_modules/react-native/Libraries/Settings`) - React-RCTText (from `../../../node_modules/react-native/Libraries/Text`) - React-RCTVibration (from `../../../node_modules/react-native/Libraries/Vibration`) + - React-rendererconsistency (from `../../../node_modules/react-native/ReactCommon/react/renderer/consistency`) - React-rendererdebug (from `../../../node_modules/react-native/ReactCommon/react/renderer/debug`) - React-rncore (from `../../../node_modules/react-native/ReactCommon`) - React-RuntimeApple (from `../../../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) @@ -1712,6 +2151,7 @@ DEPENDENCIES: - React-RuntimeHermes (from `../../../node_modules/react-native/ReactCommon/react/runtime`) - React-runtimescheduler (from `../../../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) - React-utils (from `../../../node_modules/react-native/ReactCommon/react/utils`) + - ReactCodegen (from `build/generated/ios`) - ReactCommon/turbomodule/core (from `../../../node_modules/react-native/ReactCommon`) - rn-fetch-blob (from `../../../node_modules/rn-fetch-blob`) - RNGestureHandler (from `../../../node_modules/react-native-gesture-handler`) @@ -1736,7 +2176,9 @@ EXTERNAL SOURCES: :podspec: "../../../node_modules/react-native/third-party-podspecs/glog.podspec" hermes-engine: :podspec: "../../../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2024-04-25-RNv0.74.1-b54a3a01c531f4f5f1904cb0770033e8b7153dff + :tag: hermes-2024-08-15-RNv0.75.1-4b3bf912cc0f705b51b71ce1a5b8bd79b93a451b + NitroModules: + :path: "../../../node_modules/react-native-nitro-modules" RCT-Folly: :podspec: "../../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTDeprecation: @@ -1749,8 +2191,6 @@ EXTERNAL SOURCES: :path: "../../../node_modules/react-native/" React-callinvoker: :path: "../../../node_modules/react-native/ReactCommon/callinvoker" - React-Codegen: - :path: build/generated/ios React-Core: :path: "../../../node_modules/react-native/" React-CoreModules: @@ -1759,16 +2199,26 @@ EXTERNAL SOURCES: :path: "../../../node_modules/react-native/ReactCommon/cxxreact" React-debug: :path: "../../../node_modules/react-native/ReactCommon/react/debug" + React-defaultsnativemodule: + :path: "../../../node_modules/react-native/ReactCommon/react/nativemodule/defaults" + React-domnativemodule: + :path: "../../../node_modules/react-native/ReactCommon/react/nativemodule/dom" React-Fabric: :path: "../../../node_modules/react-native/ReactCommon" + React-FabricComponents: + :path: "../../../node_modules/react-native/ReactCommon" React-FabricImage: :path: "../../../node_modules/react-native/ReactCommon" React-featureflags: :path: "../../../node_modules/react-native/ReactCommon/react/featureflags" + React-featureflagsnativemodule: + :path: "../../../node_modules/react-native/ReactCommon/react/nativemodule/featureflags" React-graphics: :path: "../../../node_modules/react-native/ReactCommon/react/renderer/graphics" React-hermes: :path: "../../../node_modules/react-native/ReactCommon/hermes" + React-idlecallbacksnativemodule: + :path: "../../../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks" React-ImageManager: :path: "../../../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" React-jserrorhandler: @@ -1785,6 +2235,8 @@ EXTERNAL SOURCES: :path: "../../../node_modules/react-native/ReactCommon/logger" React-Mapbuffer: :path: "../../../node_modules/react-native/ReactCommon" + React-microtasksnativemodule: + :path: "../../../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" react-native-filament: :path: "../../.." react-native-safe-area-context: @@ -1799,6 +2251,8 @@ EXTERNAL SOURCES: :path: "../../../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" React-perflogger: :path: "../../../node_modules/react-native/ReactCommon/reactperflogger" + React-performancetimeline: + :path: "../../../node_modules/react-native/ReactCommon/react/performance/timeline" React-RCTActionSheet: :path: "../../../node_modules/react-native/Libraries/ActionSheetIOS" React-RCTAnimation: @@ -1821,6 +2275,8 @@ EXTERNAL SOURCES: :path: "../../../node_modules/react-native/Libraries/Text" React-RCTVibration: :path: "../../../node_modules/react-native/Libraries/Vibration" + React-rendererconsistency: + :path: "../../../node_modules/react-native/ReactCommon/react/renderer/consistency" React-rendererdebug: :path: "../../../node_modules/react-native/ReactCommon/react/renderer/debug" React-rncore: @@ -1837,6 +2293,8 @@ EXTERNAL SOURCES: :path: "../../../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" React-utils: :path: "../../../node_modules/react-native/ReactCommon/react/utils" + ReactCodegen: + :path: build/generated/ios ReactCommon: :path: "../../../node_modules/react-native/ReactCommon" rn-fetch-blob: @@ -1851,69 +2309,78 @@ EXTERNAL SOURCES: :path: "../../../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - boost: d3f49c53809116a5d38da093a8aa78bf551aed09 + boost: 4cb898d0bf20404aab1850c656dcea009429d6c1 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 898d14d17bf19e2435cafd9ea2a1033efe445709 + FBLazyVector: 430e10366de01d1e3d57374500b1b150fe482e6d fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 - glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: 16b8530de1b383cdada1476cf52d1b52f0692cbc - RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47 - RCTDeprecation: efb313d8126259e9294dc4ee0002f44a6f676aba - RCTRequired: f49ea29cece52aee20db633ae7edc4b271435562 - RCTTypeSafety: a11979ff0570d230d74de9f604f7d19692157bc4 - React: 88794fad7f460349dbc9df8a274d95f37a009f5d - React-callinvoker: 7a7023e34a55c89ea2aa62486bb3c1164ab0be0c - React-Codegen: f824dfd08f6c0e021580225427ae2fac6ec15f24 - React-Core: 60075333bc22b5a793d3f62e207368b79bff2e64 - React-CoreModules: 147c314d6b3b1e069c9ad64cbbbeba604854ff86 - React-cxxreact: 5de27fd8bff4764acb2eac3ee66001e0e2b910e7 - React-debug: 6397f0baf751b40511d01e984b01467d7e6d8127 - React-Fabric: 6fa475e16e0a37b38d462cec32b70fd5cf886305 - React-FabricImage: 7e09b3704e3fa084b4d44b5b5ef6e2e3d3334ec0 - React-featureflags: 2eb79dd9df4095bff519379f2a4c915069e330bb - React-graphics: 82a482a3aa5d9659b74cdf2c8b57faf67eaa10fb - React-hermes: d93936b02de2fd7e67c11e92c16d4278a14d0134 - React-ImageManager: ebb3c4812e2c5acba5a89728c2d77729471329ad - React-jserrorhandler: a08e0adcf1612900dde82b8bf8e93e7d2ad953b3 - React-jsi: f46d09ee5079a4f3b637d30d0e59b8ea6470632c - React-jsiexecutor: e73579560957aa3ca9dc02ab90e163454279d48c - React-jsinspector: e8ba20dde269c7c1d45784b858fa1cf4383f0bbb - React-jsitracing: 233d1a798fe0ff33b8e630b8f00f62c4a8115fbc - React-logger: 7e7403a2b14c97f847d90763af76b84b152b6fce - React-Mapbuffer: 11029dcd47c5c9e057a4092ab9c2a8d10a496a33 - react-native-filament: 4a7030481f08ed0d363259078192e8c382063775 - react-native-safe-area-context: 7f54ad0a774de306ab790c70d9d950321e5c5449 - react-native-video: ef5d99175a532dbe6cbcb33c849a2d1ecc9bac2e - react-native-worklets-core: f5cdd75d46976ffa253adce0701218313de9cf09 - React-nativeconfig: b0073a590774e8b35192fead188a36d1dca23dec - React-NativeModulesApple: df46ff3e3de5b842b30b4ca8a6caae6d7c8ab09f - React-perflogger: 3d31e0d1e8ad891e43a09ac70b7b17a79773003a - React-RCTActionSheet: c4a3a134f3434c9d7b0c1054f1a8cfed30c7a093 - React-RCTAnimation: 0e5d15320eeece667fcceb6c785acf9a184e9da1 - React-RCTAppDelegate: 3ab57e497300ec1c54b798ba2d0834ee048229f4 - React-RCTBlob: c46aaaee693d371a1c7cae2a8c8ee2aa7fbc1adb - React-RCTFabric: 82f15dc5a981288bfa806545f943cbd18e794ad7 - React-RCTImage: a04dba5fcc823244f5822192c130ecf09623a57f - React-RCTLinking: 533bf13c745fcb2a0c14e0e49fd149586a7f0d14 - React-RCTNetwork: a29e371e0d363d7b4c10ab907bc4d6ae610541e9 - React-RCTSettings: 127813224780861d0d30ecda17a40d1dfebe7d73 - React-RCTText: 8a823f245ecf82edb7569646e3c4d8041deb800a - React-RCTVibration: 46b5fae74e63f240f22f39de16ad6433da3b65d9 - React-rendererdebug: 4653f8da6ab1d7b01af796bdf8ca47a927539e39 - React-rncore: 4f1e645acb5107bd4b4cf29eff17b04a7cd422f3 - React-RuntimeApple: 013b606e743efb5ee14ef03c32379b78bfe74354 - React-RuntimeCore: 7205be45a25713b5418bbf2db91ddfcca0761d8b - React-runtimeexecutor: a278d4249921853d4a3f24e4d6e0ff30688f3c16 - React-RuntimeHermes: 44c628568ce8feedc3acfbd48fc07b7f0f6d2731 - React-runtimescheduler: e2152ed146b6a35c07386fc2ac4827b27e6aad12 - React-utils: 3285151c9d1e3a28a9586571fc81d521678c196d - ReactCommon: f42444e384d82ab89184aed5d6f3142748b54768 + glog: 69ef571f3de08433d766d614c73a9838a06bf7eb + hermes-engine: ea92f60f37dba025e293cbe4b4a548fd26b610a0 + NitroModules: e8722903c6ca5c7616f62c0d7a926a903ae75bce + RCT-Folly: 4464f4d875961fce86008d45f4ecf6cef6de0740 + RCTDeprecation: 726d24248aeab6d7180dac71a936bbca6a994ed1 + RCTRequired: a94e7febda6db0345d207e854323c37e3a31d93b + RCTTypeSafety: 28e24a6e44f5cbf912c66dde6ab7e07d1059a205 + React: c2830fa483b0334bda284e46a8579ebbe0c5447e + React-callinvoker: 4aecde929540c26b841a4493f70ebf6016691eb8 + React-Core: 9c059899f00d46b5cec3ed79251f77d9c469553d + React-CoreModules: 9fac2d31803c0ed03e4ddaa17f1481714f8633a5 + React-cxxreact: a979810a3ca4045ceb09407a17563046a7f71494 + React-debug: 3d21f69d8def0656f8b8ec25c0f05954f4d862c5 + React-defaultsnativemodule: 5bb91842d2bd91c5e9d23f67f5913a1226e8d1f2 + React-domnativemodule: a8ff57705d8372d7182e9277110ad290d50ffeed + React-Fabric: 3bc7be9e3a6b7581fc828dc2aa041e107fc8ffb8 + React-FabricComponents: 668e0cb02344c2942e4c8921a643648faa6dc364 + React-FabricImage: 3f44dd25a2b020ed5215d4438a1bb1f3461cd4f1 + React-featureflags: ee1abd6f71555604a36cda6476e3c502ca9a48e5 + React-featureflagsnativemodule: d91903b8ad0e82b1eee3e7845d08024fbd6c758f + React-graphics: d7dd9c8d75cad5af19e19911fa370f78f2febd96 + React-hermes: 2069b08e965e48b7f8aa2c0ca0a2f383349ed55d + React-idlecallbacksnativemodule: 568f7db5c625852e3eac25a5686760da152f0225 + React-ImageManager: ab7a7d17dd0ff1ef1d4e1e88197d1119da9957ce + React-jserrorhandler: d9e867bb83b868472f3f7601883f0403b3e3942d + React-jsi: d68f1d516e5120a510afe356647a6a1e1f98f2db + React-jsiexecutor: 6366a08a0fc01c9b65736f8deacd47c4a397912a + React-jsinspector: 0ac947411f0c73b34908800cc7a6a31d8f93e1a8 + React-jsitracing: 0e8c0aadb1fcec6b1e4f2a66ee3b0da80f0f8615 + React-logger: d79b704bf215af194f5213a6b7deec50ba8e6a9b + React-Mapbuffer: b982d5bba94a8bc073bda48f0d27c9b28417fae3 + React-microtasksnativemodule: 2cec1d6e126598df0f165268afa231174dd1a611 + react-native-filament: a962382325e4ebc830a5612dd82821d36156df16 + react-native-safe-area-context: f1fda705dfe14355f41933debb5932887e234cc5 + react-native-video: 5673f1661e4422dcf6529c9c1eb2094b1867da42 + react-native-worklets-core: 4c09937509023c81744c25b78922d26ccc0d0d96 + React-nativeconfig: 8c83d992b9cc7d75b5abe262069eaeea4349f794 + React-NativeModulesApple: 9f7920224a3b0c7d04d77990067ded14cee3c614 + React-perflogger: 59e1a3182dca2cee7b9f1f7aab204018d46d1914 + React-performancetimeline: a9d05533ff834c6aa1f532e05e571f3fd2e3c1ed + React-RCTActionSheet: d80e68d3baa163e4012a47c1f42ddd8bcd9672cc + React-RCTAnimation: bde981f6bd7f8493696564da9b3bd05721d3b3cc + React-RCTAppDelegate: b21d50ec42f18fedae765629d56850538a8c98d7 + React-RCTBlob: 520a0382bf8e89b9153d60e3c6293e51615834e9 + React-RCTFabric: a083f6c78c6084a0ac332934fc5cfc4271bab61f + React-RCTImage: 90448d2882464af6015ed57c98f463f8748be465 + React-RCTLinking: 1bd95d0a704c271d21d758e0f0388cced768d77d + React-RCTNetwork: 218af6e63eb9b47935cc5a775b7a1396cf10ff91 + React-RCTSettings: e10b8e42b0fce8a70fbf169de32a2ae03243ef6b + React-RCTText: e7bf9f4997a1a0b45c052d4ad9a0fe653061cf29 + React-RCTVibration: 5b70b7f11e48d1c57e0d4832c2097478adbabe93 + React-rendererconsistency: f620c6e003e3c4593e6349d8242b8aeb3d4633f0 + React-rendererdebug: e697680f4dd117becc5daf9ea9800067abcee91c + React-rncore: c22bd84cc2f38947f0414fab6646db22ff4f80cd + React-RuntimeApple: de0976836b90b484305638616898cbc665c67c13 + React-RuntimeCore: 3c4a5aa63d9e7a3c17b7fb23f32a72a8bcfccf57 + React-runtimeexecutor: ea90d8e3a9e0f4326939858dafc6ab17c031a5d3 + React-RuntimeHermes: c6b0afdf1f493621214eeb6517fb859ce7b21b81 + React-runtimescheduler: 84f0d876d254bce6917a277b3930eb9bc29df6c7 + React-utils: cbe8b8b3d7b2ac282e018e46f0e7b25cdc87c5a0 + ReactCodegen: 3982de3211b80e119d9daa9cd6af090d75cb8e90 + ReactCommon: 6a952e50c2a4b694731d7682aaa6c79bc156e4ad rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba - RNGestureHandler: 156548e18203327173a764c6932a3f52e90cb9cd - RNReanimated: 7f36f7e604521cfd351f3b6cd98d1f2564712cb1 - RNScreens: 63fe8222c172a79f5c30dd1aefaeb369c6eb57b6 + RNGestureHandler: c374c750a0a9bacd95f5c740d146ab9428549d6b + RNReanimated: b3d406ee69af6972be20715d972b45d713aad400 + RNScreens: de6e57426ba0e6cbc3fb5b4f496e7f08cb2773c2 SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: b9a182ab00cf25926e7f79657d08c5d23c2d03b0 + Yoga: aa3df615739504eebb91925fc9c58b4922ea9a08 PODFILE CHECKSUM: 61e2d43434a88d43bef6547928e8629b41852d24 diff --git a/package/example/AppExampleFabric/ios/RNFFabric.xcodeproj/project.pbxproj b/package/example/AppExampleFabric/ios/RNFFabric.xcodeproj/project.pbxproj index 8b810f76..7cb6e5d0 100644 --- a/package/example/AppExampleFabric/ios/RNFFabric.xcodeproj/project.pbxproj +++ b/package/example/AppExampleFabric/ios/RNFFabric.xcodeproj/project.pbxproj @@ -605,6 +605,7 @@ ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../../../node_modules/react-native"; SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; USE_HERMES = true; }; name = Debug; diff --git a/package/example/AppExampleFabric/package.json b/package/example/AppExampleFabric/package.json index ca984da8..64b84622 100644 --- a/package/example/AppExampleFabric/package.json +++ b/package/example/AppExampleFabric/package.json @@ -13,15 +13,16 @@ "codegen": "react-native codegen" }, "dependencies": { - "@react-navigation/native": "^6.1.17", - "@react-navigation/native-stack": "^6.9.26", - "react": "18.2.0", - "react-native": "0.74.1", - "react-native-gesture-handler": "^2.16.2", - "react-native-reanimated": "^3.11.0", - "react-native-safe-area-context": "^4.10.1", - "react-native-screens": "^3.31.1", - "react-native-video": "^6.1.2", + "@react-navigation/native": "^6.1.18", + "@react-navigation/native-stack": "^6.11.0", + "react": "18.3.1", + "react-native": "0.75.4", + "react-native-gesture-handler": "^2.20.0", + "react-native-nitro-modules": "^0.11.0", + "react-native-reanimated": "^3.15.4", + "react-native-safe-area-context": "^4.11.0", + "react-native-screens": "^3.34.0", + "react-native-video": "^6.6.4", "react-native-worklets-core": "^2.0.0-beta.4", "rn-fetch-blob": "^0.12.0", "shared": "workspace:^" @@ -30,9 +31,9 @@ "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.83", - "@react-native/metro-config": "0.74.83", - "@react-native/typescript-config": "0.74.83", + "@react-native/babel-preset": "0.75.4", + "@react-native/metro-config": "0.75.4", + "@react-native/typescript-config": "0.75.4", "babel-plugin-module-resolver": "^5.0.0", "typescript": "5.2.2" }, diff --git a/package/example/AppExamplePaper/Gemfile b/package/example/AppExamplePaper/Gemfile index 8d72c37a..2a7ce357 100644 --- a/package/example/AppExamplePaper/Gemfile +++ b/package/example/AppExamplePaper/Gemfile @@ -3,7 +3,6 @@ source 'https://rubygems.org' # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version ruby ">= 2.6.10" -# Cocoapods 1.15 introduced a bug which break the build. We will remove the upper -# bound in the template on Cocoapods with next React Native release. -gem 'cocoapods', '>= 1.13', '< 1.15' -gem 'activesupport', '>= 6.1.7.5', '< 7.1.0' +# Exclude problematic versions of cocoapods and activesupport that causes build failures. +gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' +gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' diff --git a/package/example/AppExamplePaper/android/app/build.gradle b/package/example/AppExamplePaper/android/app/build.gradle index c0862e45..f10b0ced 100644 --- a/package/example/AppExamplePaper/android/app/build.gradle +++ b/package/example/AppExamplePaper/android/app/build.gradle @@ -8,14 +8,14 @@ apply plugin: "com.facebook.react" */ react { /* Folders */ - // The root of your project, i.e. where "package.json" lives. Default is '..' - // root = file("../") - // The folder where the react-native NPM package is. Default is ../node_modules/react-native - // reactNativeDir = file("../node_modules/react-native") - // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen - // codegenDir = file("../node_modules/@react-native/codegen") - // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js - // cliFile = file("../node_modules/react-native/cli.js") + // The root of your project, i.e. where "package.json" lives. Default is '../..' + // root = file("../../") + // The folder where the react-native NPM package is. Default is ../../node_modules/react-native + // reactNativeDir = file("../../node_modules/react-native") + // The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen + // codegenDir = file("../../node_modules/@react-native/codegen") + // The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js + // cliFile = file("../../node_modules/react-native/cli.js") /* Variants */ // The list of variants to that are debuggable. For those we're going to @@ -49,6 +49,9 @@ react { // // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" // hermesFlags = ["-O", "-output-source-map"] + + /* Autolinking */ + autolinkLibrariesWithApp() } /** @@ -114,5 +117,3 @@ dependencies { implementation jscFlavor } } - -apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) diff --git a/package/example/AppExamplePaper/android/app/src/main/AndroidManifest.xml b/package/example/AppExamplePaper/android/app/src/main/AndroidManifest.xml index 4122f36a..e1892528 100644 --- a/package/example/AppExamplePaper/android/app/src/main/AndroidManifest.xml +++ b/package/example/AppExamplePaper/android/app/src/main/AndroidManifest.xml @@ -8,7 +8,8 @@ android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" - android:theme="@style/AppTheme"> + android:theme="@style/AppTheme" + android:supportsRtl="true"> ex.autolinkLibrariesFromCommand() } rootProject.name = 'RNFPaper' -apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) include ':app' includeBuild('../node_modules/@react-native/gradle-plugin') diff --git a/package/example/AppExamplePaper/ios/Podfile.lock b/package/example/AppExamplePaper/ios/Podfile.lock index 1b556e7a..3c29ba82 100644 --- a/package/example/AppExamplePaper/ios/Podfile.lock +++ b/package/example/AppExamplePaper/ios/Podfile.lock @@ -7,6 +7,27 @@ PODS: - hermes-engine (0.74.1): - hermes-engine/Pre-built (= 0.74.1) - hermes-engine/Pre-built (0.74.1) + - NitroModules (0.5.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - RCT-Folly (2024.01.01.00): - boost - DoubleConversion @@ -935,10 +956,11 @@ PODS: - React-Mapbuffer (0.74.1): - glog - React-debug - - react-native-filament (1.4.1): + - react-native-filament (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -949,16 +971,16 @@ PODS: - React-featureflags - React-graphics - React-ImageManager - - react-native-filament/camutils (= 1.4.1) - - react-native-filament/filamat (= 1.4.1) - - react-native-filament/filament (= 1.4.1) - - react-native-filament/gltfio_core (= 1.4.1) - - react-native-filament/image (= 1.4.1) - - react-native-filament/ktxreader (= 1.4.1) - - react-native-filament/math (= 1.4.1) - - react-native-filament/tsl (= 1.4.1) - - react-native-filament/uberz (= 1.4.1) - - react-native-filament/utils (= 1.4.1) + - react-native-filament/camutils (= 1.5.1) + - react-native-filament/filamat (= 1.5.1) + - react-native-filament/filament (= 1.5.1) + - react-native-filament/gltfio_core (= 1.5.1) + - react-native-filament/image (= 1.5.1) + - react-native-filament/ktxreader (= 1.5.1) + - react-native-filament/math (= 1.5.1) + - react-native-filament/tsl (= 1.5.1) + - react-native-filament/uberz (= 1.5.1) + - react-native-filament/utils (= 1.5.1) - react-native-worklets-core - React-NativeModulesApple - React-RCTFabric @@ -967,10 +989,11 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/camutils (1.4.1): + - react-native-filament/camutils (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -990,10 +1013,11 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/filamat (1.4.1): + - react-native-filament/filamat (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1014,10 +1038,11 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/filament (1.4.1): + - react-native-filament/filament (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1038,10 +1063,11 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/gltfio_core (1.4.1): + - react-native-filament/gltfio_core (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1063,10 +1089,11 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/image (1.4.1): + - react-native-filament/image (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1086,10 +1113,11 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/ktxreader (1.4.1): + - react-native-filament/ktxreader (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1110,10 +1138,11 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/math (1.4.1): + - react-native-filament/math (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1132,10 +1161,11 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/tsl (1.4.1): + - react-native-filament/tsl (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1154,10 +1184,11 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/uberz (1.4.1): + - react-native-filament/uberz (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1179,10 +1210,11 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-filament/utils (1.4.1): + - react-native-filament/utils (1.5.1): - DoubleConversion - glog - hermes-engine + - NitroModules - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1556,6 +1588,7 @@ DEPENDENCIES: - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) + - NitroModules (from `../node_modules/react-native-nitro-modules`) - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) @@ -1633,6 +1666,8 @@ EXTERNAL SOURCES: hermes-engine: :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" :tag: hermes-2024-04-25-RNv0.74.1-b54a3a01c531f4f5f1904cb0770033e8b7153dff + NitroModules: + :path: "../node_modules/react-native-nitro-modules" RCT-Folly: :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTDeprecation: @@ -1753,6 +1788,7 @@ SPEC CHECKSUMS: fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 hermes-engine: 16b8530de1b383cdada1476cf52d1b52f0692cbc + NitroModules: 4f1ee46199d395b4fe0da7b819a61a37cc955add RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47 RCTDeprecation: efb313d8126259e9294dc4ee0002f44a6f676aba RCTRequired: f49ea29cece52aee20db633ae7edc4b271435562 @@ -1777,7 +1813,7 @@ SPEC CHECKSUMS: React-jsitracing: 233d1a798fe0ff33b8e630b8f00f62c4a8115fbc React-logger: 7e7403a2b14c97f847d90763af76b84b152b6fce React-Mapbuffer: 11029dcd47c5c9e057a4092ab9c2a8d10a496a33 - react-native-filament: 04ef2c32e88eec8f22b545029962f2b4af48e059 + react-native-filament: e232d14507d95e4f6331b0cb9d276931785e5913 react-native-safe-area-context: dcab599c527c2d7de2d76507a523d20a0b83823d react-native-video: 9f29aee2feb9e42da24cb40b70d005d38a1a132f react-native-worklets-core: f51430dd07bf5343d4918d28a4bb00fe8f98b982 diff --git a/package/example/AppExamplePaper/package.json b/package/example/AppExamplePaper/package.json index 93676c62..50c87d7a 100644 --- a/package/example/AppExamplePaper/package.json +++ b/package/example/AppExamplePaper/package.json @@ -13,14 +13,16 @@ "codegen": "react-native codegen" }, "dependencies": { - "@react-navigation/native": "^6.1.17", - "@react-navigation/native-stack": "^6.9.26", - "react-native": "0.74.1", - "react-native-gesture-handler": "^2.16.2", - "react-native-reanimated": "^3.11.0", - "react-native-safe-area-context": "^4.10.1", - "react-native-screens": "^3.31.1", - "react-native-video": "^6.1.2", + "@react-navigation/native": "^6.1.18", + "@react-navigation/native-stack": "^6.11.0", + "react": "18.3.1", + "react-native": "0.75.4", + "react-native-gesture-handler": "^2.20.0", + "react-native-nitro-modules": "^0.11.0", + "react-native-reanimated": "^3.15.4", + "react-native-safe-area-context": "^4.11.0", + "react-native-screens": "^3.34.0", + "react-native-video": "^6.6.4", "react-native-worklets-core": "^1.3.3", "rn-fetch-blob": "^0.12.0", "shared": "workspace:^" @@ -29,9 +31,9 @@ "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.83", - "@react-native/metro-config": "0.74.83", - "@react-native/typescript-config": "0.74.83", + "@react-native/babel-preset": "0.75.4", + "@react-native/metro-config": "0.75.4", + "@react-native/typescript-config": "0.75.4", "babel-plugin-module-resolver": "^5.0.0", "typescript": "5.2.2" }, diff --git a/package/example/Shared/package.json b/package/example/Shared/package.json index 92b299ac..c8717326 100644 --- a/package/example/Shared/package.json +++ b/package/example/Shared/package.json @@ -8,15 +8,15 @@ "typescript": "tsc --noEmit" }, "dependencies": { - "@react-navigation/native": "^6.1.17", - "@react-navigation/native-stack": "^6.9.26", - "react": "18.2.0", - "react-native": "0.74.1", - "react-native-gesture-handler": "^2.16.2", - "react-native-reanimated": "^3.11.0", - "react-native-safe-area-context": "^4.10.1", - "react-native-screens": "^3.31.1", - "react-native-video": "^6.1.2", + "@react-navigation/native": "^6.1.18", + "@react-navigation/native-stack": "^6.11.0", + "react": "18.3.1", + "react-native": "0.75.4", + "react-native-gesture-handler": "^2.20.0", + "react-native-reanimated": "^3.15.4", + "react-native-safe-area-context": "^4.11.0", + "react-native-screens": "^3.34.0", + "react-native-video": "^6.6.4", "react-native-worklets-core": "^2.0.0-beta.4", "rn-fetch-blob": "^0.12.0" }, @@ -24,9 +24,9 @@ "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.83", - "@react-native/metro-config": "0.74.83", - "@react-native/typescript-config": "0.74.83", + "@react-native/babel-preset": "0.75.4", + "@react-native/metro-config": "0.75.4", + "@react-native/typescript-config": "0.75.4", "babel-plugin-module-resolver": "^5.0.0", "typescript": "5.2.2" } diff --git a/package/ios/src/RNFAppleDispatcher.h b/package/ios/src/RNFAppleDispatcher.h index 5d4ba918..c563afcd 100644 --- a/package/ios/src/RNFAppleDispatcher.h +++ b/package/ios/src/RNFAppleDispatcher.h @@ -15,7 +15,7 @@ namespace margelo { /** A [Dispatcher] implementation that uses iOS dispatch_queues to schedule calls. */ -class AppleDispatcher : public Dispatcher { +class AppleDispatcher : public margelo::Dispatcher { public: explicit AppleDispatcher(dispatch_queue_t dispatchQueue) : _dispatchQueue(dispatchQueue) {} diff --git a/package/ios/src/RNFAppleFilamentProxy.h b/package/ios/src/RNFAppleFilamentProxy.h index 3509742b..9646d15f 100644 --- a/package/ios/src/RNFAppleFilamentProxy.h +++ b/package/ios/src/RNFAppleFilamentProxy.h @@ -28,7 +28,7 @@ class AppleFilamentProxy : public FilamentProxy { explicit AppleFilamentProxy(jsi::Runtime* runtime, std::shared_ptr jsDispatcher, __weak RCTSurfacePresenter* surfacePresenter); #else - explicit AppleFilamentProxy(jsi::Runtime* runtime, std::shared_ptr jsDispatcher); + explicit AppleFilamentProxy(jsi::Runtime* runtime, std::shared_ptr jsDispatcher); #endif public: @@ -36,10 +36,10 @@ class AppleFilamentProxy : public FilamentProxy { std::shared_ptr findFilamentView(int modelId) override; std::shared_ptr createChoreographer() override; std::shared_ptr createRecorder(int width, int height, int fps, double bitRate) override; - std::shared_ptr getJSDispatcher() override; - std::shared_ptr getRenderThreadDispatcher() override; - std::shared_ptr getUIDispatcher() override; - std::shared_ptr getBackgroundDispatcher() override; + std::shared_ptr getJSDispatcher() override; + std::shared_ptr getRenderThreadDispatcher() override; + std::shared_ptr getUIDispatcher() override; + std::shared_ptr getBackgroundDispatcher() override; float getDisplayRefreshRate() override; float getDensityPixelRatio() override; @@ -48,10 +48,10 @@ class AppleFilamentProxy : public FilamentProxy { private: // The runtime the proxy has been installed on jsi::Runtime* _runtime; - std::shared_ptr _jsDispatcher; - std::shared_ptr _renderThreadDispatcher; - std::shared_ptr _uiDispatcher; - std::shared_ptr _backgroundDispatcher; + std::shared_ptr _jsDispatcher; + std::shared_ptr _renderThreadDispatcher; + std::shared_ptr _uiDispatcher; + std::shared_ptr _backgroundDispatcher; #ifdef RCT_NEW_ARCH_ENABLED __weak RCTSurfacePresenter* _surfacePresenter; #endif diff --git a/package/ios/src/RNFAppleFilamentProxy.mm b/package/ios/src/RNFAppleFilamentProxy.mm index 7923259e..52015161 100644 --- a/package/ios/src/RNFAppleFilamentProxy.mm +++ b/package/ios/src/RNFAppleFilamentProxy.mm @@ -32,7 +32,7 @@ __weak RCTSurfacePresenter* surfacePresenter) : _runtime(runtime), _jsDispatcher(jsDispatcher), _surfacePresenter(surfacePresenter) {} #else -AppleFilamentProxy::AppleFilamentProxy(jsi::Runtime* runtime, std::shared_ptr jsDispatcher) +AppleFilamentProxy::AppleFilamentProxy(jsi::Runtime* runtime, std::shared_ptr jsDispatcher) : _runtime(runtime), _jsDispatcher(jsDispatcher) {} #endif @@ -40,7 +40,7 @@ NSString* filePath = [NSString stringWithUTF8String:path.c_str()]; // Check if its a web uri, if so load using NSData if ([filePath hasPrefix:@"http://"] || [filePath hasPrefix:@"https://"]) { - Logger::log(TAG, "Fetching %s...", [filePath cStringUsingEncoding:NSUTF8StringEncoding]); + margelo::Logger::log(TAG, "Fetching %s...", [filePath cStringUsingEncoding:NSUTF8StringEncoding]); NSURL* url = [NSURL URLWithString:filePath]; NSData* data = [NSData dataWithContentsOfURL:url]; if (data == nil) { @@ -88,11 +88,11 @@ return std::make_shared(managedBuffer); } -std::shared_ptr AppleFilamentProxy::getJSDispatcher() { +std::shared_ptr AppleFilamentProxy::getJSDispatcher() { return _jsDispatcher; } -std::shared_ptr AppleFilamentProxy::getRenderThreadDispatcher() { +std::shared_ptr AppleFilamentProxy::getRenderThreadDispatcher() { if (_renderThreadDispatcher == nullptr) { // Filament has a strong requirement that you can only render from one single Thread. // iOS dispatch_queues may use multiple Threads, so we need to use NSThreadDispatcher instead of @@ -102,14 +102,14 @@ return _renderThreadDispatcher; } -std::shared_ptr AppleFilamentProxy::getUIDispatcher() { +std::shared_ptr AppleFilamentProxy::getUIDispatcher() { if (_uiDispatcher == nullptr) { _uiDispatcher = std::make_shared(dispatch_get_main_queue()); } return _uiDispatcher; } -std::shared_ptr AppleFilamentProxy::getBackgroundDispatcher() { +std::shared_ptr AppleFilamentProxy::getBackgroundDispatcher() { if (_backgroundDispatcher == nullptr) { dispatch_queue_attr_t qos = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_CONCURRENT, QOS_CLASS_USER_INITIATED, -1); dispatch_queue_t queue = dispatch_queue_create("filament.background.queue", qos); diff --git a/package/ios/src/RNFAppleFilamentRecorder.h b/package/ios/src/RNFAppleFilamentRecorder.h index a40b9521..5b4b33a1 100644 --- a/package/ios/src/RNFAppleFilamentRecorder.h +++ b/package/ios/src/RNFAppleFilamentRecorder.h @@ -17,7 +17,7 @@ namespace margelo { class AppleFilamentRecorder : public FilamentRecorder { public: - explicit AppleFilamentRecorder(std::shared_ptr renderThreadDispatcher, int width, int height, int fps, double bitRate); + explicit AppleFilamentRecorder(std::shared_ptr renderThreadDispatcher, int width, int height, int fps, double bitRate); void* getNativeWindow() override; std::string getOutputFile() override; diff --git a/package/ios/src/RNFFilamentInstaller.mm b/package/ios/src/RNFFilamentInstaller.mm index af9f5482..c5ce85cb 100644 --- a/package/ios/src/RNFFilamentInstaller.mm +++ b/package/ios/src/RNFFilamentInstaller.mm @@ -46,8 +46,8 @@ + (BOOL)installToBridge:(jsi::Runtime*)runtime } // global.__globalDispatcher - std::shared_ptr jsDispatcher = std::make_shared(callInvoker); - Dispatcher::installRuntimeGlobalDispatcher(*runtime, jsDispatcher); + std::shared_ptr jsDispatcher = std::make_shared(callInvoker); + margelo::Dispatcher::installRuntimeGlobalDispatcher(*runtime, jsDispatcher); // global.FilamentProxy #ifdef RCT_NEW_ARCH_ENABLED diff --git a/package/ios/src/RNFNSThreadDispatcher.h b/package/ios/src/RNFNSThreadDispatcher.h index 2e1e9f51..14b991bc 100644 --- a/package/ios/src/RNFNSThreadDispatcher.h +++ b/package/ios/src/RNFNSThreadDispatcher.h @@ -16,7 +16,7 @@ namespace margelo { /** A [Dispatcher] implementation that uses an Objective-C NSThread. */ -class NSThreadDispatcher : public Dispatcher { +class NSThreadDispatcher : public margelo::Dispatcher { public: explicit NSThreadDispatcher(const std::string& name); diff --git a/package/nitro.json b/package/nitro.json new file mode 100644 index 00000000..9827800a --- /dev/null +++ b/package/nitro.json @@ -0,0 +1,12 @@ +{ + "logLevel": "debug", + "autolinking": {}, + "cxxNamespace": ["RNF"], + "ios": { + "iosModulename": "RNF" + }, + "android": { + "androidNamespace": ["RNF"], + "androidCxxLibName": "RNF" + } +} diff --git a/package/nitrogen/generated/android/RNF+autolinking.cmake b/package/nitrogen/generated/android/RNF+autolinking.cmake new file mode 100644 index 00000000..1e2c8433 --- /dev/null +++ b/package/nitrogen/generated/android/RNF+autolinking.cmake @@ -0,0 +1,82 @@ +# +# RNF+autolinking.cmake +# This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +# https://github.com/mrousavy/nitro +# Copyright © 2024 Marc Rousavy @ Margelo +# + +# This is a CMake file that adds all files generated by Nitrogen +# to the current CMake project. +# +# To use it, add this to your CMakeLists.txt: +# ```cmake +# include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/RNF+autolinking.cmake) +# ``` + +# Add all headers that were generated by Nitrogen +include_directories( + "../nitrogen/generated/shared/c++" + "../nitrogen/generated/android/c++" + "../nitrogen/generated/android/" +) + +# Add all .cpp sources that were generated by Nitrogen +target_sources( + # CMake project name (Android C++ library name) + RNF PRIVATE + # Autolinking Setup + ../nitrogen/generated/android/RNFOnLoad.cpp + # Shared Nitrogen C++ sources + ../nitrogen/generated/shared/c++/HybridSurfaceSpec.cpp + ../nitrogen/generated/shared/c++/HybridSurfaceProviderSpec.cpp + ../nitrogen/generated/shared/c++/HybridAnimatorSpec.cpp + ../nitrogen/generated/shared/c++/HybridBaseBoxSpec.cpp + ../nitrogen/generated/shared/c++/HybridBoxSpec.cpp + ../nitrogen/generated/shared/c++/HybridAABBSpec.cpp + ../nitrogen/generated/shared/c++/HybridRNFCameraSpec.cpp + ../nitrogen/generated/shared/c++/HybridCameraManipulatorSpec.cpp + ../nitrogen/generated/shared/c++/HybridChoreographerSpec.cpp + ../nitrogen/generated/shared/c++/HybridEngineSpec.cpp + ../nitrogen/generated/shared/c++/HybridEntitySpec.cpp + ../nitrogen/generated/shared/c++/HybridFilamentAssetSpec.cpp + ../nitrogen/generated/shared/c++/HybridFilamentBufferSpec.cpp + ../nitrogen/generated/shared/c++/HybridFilamentInstanceSpec.cpp + ../nitrogen/generated/shared/c++/HybridTFilamentRecorderSpec.cpp + ../nitrogen/generated/shared/c++/HybridLightManagerSpec.cpp + ../nitrogen/generated/shared/c++/HybridListenerSpec.cpp + ../nitrogen/generated/shared/c++/HybridMaterialSpec.cpp + ../nitrogen/generated/shared/c++/HybridMaterialInstanceSpec.cpp + ../nitrogen/generated/shared/c++/HybridNameComponentManagerSpec.cpp + ../nitrogen/generated/shared/c++/HybridPointerHolderSpec.cpp + ../nitrogen/generated/shared/c++/HybridRenderableManagerSpec.cpp + ../nitrogen/generated/shared/c++/HybridRendererSpec.cpp + ../nitrogen/generated/shared/c++/HybridSceneSpec.cpp + ../nitrogen/generated/shared/c++/HybridSwapChainSpec.cpp + ../nitrogen/generated/shared/c++/HybridMat4Spec.cpp + ../nitrogen/generated/shared/c++/HybridTransformManagerSpec.cpp + ../nitrogen/generated/shared/c++/HybridViewSpec.cpp + ../nitrogen/generated/shared/c++/HybridBulletAPISpec.cpp + ../nitrogen/generated/shared/c++/HybridDiscreteDynamicWorldSpec.cpp + ../nitrogen/generated/shared/c++/HybridRigidBodySpec.cpp + ../nitrogen/generated/shared/c++/HybridBaseShapeSpec.cpp + ../nitrogen/generated/shared/c++/HybridBoxShapeSpec.cpp + ../nitrogen/generated/shared/c++/HybridCylinderShapeSpec.cpp + ../nitrogen/generated/shared/c++/HybridStaticPlaneShapeSpec.cpp + ../nitrogen/generated/shared/c++/HybridSphereShapeSpec.cpp + # Android-specific Nitrogen C++ sources + +) + +# Add all libraries required by the generated specs +find_package(fbjni REQUIRED) # <-- Used for communication between Java <-> C++ +find_package(ReactAndroid REQUIRED) # <-- Used to set up React Native bindings (e.g. CallInvoker/TurboModule) +find_package(react-native-nitro-modules REQUIRED) # <-- Used to create all HybridObjects and use the Nitro core library + +# Link all libraries together +target_link_libraries( + RNF + fbjni::fbjni # <-- Facebook C++ JNI helpers + ReactAndroid::jsi # <-- RN: JSI + ReactAndroid::react_nativemodule_core # <-- RN: TurboModules Core + react-native-nitro-modules::NitroModules # <-- NitroModules Core :) +) diff --git a/package/nitrogen/generated/android/RNF+autolinking.gradle b/package/nitrogen/generated/android/RNF+autolinking.gradle new file mode 100644 index 00000000..3178b50b --- /dev/null +++ b/package/nitrogen/generated/android/RNF+autolinking.gradle @@ -0,0 +1,25 @@ +/// +/// RNF+autolinking.gradle +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +/// This is a Gradle file that adds all files generated by Nitrogen +/// to the current Gradle project. +/// +/// To use it, add this to your build.gradle: +/// ```gradle +/// apply from: '../nitrogen/generated/android/RNF+autolinking.gradle' +/// ``` + +android { + sourceSets { + main { + java.srcDirs += [ + // Nitrogen files + "${project.projectDir}/../nitrogen/generated/android/kotlin" + ] + } + } +} diff --git a/package/nitrogen/generated/android/RNFOnLoad.cpp b/package/nitrogen/generated/android/RNFOnLoad.cpp new file mode 100644 index 00000000..9d016909 --- /dev/null +++ b/package/nitrogen/generated/android/RNFOnLoad.cpp @@ -0,0 +1,32 @@ +/// +/// RNFOnLoad.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "RNFOnLoad.hpp" + +#include +#include +#include + + + +namespace margelo::nitro::RNF { + +int initialize(JavaVM* vm) { + using namespace margelo::nitro; + using namespace margelo::nitro::RNF; + using namespace facebook; + + return facebook::jni::initialize(vm, [] { + // Register native JNI methods + + + // Register Nitro Hybrid Objects + + }); +} + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/android/RNFOnLoad.hpp b/package/nitrogen/generated/android/RNFOnLoad.hpp new file mode 100644 index 00000000..89742ae0 --- /dev/null +++ b/package/nitrogen/generated/android/RNFOnLoad.hpp @@ -0,0 +1,25 @@ +/// +/// RNFOnLoad.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include +#include + +namespace margelo::nitro::RNF { + + /** + * Initializes the native (C++) part of RNF, and autolinks all Hybrid Objects. + * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`). + * Example: + * ```cpp (cpp-adapter.cpp) + * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { + * return margelo::nitro::RNF::initialize(vm); + * } + * ``` + */ + int initialize(JavaVM* vm); + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/android/RNFOnLoad.kt b/package/nitrogen/generated/android/RNFOnLoad.kt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/package/nitrogen/generated/android/RNFOnLoad.kt @@ -0,0 +1 @@ + diff --git a/package/nitrogen/generated/ios/RNF+autolinking.rb b/package/nitrogen/generated/ios/RNF+autolinking.rb new file mode 100644 index 00000000..7889f709 --- /dev/null +++ b/package/nitrogen/generated/ios/RNF+autolinking.rb @@ -0,0 +1,56 @@ +# +# RNF+autolinking.rb +# This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +# https://github.com/mrousavy/nitro +# Copyright © 2024 Marc Rousavy @ Margelo +# + +# This is a Ruby script that adds all files generated by Nitrogen +# to the given podspec. +# +# To use it, add this to your .podspec: +# ```ruby +# Pod::Spec.new do |spec| +# # ... +# +# # Add all files generated by Nitrogen +# load 'nitrogen/generated/ios/RNF+autolinking.rb' +# add_nitrogen_files(spec) +# end +# ``` + +def add_nitrogen_files(spec) + Pod::UI.puts "[NitroModules] Adding RNF specs..." + + spec.dependency "NitroModules" + + current_source_files = spec.attributes_hash['source_files'] || [] + spec.source_files = current_source_files + [ + # Generated cross-platform specs + "nitrogen/generated/shared/**/*.{h,hpp,c,cpp,swift}", + # Generated bridges for the cross-platform specs + "nitrogen/generated/ios/**/*.{h,hpp,c,cpp,mm,swift}", + ] + + current_public_header_files = spec.attributes_hash['public_header_files'] || [] + spec.public_header_files = current_public_header_files + [ + # Generated specs + "nitrogen/generated/shared/**/*.{h,hpp}", + # Swift to C++ bridging helpers + "nitrogen/generated/ios/RNF-Swift-Cxx-Bridge.hpp" + ] + + current_private_header_files = spec.attributes_hash['private_header_files'] || [] + spec.private_header_files = current_private_header_files + [ + # iOS specific specs + "nitrogen/generated/ios/c++/**/*.{h,hpp}", + ] + + current_pod_target_xcconfig = spec.attributes_hash['pod_target_xcconfig'] || {} + spec.pod_target_xcconfig = current_pod_target_xcconfig.merge({ + # Use C++ 20 + "CLANG_CXX_LANGUAGE_STANDARD" => "c++20", + # Enables C++ <-> Swift interop (by default it's only C) + "SWIFT_OBJC_INTEROP_MODE" => "objcxx", + }) +end diff --git a/package/nitrogen/generated/ios/RNF-Swift-Cxx-Bridge.cpp b/package/nitrogen/generated/ios/RNF-Swift-Cxx-Bridge.cpp new file mode 100644 index 00000000..9e80f45a --- /dev/null +++ b/package/nitrogen/generated/ios/RNF-Swift-Cxx-Bridge.cpp @@ -0,0 +1,8 @@ +/// +/// RNF-Swift-Cxx-Bridge.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "RNF-Swift-Cxx-Bridge.hpp" diff --git a/package/nitrogen/generated/ios/RNF-Swift-Cxx-Bridge.hpp b/package/nitrogen/generated/ios/RNF-Swift-Cxx-Bridge.hpp new file mode 100644 index 00000000..8a90f0af --- /dev/null +++ b/package/nitrogen/generated/ios/RNF-Swift-Cxx-Bridge.hpp @@ -0,0 +1,475 @@ +/// +/// RNF-Swift-Cxx-Bridge.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +// Forward declarations of C++ defined types +// Forward declaration of `FrameInfo` to properly resolve imports. +namespace margelo::nitro::RNF { struct FrameInfo; } +// Forward declaration of `HybridEntitySpecSwift` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridEntitySpecSwift; } +// Forward declaration of `HybridEntitySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridEntitySpec; } +// Forward declaration of `HybridFilamentInstanceSpecSwift` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentInstanceSpecSwift; } +// Forward declaration of `HybridFilamentInstanceSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentInstanceSpec; } +// Forward declaration of `HybridMaterialSpecSwift` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridMaterialSpecSwift; } +// Forward declaration of `HybridMaterialSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridMaterialSpec; } +// Forward declaration of `HybridRigidBodySpecSwift` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRigidBodySpecSwift; } +// Forward declaration of `HybridRigidBodySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRigidBodySpec; } +// Forward declaration of `HybridSurfaceSpecSwift` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSurfaceSpecSwift; } +// Forward declaration of `HybridSurfaceSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSurfaceSpec; } +// Forward declaration of `QualityLevel` to properly resolve imports. +namespace margelo::nitro::RNF { enum class QualityLevel; } + +// Include C++ defined types +#if __has_include("FrameInfo.hpp") + #include "FrameInfo.hpp" +#endif +#if __has_include("HybridEntitySpec.hpp") + #include "HybridEntitySpec.hpp" +#endif +#if __has_include("HybridEntitySpecSwift.hpp") + #include "HybridEntitySpecSwift.hpp" +#endif +#if __has_include("HybridFilamentInstanceSpec.hpp") + #include "HybridFilamentInstanceSpec.hpp" +#endif +#if __has_include("HybridFilamentInstanceSpecSwift.hpp") + #include "HybridFilamentInstanceSpecSwift.hpp" +#endif +#if __has_include("HybridMaterialSpec.hpp") + #include "HybridMaterialSpec.hpp" +#endif +#if __has_include("HybridMaterialSpecSwift.hpp") + #include "HybridMaterialSpecSwift.hpp" +#endif +#if __has_include("HybridRigidBodySpec.hpp") + #include "HybridRigidBodySpec.hpp" +#endif +#if __has_include("HybridRigidBodySpecSwift.hpp") + #include "HybridRigidBodySpecSwift.hpp" +#endif +#if __has_include("HybridSurfaceSpec.hpp") + #include "HybridSurfaceSpec.hpp" +#endif +#if __has_include("HybridSurfaceSpecSwift.hpp") + #include "HybridSurfaceSpecSwift.hpp" +#endif +#if __has_include("QualityLevel.hpp") + #include "QualityLevel.hpp" +#endif +#if __has_include() + #include +#endif +#if __has_include() + #include +#endif +#if __has_include() + #include +#endif +#if __has_include() + #include +#endif +#if __has_include() + #include +#endif +#if __has_include() + #include +#endif +#if __has_include() + #include +#endif +#if __has_include() + #include +#endif +#if __has_include() + #include +#endif + +/** + * Contains specialized versions of C++ templated types so they can be accessed from Swift, + * as well as helper functions to interact with those C++ types from Swift. + */ +namespace margelo::nitro::RNF::bridge::swift { + + /** + * Specialized version of `std::optional>`. + */ + using std__optional_std__shared_ptr_margelo__nitro__RNF__HybridSurfaceSpec__ = std::optional>; + inline std::optional> create_std__optional_std__shared_ptr_margelo__nitro__RNF__HybridSurfaceSpec__(const std::shared_ptr& value) { + return std::optional>(value); + } + + /** + * Specialized version of `std::function&)>`. + */ + using Func_void_std__shared_ptr_margelo__nitro__RNF__HybridSurfaceSpec_ = std::function& /* surface */)>; + /** + * Wrapper class for a `std::function& / * surface * /)>`, this can be used from Swift. + */ + class Func_void_std__shared_ptr_margelo__nitro__RNF__HybridSurfaceSpec__Wrapper { + public: + explicit Func_void_std__shared_ptr_margelo__nitro__RNF__HybridSurfaceSpec__Wrapper(const std::function& /* surface */)>& func): function(func) {} + explicit Func_void_std__shared_ptr_margelo__nitro__RNF__HybridSurfaceSpec__Wrapper(std::function& /* surface */)>&& func): function(std::move(func)) {} + + void call(std::shared_ptr surface) const { + function(HybridContext::getOrCreate(surface)); + } + + std::function& /* surface */)> function; + }; + inline Func_void_std__shared_ptr_margelo__nitro__RNF__HybridSurfaceSpec_ create_Func_void_std__shared_ptr_margelo__nitro__RNF__HybridSurfaceSpec_(void* closureHolder, void(*call)(void* /* closureHolder */, std::shared_ptr), void(*destroy)(void*)) { + std::shared_ptr sharedClosureHolder(closureHolder, destroy); + return Func_void_std__shared_ptr_margelo__nitro__RNF__HybridSurfaceSpec_([sharedClosureHolder, call](const std::shared_ptr& surface) -> void { + call(sharedClosureHolder.get(), std::dynamic_pointer_cast(surface)->getSwiftPart()); + }); + } + inline std::shared_ptr share_Func_void_std__shared_ptr_margelo__nitro__RNF__HybridSurfaceSpec_(const Func_void_std__shared_ptr_margelo__nitro__RNF__HybridSurfaceSpec_& value) { + return std::make_shared(value); + } + + /** + * Specialized version of `std::function`. + */ + using Func_void = std::function; + /** + * Wrapper class for a `std::function`, this can be used from Swift. + */ + class Func_void_Wrapper { + public: + explicit Func_void_Wrapper(const std::function& func): function(func) {} + explicit Func_void_Wrapper(std::function&& func): function(std::move(func)) {} + + void call() const { + function(); + } + + std::function function; + }; + inline Func_void create_Func_void(void* closureHolder, void(*call)(void* /* closureHolder */), void(*destroy)(void*)) { + std::shared_ptr sharedClosureHolder(closureHolder, destroy); + return Func_void([sharedClosureHolder, call]() -> void { + call(sharedClosureHolder.get()); + }); + } + inline std::shared_ptr share_Func_void(const Func_void& value) { + return std::make_shared(value); + } + + /** + * Specialized version of `std::tuple`. + */ + using std__tuple_double__double__double_ = std::tuple; + inline std::tuple create_std__tuple_double__double__double_(double arg0, double arg1, double arg2) { + return std::tuple { arg0, arg1, arg2 }; + } + + /** + * Specialized version of `std::tuple, std::tuple, std::tuple>`. + */ + using std__tuple_std__tuple_double__double__double___std__tuple_double__double__double___std__tuple_double__double__double__ = std::tuple, std::tuple, std::tuple>; + inline std::tuple, std::tuple, std::tuple> create_std__tuple_std__tuple_double__double__double___std__tuple_double__double__double___std__tuple_double__double__double__(const std::tuple& arg0, const std::tuple& arg1, const std::tuple& arg2) { + return std::tuple, std::tuple, std::tuple> { arg0, arg1, arg2 }; + } + + /** + * Specialized version of `std::function`. + */ + using Func_void_FrameInfo = std::function; + /** + * Wrapper class for a `std::function`, this can be used from Swift. + */ + class Func_void_FrameInfo_Wrapper { + public: + explicit Func_void_FrameInfo_Wrapper(const std::function& func): function(func) {} + explicit Func_void_FrameInfo_Wrapper(std::function&& func): function(std::move(func)) {} + + void call(FrameInfo frameInfo) const { + function(frameInfo); + } + + std::function function; + }; + inline Func_void_FrameInfo create_Func_void_FrameInfo(void* closureHolder, void(*call)(void* /* closureHolder */, FrameInfo), void(*destroy)(void*)) { + std::shared_ptr sharedClosureHolder(closureHolder, destroy); + return Func_void_FrameInfo([sharedClosureHolder, call](const FrameInfo& frameInfo) -> void { + call(sharedClosureHolder.get(), frameInfo); + }); + } + inline std::shared_ptr share_Func_void_FrameInfo(const Func_void_FrameInfo& value) { + return std::make_shared(value); + } + + /** + * Specialized version of `std::optional`. + */ + using std__optional_double_ = std::optional; + inline std::optional create_std__optional_double_(const double& value) { + return std::optional(value); + } + + /** + * Specialized version of `std::optional>`. + */ + using std__optional_std__tuple_double__double__double__ = std::optional>; + inline std::optional> create_std__optional_std__tuple_double__double__double__(const std::tuple& value) { + return std::optional>(value); + } + + /** + * Specialized version of `std::tuple`. + */ + using std__tuple_double_ = std::tuple; + inline std::tuple create_std__tuple_double_(double arg0) { + return std::tuple { arg0 }; + } + + /** + * Specialized version of `std::optional>`. + */ + using std__optional_std__tuple_double__ = std::optional>; + inline std::optional> create_std__optional_std__tuple_double__(const std::tuple& value) { + return std::optional>(value); + } + + /** + * Specialized version of `std::tuple`. + */ + using std__tuple_double__double_ = std::tuple; + inline std::tuple create_std__tuple_double__double_(double arg0, double arg1) { + return std::tuple { arg0, arg1 }; + } + + /** + * Specialized version of `std::optional>`. + */ + using std__optional_std__tuple_double__double__ = std::optional>; + inline std::optional> create_std__optional_std__tuple_double__double__(const std::tuple& value) { + return std::optional>(value); + } + + /** + * Specialized version of `std::optional`. + */ + using std__optional_bool_ = std::optional; + inline std::optional create_std__optional_bool_(const bool& value) { + return std::optional(value); + } + + /** + * Specialized version of `std::vector>`. + */ + using std__vector_std__shared_ptr_margelo__nitro__RNF__HybridEntitySpec__ = std::vector>; + inline std::vector> create_std__vector_std__shared_ptr_margelo__nitro__RNF__HybridEntitySpec__(size_t size) { + std::vector> vector; + vector.reserve(size); + return vector; + } + + /** + * Specialized version of `std::optional>`. + */ + using std__optional_std__shared_ptr_margelo__nitro__RNF__HybridEntitySpec__ = std::optional>; + inline std::optional> create_std__optional_std__shared_ptr_margelo__nitro__RNF__HybridEntitySpec__(const std::shared_ptr& value) { + return std::optional>(value); + } + + /** + * Specialized version of `std::vector>`. + */ + using std__vector_std__shared_ptr_margelo__nitro__RNF__HybridFilamentInstanceSpec__ = std::vector>; + inline std::vector> create_std__vector_std__shared_ptr_margelo__nitro__RNF__HybridFilamentInstanceSpec__(size_t size) { + std::vector> vector; + vector.reserve(size); + return vector; + } + + /** + * Specialized version of `PromiseHolder`. + */ + using PromiseHolder_void_ = PromiseHolder; + inline PromiseHolder create_PromiseHolder_void_() { + return PromiseHolder(); + } + + /** + * Specialized version of `PromiseHolder`. + */ + using PromiseHolder_std__string_ = PromiseHolder; + inline PromiseHolder create_PromiseHolder_std__string_() { + return PromiseHolder(); + } + + /** + * Specialized version of `std::function()>`. + */ + using Func_std__future_bool_ = std::function()>; + /** + * Wrapper class for a `std::function()>`, this can be used from Swift. + */ + class Func_std__future_bool__Wrapper { + public: + explicit Func_std__future_bool__Wrapper(const std::function()>& func): function(func) {} + explicit Func_std__future_bool__Wrapper(std::function()>&& func): function(std::move(func)) {} + + PromiseHolder call() const { + auto result = function(); + return []() -> PromiseHolder { throw std::runtime_error("Promise<..> cannot be converted to Swift yet!"); }(); + } + + std::function()> function; + }; + inline Func_std__future_bool_ create_Func_std__future_bool_(void* closureHolder, PromiseHolder(*call)(void* /* closureHolder */), void(*destroy)(void*)) { + std::shared_ptr sharedClosureHolder(closureHolder, destroy); + return Func_std__future_bool_([sharedClosureHolder, call]() -> std::future { + auto result = call(sharedClosureHolder.get()); + return result.getFuture(); + }); + } + inline std::shared_ptr share_Func_std__future_bool_(const Func_std__future_bool_& value) { + return std::make_shared(value); + } + + /** + * Specialized version of `PromiseHolder`. + */ + using PromiseHolder_bool_ = PromiseHolder; + inline PromiseHolder create_PromiseHolder_bool_() { + return PromiseHolder(); + } + + /** + * Specialized version of `std::vector>`. + */ + using std__vector_std__tuple_double__double__double__ = std::vector>; + inline std::vector> create_std__vector_std__tuple_double__double__double__(size_t size) { + std::vector> vector; + vector.reserve(size); + return vector; + } + + /** + * Specialized version of `std::tuple`. + */ + using std__tuple_double__double__double__double__double__double__double__double__double_ = std::tuple; + inline std::tuple create_std__tuple_double__double__double__double__double__double__double__double__double_(double arg0, double arg1, double arg2, double arg3, double arg4, double arg5, double arg6, double arg7, double arg8) { + return std::tuple { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 }; + } + + /** + * Specialized version of `std::tuple`. + */ + using std__tuple_double__double__double__double_ = std::tuple; + inline std::tuple create_std__tuple_double__double__double__double_(double arg0, double arg1, double arg2, double arg3) { + return std::tuple { arg0, arg1, arg2, arg3 }; + } + + /** + * Specialized version of `std::optional`. + */ + using std__optional_std__string_ = std::optional; + inline std::optional create_std__optional_std__string_(const std::string& value) { + return std::optional(value); + } + + /** + * Specialized version of `std::optional>`. + */ + using std__optional_std__shared_ptr_margelo__nitro__RNF__HybridMaterialSpec__ = std::optional>; + inline std::optional> create_std__optional_std__shared_ptr_margelo__nitro__RNF__HybridMaterialSpec__(const std::shared_ptr& value) { + return std::optional>(value); + } + + /** + * Specialized version of `std::vector`. + */ + using std__vector_double_ = std::vector; + inline std::vector create_std__vector_double_(size_t size) { + std::vector vector; + vector.reserve(size); + return vector; + } + + /** + * Specialized version of `std::optional`. + */ + using std__optional_QualityLevel_ = std::optional; + inline std::optional create_std__optional_QualityLevel_(const QualityLevel& value) { + return std::optional(value); + } + + /** + * Specialized version of `PromiseHolder>>`. + */ + using PromiseHolder_std__optional_std__shared_ptr_margelo__nitro__RNF__HybridEntitySpec___ = PromiseHolder>>; + inline PromiseHolder>> create_PromiseHolder_std__optional_std__shared_ptr_margelo__nitro__RNF__HybridEntitySpec___() { + return PromiseHolder>>(); + } + + /** + * Specialized version of `std::unordered_map`. + */ + using std__unordered_map_std__string__double_ = std::unordered_map; + inline std::unordered_map create_std__unordered_map_std__string__double_(size_t size) { + std::unordered_map map; + map.reserve(size); + return map; + } + inline std::vector get_std__unordered_map_std__string__double__keys(const std__unordered_map_std__string__double_& map) { + std::vector keys; + keys.reserve(map.size()); + for (const auto& entry : map) { + keys.push_back(entry.first); + } + return keys; + } + + /** + * Specialized version of `std::function&, const std::shared_ptr&)>`. + */ + using Func_void_std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec__std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec_ = std::function& /* thisBody */, const std::shared_ptr& /* collidedWith */)>; + /** + * Wrapper class for a `std::function& / * thisBody * /, const std::shared_ptr& / * collidedWith * /)>`, this can be used from Swift. + */ + class Func_void_std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec__std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec__Wrapper { + public: + explicit Func_void_std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec__std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec__Wrapper(const std::function& /* thisBody */, const std::shared_ptr& /* collidedWith */)>& func): function(func) {} + explicit Func_void_std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec__std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec__Wrapper(std::function& /* thisBody */, const std::shared_ptr& /* collidedWith */)>&& func): function(std::move(func)) {} + + void call(std::shared_ptr thisBody, std::shared_ptr collidedWith) const { + function(HybridContext::getOrCreate(thisBody), HybridContext::getOrCreate(collidedWith)); + } + + std::function& /* thisBody */, const std::shared_ptr& /* collidedWith */)> function; + }; + inline Func_void_std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec__std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec_ create_Func_void_std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec__std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec_(void* closureHolder, void(*call)(void* /* closureHolder */, std::shared_ptr, std::shared_ptr), void(*destroy)(void*)) { + std::shared_ptr sharedClosureHolder(closureHolder, destroy); + return Func_void_std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec__std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec_([sharedClosureHolder, call](const std::shared_ptr& thisBody, const std::shared_ptr& collidedWith) -> void { + call(sharedClosureHolder.get(), std::dynamic_pointer_cast(thisBody)->getSwiftPart(), std::dynamic_pointer_cast(collidedWith)->getSwiftPart()); + }); + } + inline std::shared_ptr share_Func_void_std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec__std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec_(const Func_void_std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec__std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec_& value) { + return std::make_shared(value); + } + + /** + * Specialized version of `std::optional& / * thisBody * /, const std::shared_ptr& / * collidedWith * /)>>`. + */ + using std__optional_std__function_void_const_std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec______thisBody_____const_std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec______collidedWith______ = std::optional& /* thisBody */, const std::shared_ptr& /* collidedWith */)>>; + inline std::optional& /* thisBody */, const std::shared_ptr& /* collidedWith */)>> create_std__optional_std__function_void_const_std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec______thisBody_____const_std__shared_ptr_margelo__nitro__RNF__HybridRigidBodySpec______collidedWith______(const std::function& /* thisBody */, const std::shared_ptr& /* collidedWith */)>& value) { + return std::optional& /* thisBody */, const std::shared_ptr& /* collidedWith */)>>(value); + } + +} // namespace margelo::nitro::RNF::bridge::swift diff --git a/package/nitrogen/generated/ios/RNF-Swift-Cxx-Umbrella.hpp b/package/nitrogen/generated/ios/RNF-Swift-Cxx-Umbrella.hpp new file mode 100644 index 00000000..494d39f1 --- /dev/null +++ b/package/nitrogen/generated/ios/RNF-Swift-Cxx-Umbrella.hpp @@ -0,0 +1,265 @@ +/// +/// RNF-Swift-Cxx-Umbrella.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +// Forward declarations of C++ defined types +// Forward declaration of `ActivationState` to properly resolve imports. +namespace margelo::nitro::RNF { enum class ActivationState; } +// Forward declaration of `AmbientOcclusionOptions` to properly resolve imports. +namespace margelo::nitro::RNF { struct AmbientOcclusionOptions; } +// Forward declaration of `AntiAliasingType` to properly resolve imports. +namespace margelo::nitro::RNF { enum class AntiAliasingType; } +// Forward declaration of `CullingMode` to properly resolve imports. +namespace margelo::nitro::RNF { enum class CullingMode; } +// Forward declaration of `DitheringType` to properly resolve imports. +namespace margelo::nitro::RNF { enum class DitheringType; } +// Forward declaration of `DynamicResolutionOptions` to properly resolve imports. +namespace margelo::nitro::RNF { struct DynamicResolutionOptions; } +// Forward declaration of `FrameInfo` to properly resolve imports. +namespace margelo::nitro::RNF { struct FrameInfo; } +// Forward declaration of `FrameRateOptions` to properly resolve imports. +namespace margelo::nitro::RNF { struct FrameRateOptions; } +// Forward declaration of `HybridAABBSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridAABBSpec; } +// Forward declaration of `HybridAnimatorSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridAnimatorSpec; } +// Forward declaration of `HybridBaseBoxSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBaseBoxSpec; } +// Forward declaration of `HybridBaseShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBaseShapeSpec; } +// Forward declaration of `HybridBoxShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBoxShapeSpec; } +// Forward declaration of `HybridBoxSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBoxSpec; } +// Forward declaration of `HybridBulletAPISpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBulletAPISpec; } +// Forward declaration of `HybridCameraManipulatorSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridCameraManipulatorSpec; } +// Forward declaration of `HybridChoreographerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridChoreographerSpec; } +// Forward declaration of `HybridCylinderShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridCylinderShapeSpec; } +// Forward declaration of `HybridDiscreteDynamicWorldSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridDiscreteDynamicWorldSpec; } +// Forward declaration of `HybridEngineSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridEngineSpec; } +// Forward declaration of `HybridEntitySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridEntitySpec; } +// Forward declaration of `HybridFilamentAssetSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentAssetSpec; } +// Forward declaration of `HybridFilamentBufferSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentBufferSpec; } +// Forward declaration of `HybridFilamentInstanceSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentInstanceSpec; } +// Forward declaration of `HybridLightManagerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridLightManagerSpec; } +// Forward declaration of `HybridListenerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridListenerSpec; } +// Forward declaration of `HybridMat4Spec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridMat4Spec; } +// Forward declaration of `HybridMaterialInstanceSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridMaterialInstanceSpec; } +// Forward declaration of `HybridMaterialSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridMaterialSpec; } +// Forward declaration of `HybridNameComponentManagerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridNameComponentManagerSpec; } +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } +// Forward declaration of `HybridRNFCameraSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRNFCameraSpec; } +// Forward declaration of `HybridRenderableManagerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRenderableManagerSpec; } +// Forward declaration of `HybridRendererSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRendererSpec; } +// Forward declaration of `HybridRigidBodySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRigidBodySpec; } +// Forward declaration of `HybridSceneSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSceneSpec; } +// Forward declaration of `HybridSphereShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSphereShapeSpec; } +// Forward declaration of `HybridStaticPlaneShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridStaticPlaneShapeSpec; } +// Forward declaration of `HybridSurfaceProviderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSurfaceProviderSpec; } +// Forward declaration of `HybridSurfaceSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSurfaceSpec; } +// Forward declaration of `HybridSwapChainSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSwapChainSpec; } +// Forward declaration of `HybridTFilamentRecorderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridTFilamentRecorderSpec; } +// Forward declaration of `HybridTransformManagerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridTransformManagerSpec; } +// Forward declaration of `HybridViewSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridViewSpec; } +// Forward declaration of `LightType` to properly resolve imports. +namespace margelo::nitro::RNF { enum class LightType; } +// Forward declaration of `OrbitCameraManipulatorConfig` to properly resolve imports. +namespace margelo::nitro::RNF { struct OrbitCameraManipulatorConfig; } +// Forward declaration of `QualityLevel` to properly resolve imports. +namespace margelo::nitro::RNF { enum class QualityLevel; } +// Forward declaration of `TextureFlags` to properly resolve imports. +namespace margelo::nitro::RNF { enum class TextureFlags; } +// Forward declaration of `TextureInfo` to properly resolve imports. +namespace margelo::nitro::RNF { struct TextureInfo; } +// Forward declaration of `TransparencyMode` to properly resolve imports. +namespace margelo::nitro::RNF { enum class TransparencyMode; } +// Forward declaration of `Viewport` to properly resolve imports. +namespace margelo::nitro::RNF { struct Viewport; } + +// Include C++ defined types +#include "ActivationState.hpp" +#include "AmbientOcclusionOptions.hpp" +#include "AntiAliasingType.hpp" +#include "CullingMode.hpp" +#include "DitheringType.hpp" +#include "DynamicResolutionOptions.hpp" +#include "FrameInfo.hpp" +#include "FrameRateOptions.hpp" +#include "HybridAABBSpec.hpp" +#include "HybridAnimatorSpec.hpp" +#include "HybridBaseBoxSpec.hpp" +#include "HybridBaseShapeSpec.hpp" +#include "HybridBoxShapeSpec.hpp" +#include "HybridBoxSpec.hpp" +#include "HybridBulletAPISpec.hpp" +#include "HybridCameraManipulatorSpec.hpp" +#include "HybridChoreographerSpec.hpp" +#include "HybridCylinderShapeSpec.hpp" +#include "HybridDiscreteDynamicWorldSpec.hpp" +#include "HybridEngineSpec.hpp" +#include "HybridEntitySpec.hpp" +#include "HybridFilamentAssetSpec.hpp" +#include "HybridFilamentBufferSpec.hpp" +#include "HybridFilamentInstanceSpec.hpp" +#include "HybridLightManagerSpec.hpp" +#include "HybridListenerSpec.hpp" +#include "HybridMat4Spec.hpp" +#include "HybridMaterialInstanceSpec.hpp" +#include "HybridMaterialSpec.hpp" +#include "HybridNameComponentManagerSpec.hpp" +#include "HybridPointerHolderSpec.hpp" +#include "HybridRNFCameraSpec.hpp" +#include "HybridRenderableManagerSpec.hpp" +#include "HybridRendererSpec.hpp" +#include "HybridRigidBodySpec.hpp" +#include "HybridSceneSpec.hpp" +#include "HybridSphereShapeSpec.hpp" +#include "HybridStaticPlaneShapeSpec.hpp" +#include "HybridSurfaceProviderSpec.hpp" +#include "HybridSurfaceSpec.hpp" +#include "HybridSwapChainSpec.hpp" +#include "HybridTFilamentRecorderSpec.hpp" +#include "HybridTransformManagerSpec.hpp" +#include "HybridViewSpec.hpp" +#include "LightType.hpp" +#include "OrbitCameraManipulatorConfig.hpp" +#include "QualityLevel.hpp" +#include "TextureFlags.hpp" +#include "TextureInfo.hpp" +#include "TransparencyMode.hpp" +#include "Viewport.hpp" +#include +#include +#include +#include +#include +#include +#include +#include + +// C++ helpers for Swift +#include "RNF-Swift-Cxx-Bridge.hpp" + +// Common C++ types used in Swift +#include +#include +#include +#include + +// Forward declarations of Swift defined types +// Forward declaration of `HybridAABBSpecCxx` to properly resolve imports. +namespace RNF { class HybridAABBSpecCxx; } +// Forward declaration of `HybridAnimatorSpecCxx` to properly resolve imports. +namespace RNF { class HybridAnimatorSpecCxx; } +// Forward declaration of `HybridBaseBoxSpecCxx` to properly resolve imports. +namespace RNF { class HybridBaseBoxSpecCxx; } +// Forward declaration of `HybridBaseShapeSpecCxx` to properly resolve imports. +namespace RNF { class HybridBaseShapeSpecCxx; } +// Forward declaration of `HybridBoxShapeSpecCxx` to properly resolve imports. +namespace RNF { class HybridBoxShapeSpecCxx; } +// Forward declaration of `HybridBoxSpecCxx` to properly resolve imports. +namespace RNF { class HybridBoxSpecCxx; } +// Forward declaration of `HybridBulletAPISpecCxx` to properly resolve imports. +namespace RNF { class HybridBulletAPISpecCxx; } +// Forward declaration of `HybridCameraManipulatorSpecCxx` to properly resolve imports. +namespace RNF { class HybridCameraManipulatorSpecCxx; } +// Forward declaration of `HybridChoreographerSpecCxx` to properly resolve imports. +namespace RNF { class HybridChoreographerSpecCxx; } +// Forward declaration of `HybridCylinderShapeSpecCxx` to properly resolve imports. +namespace RNF { class HybridCylinderShapeSpecCxx; } +// Forward declaration of `HybridDiscreteDynamicWorldSpecCxx` to properly resolve imports. +namespace RNF { class HybridDiscreteDynamicWorldSpecCxx; } +// Forward declaration of `HybridEngineSpecCxx` to properly resolve imports. +namespace RNF { class HybridEngineSpecCxx; } +// Forward declaration of `HybridEntitySpecCxx` to properly resolve imports. +namespace RNF { class HybridEntitySpecCxx; } +// Forward declaration of `HybridFilamentAssetSpecCxx` to properly resolve imports. +namespace RNF { class HybridFilamentAssetSpecCxx; } +// Forward declaration of `HybridFilamentBufferSpecCxx` to properly resolve imports. +namespace RNF { class HybridFilamentBufferSpecCxx; } +// Forward declaration of `HybridFilamentInstanceSpecCxx` to properly resolve imports. +namespace RNF { class HybridFilamentInstanceSpecCxx; } +// Forward declaration of `HybridLightManagerSpecCxx` to properly resolve imports. +namespace RNF { class HybridLightManagerSpecCxx; } +// Forward declaration of `HybridListenerSpecCxx` to properly resolve imports. +namespace RNF { class HybridListenerSpecCxx; } +// Forward declaration of `HybridMat4SpecCxx` to properly resolve imports. +namespace RNF { class HybridMat4SpecCxx; } +// Forward declaration of `HybridMaterialInstanceSpecCxx` to properly resolve imports. +namespace RNF { class HybridMaterialInstanceSpecCxx; } +// Forward declaration of `HybridMaterialSpecCxx` to properly resolve imports. +namespace RNF { class HybridMaterialSpecCxx; } +// Forward declaration of `HybridNameComponentManagerSpecCxx` to properly resolve imports. +namespace RNF { class HybridNameComponentManagerSpecCxx; } +// Forward declaration of `HybridPointerHolderSpecCxx` to properly resolve imports. +namespace RNF { class HybridPointerHolderSpecCxx; } +// Forward declaration of `HybridRNFCameraSpecCxx` to properly resolve imports. +namespace RNF { class HybridRNFCameraSpecCxx; } +// Forward declaration of `HybridRenderableManagerSpecCxx` to properly resolve imports. +namespace RNF { class HybridRenderableManagerSpecCxx; } +// Forward declaration of `HybridRendererSpecCxx` to properly resolve imports. +namespace RNF { class HybridRendererSpecCxx; } +// Forward declaration of `HybridRigidBodySpecCxx` to properly resolve imports. +namespace RNF { class HybridRigidBodySpecCxx; } +// Forward declaration of `HybridSceneSpecCxx` to properly resolve imports. +namespace RNF { class HybridSceneSpecCxx; } +// Forward declaration of `HybridSphereShapeSpecCxx` to properly resolve imports. +namespace RNF { class HybridSphereShapeSpecCxx; } +// Forward declaration of `HybridStaticPlaneShapeSpecCxx` to properly resolve imports. +namespace RNF { class HybridStaticPlaneShapeSpecCxx; } +// Forward declaration of `HybridSurfaceProviderSpecCxx` to properly resolve imports. +namespace RNF { class HybridSurfaceProviderSpecCxx; } +// Forward declaration of `HybridSurfaceSpecCxx` to properly resolve imports. +namespace RNF { class HybridSurfaceSpecCxx; } +// Forward declaration of `HybridSwapChainSpecCxx` to properly resolve imports. +namespace RNF { class HybridSwapChainSpecCxx; } +// Forward declaration of `HybridTFilamentRecorderSpecCxx` to properly resolve imports. +namespace RNF { class HybridTFilamentRecorderSpecCxx; } +// Forward declaration of `HybridTransformManagerSpecCxx` to properly resolve imports. +namespace RNF { class HybridTransformManagerSpecCxx; } +// Forward declaration of `HybridViewSpecCxx` to properly resolve imports. +namespace RNF { class HybridViewSpecCxx; } + +// Include Swift defined types +#if __has_include("RNF-Swift.h") +// This header is generated by Xcode/Swift on every app build. +// If it cannot be found, make sure the Swift module's name (= podspec name) is actually "RNF". +#include "RNF-Swift.h" +#else +#error RNF's autogenerated Swift header cannot be found! Make sure the Swift module's name (= podspec name) is actually "RNF", and try building the app first. +#endif diff --git a/package/nitrogen/generated/shared/c++/ActivationState.hpp b/package/nitrogen/generated/shared/c++/ActivationState.hpp new file mode 100644 index 00000000..b0fbfb3c --- /dev/null +++ b/package/nitrogen/generated/shared/c++/ActivationState.hpp @@ -0,0 +1,90 @@ +/// +/// ActivationState.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +namespace margelo::nitro::RNF { + + /** + * An enum which can be represented as a JavaScript union (ActivationState). + */ + enum class ActivationState { + ACTIVE_STATE SWIFT_NAME(activeState) = 0, + ISLAND_SLEEPING SWIFT_NAME(islandSleeping) = 1, + WANT_DEACTIVATION SWIFT_NAME(wantDeactivation) = 2, + DISABLE_DEACTIVATION SWIFT_NAME(disableDeactivation) = 3, + DISABLE_SIMULATION SWIFT_NAME(disableSimulation) = 4, + } CLOSED_ENUM; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ ActivationState <> JS ActivationState (union) + template <> + struct JSIConverter { + static inline ActivationState fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + std::string unionValue = JSIConverter::fromJSI(runtime, arg); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("active_state"): return ActivationState::ACTIVE_STATE; + case hashString("island_sleeping"): return ActivationState::ISLAND_SLEEPING; + case hashString("want_deactivation"): return ActivationState::WANT_DEACTIVATION; + case hashString("disable_deactivation"): return ActivationState::DISABLE_DEACTIVATION; + case hashString("disable_simulation"): return ActivationState::DISABLE_SIMULATION; + default: [[unlikely]] + throw std::runtime_error("Cannot convert \"" + unionValue + "\" to enum ActivationState - invalid value!"); + } + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, ActivationState arg) { + switch (arg) { + case ActivationState::ACTIVE_STATE: return JSIConverter::toJSI(runtime, "active_state"); + case ActivationState::ISLAND_SLEEPING: return JSIConverter::toJSI(runtime, "island_sleeping"); + case ActivationState::WANT_DEACTIVATION: return JSIConverter::toJSI(runtime, "want_deactivation"); + case ActivationState::DISABLE_DEACTIVATION: return JSIConverter::toJSI(runtime, "disable_deactivation"); + case ActivationState::DISABLE_SIMULATION: return JSIConverter::toJSI(runtime, "disable_simulation"); + default: [[unlikely]] + throw std::runtime_error("Cannot convert ActivationState to JS - invalid value: " + + std::to_string(static_cast(arg)) + "!"); + } + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isString()) { + return false; + } + std::string unionValue = JSIConverter::fromJSI(runtime, value); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("active_state"): + case hashString("island_sleeping"): + case hashString("want_deactivation"): + case hashString("disable_deactivation"): + case hashString("disable_simulation"): + return true; + default: + return false; + } + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/AmbientOcclusionOptions.hpp b/package/nitrogen/generated/shared/c++/AmbientOcclusionOptions.hpp new file mode 100644 index 00000000..e5de080b --- /dev/null +++ b/package/nitrogen/generated/shared/c++/AmbientOcclusionOptions.hpp @@ -0,0 +1,114 @@ +/// +/// AmbientOcclusionOptions.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `QualityLevel` to properly resolve imports. +namespace margelo::nitro::RNF { enum class QualityLevel; } + +#include +#include "QualityLevel.hpp" + +namespace margelo::nitro::RNF { + + /** + * A struct which can be represented as a JavaScript object (AmbientOcclusionOptions). + */ + struct AmbientOcclusionOptions { + public: + std::optional radius SWIFT_PRIVATE; + std::optional power SWIFT_PRIVATE; + std::optional bias SWIFT_PRIVATE; + std::optional resolution SWIFT_PRIVATE; + std::optional intensity SWIFT_PRIVATE; + std::optional bilateralThreshold SWIFT_PRIVATE; + std::optional quality SWIFT_PRIVATE; + std::optional lowPassFilter SWIFT_PRIVATE; + std::optional upsampling SWIFT_PRIVATE; + std::optional enabled SWIFT_PRIVATE; + std::optional bentNormals SWIFT_PRIVATE; + std::optional minHorizonAngleRad SWIFT_PRIVATE; + + public: + explicit AmbientOcclusionOptions(std::optional radius, std::optional power, std::optional bias, std::optional resolution, std::optional intensity, std::optional bilateralThreshold, std::optional quality, std::optional lowPassFilter, std::optional upsampling, std::optional enabled, std::optional bentNormals, std::optional minHorizonAngleRad): radius(radius), power(power), bias(bias), resolution(resolution), intensity(intensity), bilateralThreshold(bilateralThreshold), quality(quality), lowPassFilter(lowPassFilter), upsampling(upsampling), enabled(enabled), bentNormals(bentNormals), minHorizonAngleRad(minHorizonAngleRad) {} + }; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ AmbientOcclusionOptions <> JS AmbientOcclusionOptions (object) + template <> + struct JSIConverter { + static inline AmbientOcclusionOptions fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + jsi::Object obj = arg.asObject(runtime); + return AmbientOcclusionOptions( + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "radius")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "power")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "bias")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "resolution")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "intensity")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "bilateralThreshold")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "quality")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "lowPassFilter")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "upsampling")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "enabled")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "bentNormals")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "minHorizonAngleRad")) + ); + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, const AmbientOcclusionOptions& arg) { + jsi::Object obj(runtime); + obj.setProperty(runtime, "radius", JSIConverter>::toJSI(runtime, arg.radius)); + obj.setProperty(runtime, "power", JSIConverter>::toJSI(runtime, arg.power)); + obj.setProperty(runtime, "bias", JSIConverter>::toJSI(runtime, arg.bias)); + obj.setProperty(runtime, "resolution", JSIConverter>::toJSI(runtime, arg.resolution)); + obj.setProperty(runtime, "intensity", JSIConverter>::toJSI(runtime, arg.intensity)); + obj.setProperty(runtime, "bilateralThreshold", JSIConverter>::toJSI(runtime, arg.bilateralThreshold)); + obj.setProperty(runtime, "quality", JSIConverter>::toJSI(runtime, arg.quality)); + obj.setProperty(runtime, "lowPassFilter", JSIConverter>::toJSI(runtime, arg.lowPassFilter)); + obj.setProperty(runtime, "upsampling", JSIConverter>::toJSI(runtime, arg.upsampling)); + obj.setProperty(runtime, "enabled", JSIConverter>::toJSI(runtime, arg.enabled)); + obj.setProperty(runtime, "bentNormals", JSIConverter>::toJSI(runtime, arg.bentNormals)); + obj.setProperty(runtime, "minHorizonAngleRad", JSIConverter>::toJSI(runtime, arg.minHorizonAngleRad)); + return obj; + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isObject()) { + return false; + } + jsi::Object obj = value.getObject(runtime); + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "radius"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "power"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "bias"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "resolution"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "intensity"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "bilateralThreshold"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "quality"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "lowPassFilter"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "upsampling"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "enabled"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "bentNormals"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "minHorizonAngleRad"))) return false; + return true; + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/AntiAliasingType.hpp b/package/nitrogen/generated/shared/c++/AntiAliasingType.hpp new file mode 100644 index 00000000..68690f71 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/AntiAliasingType.hpp @@ -0,0 +1,78 @@ +/// +/// AntiAliasingType.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +namespace margelo::nitro::RNF { + + /** + * An enum which can be represented as a JavaScript union (AntiAliasingType). + */ + enum class AntiAliasingType { + NONE SWIFT_NAME(none) = 0, + FXAA SWIFT_NAME(fxaa) = 1, + } CLOSED_ENUM; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ AntiAliasingType <> JS AntiAliasingType (union) + template <> + struct JSIConverter { + static inline AntiAliasingType fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + std::string unionValue = JSIConverter::fromJSI(runtime, arg); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("none"): return AntiAliasingType::NONE; + case hashString("FXAA"): return AntiAliasingType::FXAA; + default: [[unlikely]] + throw std::runtime_error("Cannot convert \"" + unionValue + "\" to enum AntiAliasingType - invalid value!"); + } + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, AntiAliasingType arg) { + switch (arg) { + case AntiAliasingType::NONE: return JSIConverter::toJSI(runtime, "none"); + case AntiAliasingType::FXAA: return JSIConverter::toJSI(runtime, "FXAA"); + default: [[unlikely]] + throw std::runtime_error("Cannot convert AntiAliasingType to JS - invalid value: " + + std::to_string(static_cast(arg)) + "!"); + } + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isString()) { + return false; + } + std::string unionValue = JSIConverter::fromJSI(runtime, value); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("none"): + case hashString("FXAA"): + return true; + default: + return false; + } + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/CullingMode.hpp b/package/nitrogen/generated/shared/c++/CullingMode.hpp new file mode 100644 index 00000000..8da20b80 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/CullingMode.hpp @@ -0,0 +1,86 @@ +/// +/// CullingMode.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +namespace margelo::nitro::RNF { + + /** + * An enum which can be represented as a JavaScript union (CullingMode). + */ + enum class CullingMode { + NONE SWIFT_NAME(none) = 0, + BACK SWIFT_NAME(back) = 1, + FRONT SWIFT_NAME(front) = 2, + FRONTANDBACK SWIFT_NAME(frontandback) = 3, + } CLOSED_ENUM; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ CullingMode <> JS CullingMode (union) + template <> + struct JSIConverter { + static inline CullingMode fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + std::string unionValue = JSIConverter::fromJSI(runtime, arg); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("none"): return CullingMode::NONE; + case hashString("back"): return CullingMode::BACK; + case hashString("front"): return CullingMode::FRONT; + case hashString("frontAndBack"): return CullingMode::FRONTANDBACK; + default: [[unlikely]] + throw std::runtime_error("Cannot convert \"" + unionValue + "\" to enum CullingMode - invalid value!"); + } + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, CullingMode arg) { + switch (arg) { + case CullingMode::NONE: return JSIConverter::toJSI(runtime, "none"); + case CullingMode::BACK: return JSIConverter::toJSI(runtime, "back"); + case CullingMode::FRONT: return JSIConverter::toJSI(runtime, "front"); + case CullingMode::FRONTANDBACK: return JSIConverter::toJSI(runtime, "frontAndBack"); + default: [[unlikely]] + throw std::runtime_error("Cannot convert CullingMode to JS - invalid value: " + + std::to_string(static_cast(arg)) + "!"); + } + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isString()) { + return false; + } + std::string unionValue = JSIConverter::fromJSI(runtime, value); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("none"): + case hashString("back"): + case hashString("front"): + case hashString("frontAndBack"): + return true; + default: + return false; + } + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/DitheringType.hpp b/package/nitrogen/generated/shared/c++/DitheringType.hpp new file mode 100644 index 00000000..fdaa399d --- /dev/null +++ b/package/nitrogen/generated/shared/c++/DitheringType.hpp @@ -0,0 +1,78 @@ +/// +/// DitheringType.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +namespace margelo::nitro::RNF { + + /** + * An enum which can be represented as a JavaScript union (DitheringType). + */ + enum class DitheringType { + NONE SWIFT_NAME(none) = 0, + TEMPORAL SWIFT_NAME(temporal) = 1, + } CLOSED_ENUM; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ DitheringType <> JS DitheringType (union) + template <> + struct JSIConverter { + static inline DitheringType fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + std::string unionValue = JSIConverter::fromJSI(runtime, arg); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("none"): return DitheringType::NONE; + case hashString("temporal"): return DitheringType::TEMPORAL; + default: [[unlikely]] + throw std::runtime_error("Cannot convert \"" + unionValue + "\" to enum DitheringType - invalid value!"); + } + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, DitheringType arg) { + switch (arg) { + case DitheringType::NONE: return JSIConverter::toJSI(runtime, "none"); + case DitheringType::TEMPORAL: return JSIConverter::toJSI(runtime, "temporal"); + default: [[unlikely]] + throw std::runtime_error("Cannot convert DitheringType to JS - invalid value: " + + std::to_string(static_cast(arg)) + "!"); + } + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isString()) { + return false; + } + std::string unionValue = JSIConverter::fromJSI(runtime, value); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("none"): + case hashString("temporal"): + return true; + default: + return false; + } + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/DynamicResolutionOptions.hpp b/package/nitrogen/generated/shared/c++/DynamicResolutionOptions.hpp new file mode 100644 index 00000000..d4a0fcc7 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/DynamicResolutionOptions.hpp @@ -0,0 +1,91 @@ +/// +/// DynamicResolutionOptions.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `QualityLevel` to properly resolve imports. +namespace margelo::nitro::RNF { enum class QualityLevel; } + +#include +#include +#include "QualityLevel.hpp" + +namespace margelo::nitro::RNF { + + /** + * A struct which can be represented as a JavaScript object (DynamicResolutionOptions). + */ + struct DynamicResolutionOptions { + public: + std::optional enabled SWIFT_PRIVATE; + std::optional homogeneousScaling SWIFT_PRIVATE; + std::optional> minScale SWIFT_PRIVATE; + std::optional> maxScale SWIFT_PRIVATE; + std::optional sharpness SWIFT_PRIVATE; + std::optional quality SWIFT_PRIVATE; + + public: + explicit DynamicResolutionOptions(std::optional enabled, std::optional homogeneousScaling, std::optional> minScale, std::optional> maxScale, std::optional sharpness, std::optional quality): enabled(enabled), homogeneousScaling(homogeneousScaling), minScale(minScale), maxScale(maxScale), sharpness(sharpness), quality(quality) {} + }; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ DynamicResolutionOptions <> JS DynamicResolutionOptions (object) + template <> + struct JSIConverter { + static inline DynamicResolutionOptions fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + jsi::Object obj = arg.asObject(runtime); + return DynamicResolutionOptions( + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "enabled")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "homogeneousScaling")), + JSIConverter>>::fromJSI(runtime, obj.getProperty(runtime, "minScale")), + JSIConverter>>::fromJSI(runtime, obj.getProperty(runtime, "maxScale")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "sharpness")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "quality")) + ); + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, const DynamicResolutionOptions& arg) { + jsi::Object obj(runtime); + obj.setProperty(runtime, "enabled", JSIConverter>::toJSI(runtime, arg.enabled)); + obj.setProperty(runtime, "homogeneousScaling", JSIConverter>::toJSI(runtime, arg.homogeneousScaling)); + obj.setProperty(runtime, "minScale", JSIConverter>>::toJSI(runtime, arg.minScale)); + obj.setProperty(runtime, "maxScale", JSIConverter>>::toJSI(runtime, arg.maxScale)); + obj.setProperty(runtime, "sharpness", JSIConverter>::toJSI(runtime, arg.sharpness)); + obj.setProperty(runtime, "quality", JSIConverter>::toJSI(runtime, arg.quality)); + return obj; + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isObject()) { + return false; + } + jsi::Object obj = value.getObject(runtime); + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "enabled"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "homogeneousScaling"))) return false; + if (!JSIConverter>>::canConvert(runtime, obj.getProperty(runtime, "minScale"))) return false; + if (!JSIConverter>>::canConvert(runtime, obj.getProperty(runtime, "maxScale"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "sharpness"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "quality"))) return false; + return true; + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/FilamentBuffer.hpp b/package/nitrogen/generated/shared/c++/FilamentBuffer.hpp new file mode 100644 index 00000000..bb1a363b --- /dev/null +++ b/package/nitrogen/generated/shared/c++/FilamentBuffer.hpp @@ -0,0 +1,68 @@ +/// +/// FilamentBuffer.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + + + + + +namespace margelo::nitro::RNF { + + /** + * A struct which can be represented as a JavaScript object (FilamentBuffer). + */ + struct FilamentBuffer { + public: + + + public: + explicit FilamentBuffer(): {} + }; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ FilamentBuffer <> JS FilamentBuffer (object) + template <> + struct JSIConverter { + static inline FilamentBuffer fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + jsi::Object obj = arg.asObject(runtime); + return FilamentBuffer( + + ); + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, const FilamentBuffer& arg) { + jsi::Object obj(runtime); + + return obj; + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isObject()) { + return false; + } + jsi::Object obj = value.getObject(runtime); + + return true; + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/FrameInfo.hpp b/package/nitrogen/generated/shared/c++/FrameInfo.hpp new file mode 100644 index 00000000..192a6a60 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/FrameInfo.hpp @@ -0,0 +1,80 @@ +/// +/// FrameInfo.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + + + + + +namespace margelo::nitro::RNF { + + /** + * A struct which can be represented as a JavaScript object (FrameInfo). + */ + struct FrameInfo { + public: + double timestamp SWIFT_PRIVATE; + double startTime SWIFT_PRIVATE; + double passedSeconds SWIFT_PRIVATE; + double timeSinceLastFrame SWIFT_PRIVATE; + + public: + explicit FrameInfo(double timestamp, double startTime, double passedSeconds, double timeSinceLastFrame): timestamp(timestamp), startTime(startTime), passedSeconds(passedSeconds), timeSinceLastFrame(timeSinceLastFrame) {} + }; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ FrameInfo <> JS FrameInfo (object) + template <> + struct JSIConverter { + static inline FrameInfo fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + jsi::Object obj = arg.asObject(runtime); + return FrameInfo( + JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "timestamp")), + JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "startTime")), + JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "passedSeconds")), + JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "timeSinceLastFrame")) + ); + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, const FrameInfo& arg) { + jsi::Object obj(runtime); + obj.setProperty(runtime, "timestamp", JSIConverter::toJSI(runtime, arg.timestamp)); + obj.setProperty(runtime, "startTime", JSIConverter::toJSI(runtime, arg.startTime)); + obj.setProperty(runtime, "passedSeconds", JSIConverter::toJSI(runtime, arg.passedSeconds)); + obj.setProperty(runtime, "timeSinceLastFrame", JSIConverter::toJSI(runtime, arg.timeSinceLastFrame)); + return obj; + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isObject()) { + return false; + } + jsi::Object obj = value.getObject(runtime); + if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "timestamp"))) return false; + if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "startTime"))) return false; + if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "passedSeconds"))) return false; + if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "timeSinceLastFrame"))) return false; + return true; + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/FrameRateOptions.hpp b/package/nitrogen/generated/shared/c++/FrameRateOptions.hpp new file mode 100644 index 00000000..f289d5fd --- /dev/null +++ b/package/nitrogen/generated/shared/c++/FrameRateOptions.hpp @@ -0,0 +1,80 @@ +/// +/// FrameRateOptions.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + + + +#include + +namespace margelo::nitro::RNF { + + /** + * A struct which can be represented as a JavaScript object (FrameRateOptions). + */ + struct FrameRateOptions { + public: + std::optional headRoomRatio SWIFT_PRIVATE; + std::optional scaleRate SWIFT_PRIVATE; + std::optional history SWIFT_PRIVATE; + std::optional interval SWIFT_PRIVATE; + + public: + explicit FrameRateOptions(std::optional headRoomRatio, std::optional scaleRate, std::optional history, std::optional interval): headRoomRatio(headRoomRatio), scaleRate(scaleRate), history(history), interval(interval) {} + }; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ FrameRateOptions <> JS FrameRateOptions (object) + template <> + struct JSIConverter { + static inline FrameRateOptions fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + jsi::Object obj = arg.asObject(runtime); + return FrameRateOptions( + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "headRoomRatio")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "scaleRate")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "history")), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, "interval")) + ); + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, const FrameRateOptions& arg) { + jsi::Object obj(runtime); + obj.setProperty(runtime, "headRoomRatio", JSIConverter>::toJSI(runtime, arg.headRoomRatio)); + obj.setProperty(runtime, "scaleRate", JSIConverter>::toJSI(runtime, arg.scaleRate)); + obj.setProperty(runtime, "history", JSIConverter>::toJSI(runtime, arg.history)); + obj.setProperty(runtime, "interval", JSIConverter>::toJSI(runtime, arg.interval)); + return obj; + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isObject()) { + return false; + } + jsi::Object obj = value.getObject(runtime); + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "headRoomRatio"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "scaleRate"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "history"))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, "interval"))) return false; + return true; + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/HybridAABBSpec.cpp b/package/nitrogen/generated/shared/c++/HybridAABBSpec.cpp new file mode 100644 index 00000000..2e234b9a --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridAABBSpec.cpp @@ -0,0 +1,23 @@ +/// +/// HybridAABBSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridAABBSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridAABBSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridBaseBoxSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("_type", &HybridAABBSpec::get_type); + prototype.registerHybridSetter("_type", &HybridAABBSpec::set_type); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridAABBSpec.hpp b/package/nitrogen/generated/shared/c++/HybridAABBSpec.hpp new file mode 100644 index 00000000..79ccd15c --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridAABBSpec.hpp @@ -0,0 +1,65 @@ +/// +/// HybridAABBSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridBaseBoxSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBaseBoxSpec; } + +#include +#include "HybridBaseBoxSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `AABB` + * Inherit this class to create instances of `HybridAABBSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridAABB: public HybridAABBSpec { + * public: + * HybridAABB(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridAABBSpec: public virtual HybridObject, public virtual HybridBaseBoxSpec { + public: + // Constructor + explicit HybridAABBSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridAABBSpec() { } + + public: + // Properties + virtual double get_type() = 0; + virtual void set_type(double _type) = 0; + + public: + // Methods + + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "AABB"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridAnimatorSpec.cpp b/package/nitrogen/generated/shared/c++/HybridAnimatorSpec.cpp new file mode 100644 index 00000000..d885cfe9 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridAnimatorSpec.cpp @@ -0,0 +1,29 @@ +/// +/// HybridAnimatorSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridAnimatorSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridAnimatorSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("applyAnimation", &HybridAnimatorSpec::applyAnimation); + prototype.registerHybridMethod("applyCrossFade", &HybridAnimatorSpec::applyCrossFade); + prototype.registerHybridMethod("updateBoneMatrices", &HybridAnimatorSpec::updateBoneMatrices); + prototype.registerHybridMethod("addToSyncList", &HybridAnimatorSpec::addToSyncList); + prototype.registerHybridMethod("removeFromSyncList", &HybridAnimatorSpec::removeFromSyncList); + prototype.registerHybridMethod("resetBoneMatrices", &HybridAnimatorSpec::resetBoneMatrices); + prototype.registerHybridMethod("getAnimationCount", &HybridAnimatorSpec::getAnimationCount); + prototype.registerHybridMethod("getAnimationDuration", &HybridAnimatorSpec::getAnimationDuration); + prototype.registerHybridMethod("getAnimationName", &HybridAnimatorSpec::getAnimationName); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridAnimatorSpec.hpp b/package/nitrogen/generated/shared/c++/HybridAnimatorSpec.hpp new file mode 100644 index 00000000..4d4a13da --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridAnimatorSpec.hpp @@ -0,0 +1,73 @@ +/// +/// HybridAnimatorSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridFilamentInstanceSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentInstanceSpec; } + +#include +#include "HybridFilamentInstanceSpec.hpp" +#include + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `Animator` + * Inherit this class to create instances of `HybridAnimatorSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridAnimator: public HybridAnimatorSpec { + * public: + * HybridAnimator(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridAnimatorSpec: public virtual HybridObject { + public: + // Constructor + explicit HybridAnimatorSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridAnimatorSpec() { } + + public: + // Properties + + + public: + // Methods + virtual void applyAnimation(double animIndex, double time) = 0; + virtual void applyCrossFade(double previousAnimIndex, double previousAnimTime, double alpha) = 0; + virtual void updateBoneMatrices() = 0; + virtual double addToSyncList(const std::shared_ptr& instance) = 0; + virtual void removeFromSyncList(double instanceId) = 0; + virtual void resetBoneMatrices() = 0; + virtual double getAnimationCount() = 0; + virtual double getAnimationDuration(double animIndex) = 0; + virtual std::string getAnimationName(double animIndex) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "Animator"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridBaseBoxSpec.cpp b/package/nitrogen/generated/shared/c++/HybridBaseBoxSpec.cpp new file mode 100644 index 00000000..964ca528 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridBaseBoxSpec.cpp @@ -0,0 +1,24 @@ +/// +/// HybridBaseBoxSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridBaseBoxSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridBaseBoxSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("center", &HybridBaseBoxSpec::getCenter); + prototype.registerHybridGetter("halfExtent", &HybridBaseBoxSpec::getHalfExtent); + prototype.registerHybridGetter("min", &HybridBaseBoxSpec::getMin); + prototype.registerHybridGetter("max", &HybridBaseBoxSpec::getMax); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridBaseBoxSpec.hpp b/package/nitrogen/generated/shared/c++/HybridBaseBoxSpec.hpp new file mode 100644 index 00000000..adb6600a --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridBaseBoxSpec.hpp @@ -0,0 +1,65 @@ +/// +/// HybridBaseBoxSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + + + +#include + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `BaseBox` + * Inherit this class to create instances of `HybridBaseBoxSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridBaseBox: public HybridBaseBoxSpec { + * public: + * HybridBaseBox(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridBaseBoxSpec: public virtual HybridObject { + public: + // Constructor + explicit HybridBaseBoxSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridBaseBoxSpec() { } + + public: + // Properties + virtual std::tuple getCenter() = 0; + virtual std::tuple getHalfExtent() = 0; + virtual std::tuple getMin() = 0; + virtual std::tuple getMax() = 0; + + public: + // Methods + + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "BaseBox"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridBaseShapeSpec.cpp b/package/nitrogen/generated/shared/c++/HybridBaseShapeSpec.cpp new file mode 100644 index 00000000..9fb1dc60 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridBaseShapeSpec.cpp @@ -0,0 +1,24 @@ +/// +/// HybridBaseShapeSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridBaseShapeSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridBaseShapeSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("localScaling", &HybridBaseShapeSpec::getLocalScaling); + prototype.registerHybridSetter("localScaling", &HybridBaseShapeSpec::setLocalScaling); + prototype.registerHybridGetter("margin", &HybridBaseShapeSpec::getMargin); + prototype.registerHybridSetter("margin", &HybridBaseShapeSpec::setMargin); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridBaseShapeSpec.hpp b/package/nitrogen/generated/shared/c++/HybridBaseShapeSpec.hpp new file mode 100644 index 00000000..936c8dd6 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridBaseShapeSpec.hpp @@ -0,0 +1,65 @@ +/// +/// HybridBaseShapeSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + + + +#include + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `BaseShape` + * Inherit this class to create instances of `HybridBaseShapeSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridBaseShape: public HybridBaseShapeSpec { + * public: + * HybridBaseShape(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridBaseShapeSpec: public virtual HybridObject { + public: + // Constructor + explicit HybridBaseShapeSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridBaseShapeSpec() { } + + public: + // Properties + virtual std::tuple getLocalScaling() = 0; + virtual void setLocalScaling(const std::tuple& localScaling) = 0; + virtual double getMargin() = 0; + virtual void setMargin(double margin) = 0; + + public: + // Methods + + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "BaseShape"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridBoxShapeSpec.cpp b/package/nitrogen/generated/shared/c++/HybridBoxShapeSpec.cpp new file mode 100644 index 00000000..6c5eaab9 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridBoxShapeSpec.cpp @@ -0,0 +1,22 @@ +/// +/// HybridBoxShapeSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridBoxShapeSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridBoxShapeSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridBaseShapeSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridBoxShapeSpec.hpp b/package/nitrogen/generated/shared/c++/HybridBoxShapeSpec.hpp new file mode 100644 index 00000000..085d6ccd --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridBoxShapeSpec.hpp @@ -0,0 +1,64 @@ +/// +/// HybridBoxShapeSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridBaseShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBaseShapeSpec; } + +#include +#include "HybridBaseShapeSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `BoxShape` + * Inherit this class to create instances of `HybridBoxShapeSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridBoxShape: public HybridBoxShapeSpec { + * public: + * HybridBoxShape(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridBoxShapeSpec: public virtual HybridObject, public virtual HybridBaseShapeSpec { + public: + // Constructor + explicit HybridBoxShapeSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridBoxShapeSpec() { } + + public: + // Properties + + + public: + // Methods + + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "BoxShape"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridBoxSpec.cpp b/package/nitrogen/generated/shared/c++/HybridBoxSpec.cpp new file mode 100644 index 00000000..90ec914c --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridBoxSpec.cpp @@ -0,0 +1,23 @@ +/// +/// HybridBoxSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridBoxSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridBoxSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridBaseBoxSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("_type", &HybridBoxSpec::get_type); + prototype.registerHybridSetter("_type", &HybridBoxSpec::set_type); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridBoxSpec.hpp b/package/nitrogen/generated/shared/c++/HybridBoxSpec.hpp new file mode 100644 index 00000000..169cc96a --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridBoxSpec.hpp @@ -0,0 +1,65 @@ +/// +/// HybridBoxSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridBaseBoxSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBaseBoxSpec; } + +#include +#include "HybridBaseBoxSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `Box` + * Inherit this class to create instances of `HybridBoxSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridBox: public HybridBoxSpec { + * public: + * HybridBox(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridBoxSpec: public virtual HybridObject, public virtual HybridBaseBoxSpec { + public: + // Constructor + explicit HybridBoxSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridBoxSpec() { } + + public: + // Properties + virtual double get_type() = 0; + virtual void set_type(double _type) = 0; + + public: + // Methods + + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "Box"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridBulletAPISpec.cpp b/package/nitrogen/generated/shared/c++/HybridBulletAPISpec.cpp new file mode 100644 index 00000000..40530805 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridBulletAPISpec.cpp @@ -0,0 +1,29 @@ +/// +/// HybridBulletAPISpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridBulletAPISpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridBulletAPISpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("createDiscreteDynamicWorld", &HybridBulletAPISpec::createDiscreteDynamicWorld); + prototype.registerHybridMethod("createBoxShape", &HybridBulletAPISpec::createBoxShape); + prototype.registerHybridMethod("createCylinderShape", &HybridBulletAPISpec::createCylinderShape); + prototype.registerHybridMethod("createCylinderShapeX", &HybridBulletAPISpec::createCylinderShapeX); + prototype.registerHybridMethod("createCylinderShapeZ", &HybridBulletAPISpec::createCylinderShapeZ); + prototype.registerHybridMethod("createStaticPlaneShape", &HybridBulletAPISpec::createStaticPlaneShape); + prototype.registerHybridMethod("createSphereShape", &HybridBulletAPISpec::createSphereShape); + prototype.registerHybridMethod("createRigidBody", &HybridBulletAPISpec::createRigidBody); + prototype.registerHybridMethod("createRigidBodyFromTransform", &HybridBulletAPISpec::createRigidBodyFromTransform); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridBulletAPISpec.hpp b/package/nitrogen/generated/shared/c++/HybridBulletAPISpec.hpp new file mode 100644 index 00000000..b4251d41 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridBulletAPISpec.hpp @@ -0,0 +1,96 @@ +/// +/// HybridBulletAPISpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridDiscreteDynamicWorldSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridDiscreteDynamicWorldSpec; } +// Forward declaration of `HybridBoxShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBoxShapeSpec; } +// Forward declaration of `HybridCylinderShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridCylinderShapeSpec; } +// Forward declaration of `HybridStaticPlaneShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridStaticPlaneShapeSpec; } +// Forward declaration of `HybridSphereShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSphereShapeSpec; } +// Forward declaration of `HybridRigidBodySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRigidBodySpec; } +// Forward declaration of `HybridBaseShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBaseShapeSpec; } +// Forward declaration of `HybridMat4Spec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridMat4Spec; } + +#include +#include "HybridDiscreteDynamicWorldSpec.hpp" +#include "HybridBoxShapeSpec.hpp" +#include "HybridCylinderShapeSpec.hpp" +#include "HybridStaticPlaneShapeSpec.hpp" +#include "HybridSphereShapeSpec.hpp" +#include "HybridRigidBodySpec.hpp" +#include "HybridBaseShapeSpec.hpp" +#include +#include +#include +#include "HybridMat4Spec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `BulletAPI` + * Inherit this class to create instances of `HybridBulletAPISpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridBulletAPI: public HybridBulletAPISpec { + * public: + * HybridBulletAPI(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridBulletAPISpec: public virtual HybridObject { + public: + // Constructor + explicit HybridBulletAPISpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridBulletAPISpec() { } + + public: + // Properties + + + public: + // Methods + virtual std::shared_ptr createDiscreteDynamicWorld(double gravityX, double gravityY, double gravityZ) = 0; + virtual std::shared_ptr createBoxShape(double halfX, double halfY, double halfZ) = 0; + virtual std::shared_ptr createCylinderShape(double halfX, double halfY, double halfZ) = 0; + virtual std::shared_ptr createCylinderShapeX(double halfX, double halfY, double halfZ) = 0; + virtual std::shared_ptr createCylinderShapeZ(double halfX, double halfY, double halfZ) = 0; + virtual std::shared_ptr createStaticPlaneShape(double normalX, double normalY, double normalZ, double constant) = 0; + virtual std::shared_ptr createSphereShape(double radius) = 0; + virtual std::shared_ptr createRigidBody(double mass, double x, double y, double z, const std::shared_ptr& shape, const std::string& id, const std::optional& /* thisBody */, const std::shared_ptr& /* collidedWith */)>>& collisionCallback) = 0; + virtual std::shared_ptr createRigidBodyFromTransform(double mass, const std::shared_ptr& transform, const std::shared_ptr& shape, const std::string& id, const std::optional& /* thisBody */, const std::shared_ptr& /* collidedWith */)>>& collisionCallback) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "BulletAPI"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridCameraManipulatorSpec.cpp b/package/nitrogen/generated/shared/c++/HybridCameraManipulatorSpec.cpp new file mode 100644 index 00000000..15eb521f --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridCameraManipulatorSpec.cpp @@ -0,0 +1,27 @@ +/// +/// HybridCameraManipulatorSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridCameraManipulatorSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridCameraManipulatorSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("scroll", &HybridCameraManipulatorSpec::scroll); + prototype.registerHybridMethod("update", &HybridCameraManipulatorSpec::update); + prototype.registerHybridMethod("grabBegin", &HybridCameraManipulatorSpec::grabBegin); + prototype.registerHybridMethod("grabUpdate", &HybridCameraManipulatorSpec::grabUpdate); + prototype.registerHybridMethod("grabEnd", &HybridCameraManipulatorSpec::grabEnd); + prototype.registerHybridMethod("getLookAt", &HybridCameraManipulatorSpec::getLookAt); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridCameraManipulatorSpec.hpp b/package/nitrogen/generated/shared/c++/HybridCameraManipulatorSpec.hpp new file mode 100644 index 00000000..1dcedd0f --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridCameraManipulatorSpec.hpp @@ -0,0 +1,70 @@ +/// +/// HybridCameraManipulatorSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `CameraManipulator` + * Inherit this class to create instances of `HybridCameraManipulatorSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridCameraManipulator: public HybridCameraManipulatorSpec { + * public: + * HybridCameraManipulator(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridCameraManipulatorSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridCameraManipulatorSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridCameraManipulatorSpec() { } + + public: + // Properties + + + public: + // Methods + virtual void scroll(double x, double y, double scrolldelta) = 0; + virtual void update(double deltaTime) = 0; + virtual void grabBegin(double x, double y, bool strafe) = 0; + virtual void grabUpdate(double x, double y) = 0; + virtual void grabEnd() = 0; + virtual std::tuple, std::tuple, std::tuple> getLookAt() = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "CameraManipulator"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridChoreographerSpec.cpp b/package/nitrogen/generated/shared/c++/HybridChoreographerSpec.cpp new file mode 100644 index 00000000..f0a6c615 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridChoreographerSpec.cpp @@ -0,0 +1,24 @@ +/// +/// HybridChoreographerSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridChoreographerSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridChoreographerSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("start", &HybridChoreographerSpec::start); + prototype.registerHybridMethod("stop", &HybridChoreographerSpec::stop); + prototype.registerHybridMethod("addFrameCallbackListener", &HybridChoreographerSpec::addFrameCallbackListener); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridChoreographerSpec.hpp b/package/nitrogen/generated/shared/c++/HybridChoreographerSpec.hpp new file mode 100644 index 00000000..47226208 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridChoreographerSpec.hpp @@ -0,0 +1,74 @@ +/// +/// HybridChoreographerSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridListenerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridListenerSpec; } +// Forward declaration of `FrameInfo` to properly resolve imports. +namespace margelo::nitro::RNF { struct FrameInfo; } +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include "HybridListenerSpec.hpp" +#include +#include "FrameInfo.hpp" +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `Choreographer` + * Inherit this class to create instances of `HybridChoreographerSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridChoreographer: public HybridChoreographerSpec { + * public: + * HybridChoreographer(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridChoreographerSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridChoreographerSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridChoreographerSpec() { } + + public: + // Properties + + + public: + // Methods + virtual void start() = 0; + virtual void stop() = 0; + virtual std::shared_ptr addFrameCallbackListener(const std::function& callback) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "Choreographer"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridCylinderShapeSpec.cpp b/package/nitrogen/generated/shared/c++/HybridCylinderShapeSpec.cpp new file mode 100644 index 00000000..9dccaaed --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridCylinderShapeSpec.cpp @@ -0,0 +1,22 @@ +/// +/// HybridCylinderShapeSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridCylinderShapeSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridCylinderShapeSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridBaseShapeSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridCylinderShapeSpec.hpp b/package/nitrogen/generated/shared/c++/HybridCylinderShapeSpec.hpp new file mode 100644 index 00000000..99831434 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridCylinderShapeSpec.hpp @@ -0,0 +1,64 @@ +/// +/// HybridCylinderShapeSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridBaseShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBaseShapeSpec; } + +#include +#include "HybridBaseShapeSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `CylinderShape` + * Inherit this class to create instances of `HybridCylinderShapeSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridCylinderShape: public HybridCylinderShapeSpec { + * public: + * HybridCylinderShape(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridCylinderShapeSpec: public virtual HybridObject, public virtual HybridBaseShapeSpec { + public: + // Constructor + explicit HybridCylinderShapeSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridCylinderShapeSpec() { } + + public: + // Properties + + + public: + // Methods + + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "CylinderShape"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridDiscreteDynamicWorldSpec.cpp b/package/nitrogen/generated/shared/c++/HybridDiscreteDynamicWorldSpec.cpp new file mode 100644 index 00000000..501c4597 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridDiscreteDynamicWorldSpec.cpp @@ -0,0 +1,23 @@ +/// +/// HybridDiscreteDynamicWorldSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridDiscreteDynamicWorldSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridDiscreteDynamicWorldSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("addRigidBody", &HybridDiscreteDynamicWorldSpec::addRigidBody); + prototype.registerHybridMethod("removeRigidBody", &HybridDiscreteDynamicWorldSpec::removeRigidBody); + prototype.registerHybridMethod("stepSimulation", &HybridDiscreteDynamicWorldSpec::stepSimulation); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridDiscreteDynamicWorldSpec.hpp b/package/nitrogen/generated/shared/c++/HybridDiscreteDynamicWorldSpec.hpp new file mode 100644 index 00000000..92e0dba9 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridDiscreteDynamicWorldSpec.hpp @@ -0,0 +1,66 @@ +/// +/// HybridDiscreteDynamicWorldSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridRigidBodySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRigidBodySpec; } + +#include +#include "HybridRigidBodySpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `DiscreteDynamicWorld` + * Inherit this class to create instances of `HybridDiscreteDynamicWorldSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridDiscreteDynamicWorld: public HybridDiscreteDynamicWorldSpec { + * public: + * HybridDiscreteDynamicWorld(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridDiscreteDynamicWorldSpec: public virtual HybridObject { + public: + // Constructor + explicit HybridDiscreteDynamicWorldSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridDiscreteDynamicWorldSpec() { } + + public: + // Properties + + + public: + // Methods + virtual void addRigidBody(const std::shared_ptr& rigidBody) = 0; + virtual void removeRigidBody(const std::shared_ptr& rigidBody) = 0; + virtual void stepSimulation(double timeStep, double maxSubSteps, double fixedTimeStep) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "DiscreteDynamicWorld"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridEngineSpec.cpp b/package/nitrogen/generated/shared/c++/HybridEngineSpec.cpp new file mode 100644 index 00000000..27e61306 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridEngineSpec.cpp @@ -0,0 +1,43 @@ +/// +/// HybridEngineSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridEngineSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridEngineSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("setSurfaceProvider", &HybridEngineSpec::setSurfaceProvider); + prototype.registerHybridMethod("createSwapChainForSurface", &HybridEngineSpec::createSwapChainForSurface); + prototype.registerHybridMethod("createSwapChainForRecorder", &HybridEngineSpec::createSwapChainForRecorder); + prototype.registerHybridMethod("setSwapChain", &HybridEngineSpec::setSwapChain); + prototype.registerHybridMethod("loadInstancedAsset", &HybridEngineSpec::loadInstancedAsset); + prototype.registerHybridMethod("setIndirectLight", &HybridEngineSpec::setIndirectLight); + prototype.registerHybridMethod("loadAsset", &HybridEngineSpec::loadAsset); + prototype.registerHybridMethod("createRenderer", &HybridEngineSpec::createRenderer); + prototype.registerHybridMethod("getScene", &HybridEngineSpec::getScene); + prototype.registerHybridMethod("getCamera", &HybridEngineSpec::getCamera); + prototype.registerHybridMethod("getView", &HybridEngineSpec::getView); + prototype.registerHybridMethod("createOrbitCameraManipulator", &HybridEngineSpec::createOrbitCameraManipulator); + prototype.registerHybridMethod("createNameComponentManager", &HybridEngineSpec::createNameComponentManager); + prototype.registerHybridMethod("createTransformManager", &HybridEngineSpec::createTransformManager); + prototype.registerHybridMethod("createRenderableManager", &HybridEngineSpec::createRenderableManager); + prototype.registerHybridMethod("createLightManager", &HybridEngineSpec::createLightManager); + prototype.registerHybridMethod("createMaterial", &HybridEngineSpec::createMaterial); + prototype.registerHybridMethod("createAndSetSkyboxByColor", &HybridEngineSpec::createAndSetSkyboxByColor); + prototype.registerHybridMethod("createAndSetSkyboxByTexture", &HybridEngineSpec::createAndSetSkyboxByTexture); + prototype.registerHybridMethod("clearSkybox", &HybridEngineSpec::clearSkybox); + prototype.registerHybridMethod("setAutomaticInstancingEnabled", &HybridEngineSpec::setAutomaticInstancingEnabled); + prototype.registerHybridMethod("flushAndWait", &HybridEngineSpec::flushAndWait); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridEngineSpec.hpp b/package/nitrogen/generated/shared/c++/HybridEngineSpec.hpp new file mode 100644 index 00000000..c84c9b9e --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridEngineSpec.hpp @@ -0,0 +1,136 @@ +/// +/// HybridEngineSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridSurfaceProviderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSurfaceProviderSpec; } +// Forward declaration of `HybridSwapChainSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSwapChainSpec; } +// Forward declaration of `HybridTFilamentRecorderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridTFilamentRecorderSpec; } +// Forward declaration of `HybridFilamentAssetSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentAssetSpec; } +// Forward declaration of `HybridFilamentBufferSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentBufferSpec; } +// Forward declaration of `HybridRendererSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRendererSpec; } +// Forward declaration of `HybridSceneSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSceneSpec; } +// Forward declaration of `HybridRNFCameraSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRNFCameraSpec; } +// Forward declaration of `HybridViewSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridViewSpec; } +// Forward declaration of `HybridCameraManipulatorSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridCameraManipulatorSpec; } +// Forward declaration of `OrbitCameraManipulatorConfig` to properly resolve imports. +namespace margelo::nitro::RNF { struct OrbitCameraManipulatorConfig; } +// Forward declaration of `HybridNameComponentManagerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridNameComponentManagerSpec; } +// Forward declaration of `HybridTransformManagerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridTransformManagerSpec; } +// Forward declaration of `HybridRenderableManagerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRenderableManagerSpec; } +// Forward declaration of `HybridLightManagerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridLightManagerSpec; } +// Forward declaration of `HybridMaterialSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridMaterialSpec; } +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include "HybridSurfaceProviderSpec.hpp" +#include "HybridSwapChainSpec.hpp" +#include "HybridTFilamentRecorderSpec.hpp" +#include "HybridFilamentAssetSpec.hpp" +#include "HybridFilamentBufferSpec.hpp" +#include +#include "HybridRendererSpec.hpp" +#include "HybridSceneSpec.hpp" +#include "HybridRNFCameraSpec.hpp" +#include "HybridViewSpec.hpp" +#include "HybridCameraManipulatorSpec.hpp" +#include "OrbitCameraManipulatorConfig.hpp" +#include "HybridNameComponentManagerSpec.hpp" +#include "HybridTransformManagerSpec.hpp" +#include "HybridRenderableManagerSpec.hpp" +#include "HybridLightManagerSpec.hpp" +#include "HybridMaterialSpec.hpp" +#include +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `Engine` + * Inherit this class to create instances of `HybridEngineSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridEngine: public HybridEngineSpec { + * public: + * HybridEngine(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridEngineSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridEngineSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridEngineSpec() { } + + public: + // Properties + + + public: + // Methods + virtual void setSurfaceProvider(const std::shared_ptr& surfaceProvider) = 0; + virtual std::shared_ptr createSwapChainForSurface(const std::shared_ptr& surface, bool enableTransparentRendering) = 0; + virtual std::shared_ptr createSwapChainForRecorder(const std::shared_ptr& recorder) = 0; + virtual void setSwapChain(const std::shared_ptr& swapChain) = 0; + virtual std::shared_ptr loadInstancedAsset(const std::shared_ptr& buffer, double instanceCount) = 0; + virtual void setIndirectLight(const std::shared_ptr& iblBuffer, std::optional intensity, std::optional irradianceBands) = 0; + virtual std::shared_ptr loadAsset(const std::shared_ptr& buffer) = 0; + virtual std::shared_ptr createRenderer() = 0; + virtual std::shared_ptr getScene() = 0; + virtual std::shared_ptr getCamera() = 0; + virtual std::shared_ptr getView() = 0; + virtual std::shared_ptr createOrbitCameraManipulator(const OrbitCameraManipulatorConfig& config) = 0; + virtual std::shared_ptr createNameComponentManager() = 0; + virtual std::shared_ptr createTransformManager() = 0; + virtual std::shared_ptr createRenderableManager() = 0; + virtual std::shared_ptr createLightManager() = 0; + virtual std::shared_ptr createMaterial(const std::shared_ptr& matcBuffer) = 0; + virtual void createAndSetSkyboxByColor(const std::string& colorInHex, std::optional showSun, std::optional envIntensity) = 0; + virtual void createAndSetSkyboxByTexture(const std::shared_ptr& buffer, std::optional showSun, std::optional envIntensity) = 0; + virtual void clearSkybox() = 0; + virtual void setAutomaticInstancingEnabled(bool enabled) = 0; + virtual void flushAndWait() = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "Engine"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridEntitySpec.cpp b/package/nitrogen/generated/shared/c++/HybridEntitySpec.cpp new file mode 100644 index 00000000..7b5bb095 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridEntitySpec.cpp @@ -0,0 +1,22 @@ +/// +/// HybridEntitySpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridEntitySpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridEntitySpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("id", &HybridEntitySpec::getId); + prototype.registerHybridSetter("id", &HybridEntitySpec::setId); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridEntitySpec.hpp b/package/nitrogen/generated/shared/c++/HybridEntitySpec.hpp new file mode 100644 index 00000000..d0546bcf --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridEntitySpec.hpp @@ -0,0 +1,63 @@ +/// +/// HybridEntitySpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + + + + + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `Entity` + * Inherit this class to create instances of `HybridEntitySpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridEntity: public HybridEntitySpec { + * public: + * HybridEntity(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridEntitySpec: public virtual HybridObject { + public: + // Constructor + explicit HybridEntitySpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridEntitySpec() { } + + public: + // Properties + virtual double getId() = 0; + virtual void setId(double id) = 0; + + public: + // Methods + + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "Entity"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridFilamentAssetSpec.cpp b/package/nitrogen/generated/shared/c++/HybridFilamentAssetSpec.cpp new file mode 100644 index 00000000..db78c91a --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridFilamentAssetSpec.cpp @@ -0,0 +1,32 @@ +/// +/// HybridFilamentAssetSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridFilamentAssetSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridFilamentAssetSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("renderableEntityCount", &HybridFilamentAssetSpec::getRenderableEntityCount); + prototype.registerHybridGetter("entityCount", &HybridFilamentAssetSpec::getEntityCount); + prototype.registerHybridMethod("getRenderableEntities", &HybridFilamentAssetSpec::getRenderableEntities); + prototype.registerHybridMethod("getFirstEntityByName", &HybridFilamentAssetSpec::getFirstEntityByName); + prototype.registerHybridMethod("releaseSourceData", &HybridFilamentAssetSpec::releaseSourceData); + prototype.registerHybridMethod("getInstance", &HybridFilamentAssetSpec::getInstance); + prototype.registerHybridMethod("getAssetInstances", &HybridFilamentAssetSpec::getAssetInstances); + prototype.registerHybridMethod("getRoot", &HybridFilamentAssetSpec::getRoot); + prototype.registerHybridMethod("createAnimator", &HybridFilamentAssetSpec::createAnimator); + prototype.registerHybridMethod("getEntities", &HybridFilamentAssetSpec::getEntities); + prototype.registerHybridMethod("getBoundingBox", &HybridFilamentAssetSpec::getBoundingBox); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridFilamentAssetSpec.hpp b/package/nitrogen/generated/shared/c++/HybridFilamentAssetSpec.hpp new file mode 100644 index 00000000..6fb99147 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridFilamentAssetSpec.hpp @@ -0,0 +1,92 @@ +/// +/// HybridFilamentAssetSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridEntitySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridEntitySpec; } +// Forward declaration of `HybridFilamentInstanceSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentInstanceSpec; } +// Forward declaration of `HybridAnimatorSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridAnimatorSpec; } +// Forward declaration of `HybridNameComponentManagerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridNameComponentManagerSpec; } +// Forward declaration of `HybridAABBSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridAABBSpec; } +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include +#include "HybridEntitySpec.hpp" +#include +#include +#include "HybridFilamentInstanceSpec.hpp" +#include "HybridAnimatorSpec.hpp" +#include "HybridNameComponentManagerSpec.hpp" +#include "HybridAABBSpec.hpp" +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `FilamentAsset` + * Inherit this class to create instances of `HybridFilamentAssetSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridFilamentAsset: public HybridFilamentAssetSpec { + * public: + * HybridFilamentAsset(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridFilamentAssetSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridFilamentAssetSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridFilamentAssetSpec() { } + + public: + // Properties + virtual double getRenderableEntityCount() = 0; + virtual double getEntityCount() = 0; + + public: + // Methods + virtual std::vector> getRenderableEntities() = 0; + virtual std::optional> getFirstEntityByName(const std::string& name) = 0; + virtual void releaseSourceData() = 0; + virtual std::shared_ptr getInstance() = 0; + virtual std::vector> getAssetInstances() = 0; + virtual std::shared_ptr getRoot() = 0; + virtual std::shared_ptr createAnimator(const std::shared_ptr& nameComponentManager) = 0; + virtual std::vector> getEntities() = 0; + virtual std::shared_ptr getBoundingBox() = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "FilamentAsset"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridFilamentBufferSpec.cpp b/package/nitrogen/generated/shared/c++/HybridFilamentBufferSpec.cpp new file mode 100644 index 00000000..f27abf16 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridFilamentBufferSpec.cpp @@ -0,0 +1,22 @@ +/// +/// HybridFilamentBufferSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridFilamentBufferSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridFilamentBufferSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridFilamentBufferSpec.hpp b/package/nitrogen/generated/shared/c++/HybridFilamentBufferSpec.hpp new file mode 100644 index 00000000..1f941eb2 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridFilamentBufferSpec.hpp @@ -0,0 +1,64 @@ +/// +/// HybridFilamentBufferSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `FilamentBuffer` + * Inherit this class to create instances of `HybridFilamentBufferSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridFilamentBuffer: public HybridFilamentBufferSpec { + * public: + * HybridFilamentBuffer(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridFilamentBufferSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridFilamentBufferSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridFilamentBufferSpec() { } + + public: + // Properties + + + public: + // Methods + + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "FilamentBuffer"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridFilamentInstanceSpec.cpp b/package/nitrogen/generated/shared/c++/HybridFilamentInstanceSpec.cpp new file mode 100644 index 00000000..0a70ca1e --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridFilamentInstanceSpec.cpp @@ -0,0 +1,25 @@ +/// +/// HybridFilamentInstanceSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridFilamentInstanceSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridFilamentInstanceSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("entityCount", &HybridFilamentInstanceSpec::getEntityCount); + prototype.registerHybridMethod("getRoot", &HybridFilamentInstanceSpec::getRoot); + prototype.registerHybridMethod("createAnimator", &HybridFilamentInstanceSpec::createAnimator); + prototype.registerHybridMethod("getEntities", &HybridFilamentInstanceSpec::getEntities); + prototype.registerHybridMethod("getBoundingBox", &HybridFilamentInstanceSpec::getBoundingBox); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridFilamentInstanceSpec.hpp b/package/nitrogen/generated/shared/c++/HybridFilamentInstanceSpec.hpp new file mode 100644 index 00000000..bd3b112d --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridFilamentInstanceSpec.hpp @@ -0,0 +1,77 @@ +/// +/// HybridFilamentInstanceSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridEntitySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridEntitySpec; } +// Forward declaration of `HybridAnimatorSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridAnimatorSpec; } +// Forward declaration of `HybridNameComponentManagerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridNameComponentManagerSpec; } +// Forward declaration of `HybridAABBSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridAABBSpec; } + +#include +#include "HybridEntitySpec.hpp" +#include "HybridAnimatorSpec.hpp" +#include "HybridNameComponentManagerSpec.hpp" +#include +#include "HybridAABBSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `FilamentInstance` + * Inherit this class to create instances of `HybridFilamentInstanceSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridFilamentInstance: public HybridFilamentInstanceSpec { + * public: + * HybridFilamentInstance(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridFilamentInstanceSpec: public virtual HybridObject { + public: + // Constructor + explicit HybridFilamentInstanceSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridFilamentInstanceSpec() { } + + public: + // Properties + virtual double getEntityCount() = 0; + + public: + // Methods + virtual std::shared_ptr getRoot() = 0; + virtual std::shared_ptr createAnimator(const std::shared_ptr& nameComponentManager) = 0; + virtual std::vector> getEntities() = 0; + virtual std::shared_ptr getBoundingBox() = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "FilamentInstance"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridLightManagerSpec.cpp b/package/nitrogen/generated/shared/c++/HybridLightManagerSpec.cpp new file mode 100644 index 00000000..787f7e68 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridLightManagerSpec.cpp @@ -0,0 +1,35 @@ +/// +/// HybridLightManagerSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridLightManagerSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridLightManagerSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("createLightEntity", &HybridLightManagerSpec::createLightEntity); + prototype.registerHybridMethod("destroy", &HybridLightManagerSpec::destroy); + prototype.registerHybridMethod("setPosition", &HybridLightManagerSpec::setPosition); + prototype.registerHybridMethod("getPosition", &HybridLightManagerSpec::getPosition); + prototype.registerHybridMethod("setDirection", &HybridLightManagerSpec::setDirection); + prototype.registerHybridMethod("getDirection", &HybridLightManagerSpec::getDirection); + prototype.registerHybridMethod("setColor", &HybridLightManagerSpec::setColor); + prototype.registerHybridMethod("getColor", &HybridLightManagerSpec::getColor); + prototype.registerHybridMethod("setIntensity", &HybridLightManagerSpec::setIntensity); + prototype.registerHybridMethod("getIntensity", &HybridLightManagerSpec::getIntensity); + prototype.registerHybridMethod("setFalloff", &HybridLightManagerSpec::setFalloff); + prototype.registerHybridMethod("getFalloff", &HybridLightManagerSpec::getFalloff); + prototype.registerHybridMethod("setSpotLightCone", &HybridLightManagerSpec::setSpotLightCone); + prototype.registerHybridMethod("getSpotLightCone", &HybridLightManagerSpec::getSpotLightCone); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridLightManagerSpec.hpp b/package/nitrogen/generated/shared/c++/HybridLightManagerSpec.hpp new file mode 100644 index 00000000..fb4ac8f5 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridLightManagerSpec.hpp @@ -0,0 +1,87 @@ +/// +/// HybridLightManagerSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridEntitySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridEntitySpec; } +// Forward declaration of `LightType` to properly resolve imports. +namespace margelo::nitro::RNF { enum class LightType; } +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include "HybridEntitySpec.hpp" +#include "LightType.hpp" +#include +#include +#include +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `LightManager` + * Inherit this class to create instances of `HybridLightManagerSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridLightManager: public HybridLightManagerSpec { + * public: + * HybridLightManager(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridLightManagerSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridLightManagerSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridLightManagerSpec() { } + + public: + // Properties + + + public: + // Methods + virtual std::shared_ptr createLightEntity(LightType type, std::optional colorKelvin, std::optional intensity, const std::optional>& direction, const std::optional>& position, std::optional castShadows, std::optional falloffRadius, const std::optional>& spotLightCone) = 0; + virtual void destroy(const std::shared_ptr& entityWrapper) = 0; + virtual void setPosition(const std::shared_ptr& entityWrapper, const std::vector>& position) = 0; + virtual std::vector> getPosition(const std::shared_ptr& entityWrapper) = 0; + virtual void setDirection(const std::shared_ptr& entityWrapper, const std::vector>& direction) = 0; + virtual std::vector> getDirection(const std::shared_ptr& entityWrapper) = 0; + virtual void setColor(const std::shared_ptr& entityWrapper, const std::vector>& linearSRGBColor) = 0; + virtual std::vector> getColor(const std::shared_ptr& entityWrapper) = 0; + virtual void setIntensity(const std::shared_ptr& entityWrapper, double intensity) = 0; + virtual double getIntensity(const std::shared_ptr& entityWrapper) = 0; + virtual void setFalloff(const std::shared_ptr& entityWrapper, double falloffRadius) = 0; + virtual double getFalloff(const std::shared_ptr& entityWrapper) = 0; + virtual void setSpotLightCone(const std::shared_ptr& entityWrapper, const std::tuple& spotLightCone) = 0; + virtual std::vector> getSpotLightCone(const std::shared_ptr& entityWrapper) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "LightManager"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridListenerSpec.cpp b/package/nitrogen/generated/shared/c++/HybridListenerSpec.cpp new file mode 100644 index 00000000..3acb934f --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridListenerSpec.cpp @@ -0,0 +1,21 @@ +/// +/// HybridListenerSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridListenerSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridListenerSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("remove", &HybridListenerSpec::remove); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridListenerSpec.hpp b/package/nitrogen/generated/shared/c++/HybridListenerSpec.hpp new file mode 100644 index 00000000..2ead2218 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridListenerSpec.hpp @@ -0,0 +1,62 @@ +/// +/// HybridListenerSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + + + + + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `Listener` + * Inherit this class to create instances of `HybridListenerSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridListener: public HybridListenerSpec { + * public: + * HybridListener(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridListenerSpec: public virtual HybridObject { + public: + // Constructor + explicit HybridListenerSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridListenerSpec() { } + + public: + // Properties + + + public: + // Methods + virtual void remove() = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "Listener"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridMat4Spec.cpp b/package/nitrogen/generated/shared/c++/HybridMat4Spec.cpp new file mode 100644 index 00000000..1af11880 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridMat4Spec.cpp @@ -0,0 +1,26 @@ +/// +/// HybridMat4Spec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridMat4Spec.hpp" + +namespace margelo::nitro::RNF { + + void HybridMat4Spec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("data", &HybridMat4Spec::getData); + prototype.registerHybridGetter("scale", &HybridMat4Spec::getScale); + prototype.registerHybridGetter("translation", &HybridMat4Spec::getTranslation); + prototype.registerHybridMethod("scaling", &HybridMat4Spec::scaling); + prototype.registerHybridMethod("translate", &HybridMat4Spec::translate); + prototype.registerHybridMethod("rotate", &HybridMat4Spec::rotate); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridMat4Spec.hpp b/package/nitrogen/generated/shared/c++/HybridMat4Spec.hpp new file mode 100644 index 00000000..fc2493e9 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridMat4Spec.hpp @@ -0,0 +1,70 @@ +/// +/// HybridMat4Spec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridMat4Spec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridMat4Spec; } + +#include +#include +#include +#include "HybridMat4Spec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `Mat4` + * Inherit this class to create instances of `HybridMat4Spec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridMat4: public HybridMat4Spec { + * public: + * HybridMat4(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridMat4Spec: public virtual HybridObject { + public: + // Constructor + explicit HybridMat4Spec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridMat4Spec() { } + + public: + // Properties + virtual std::vector getData() = 0; + virtual std::tuple getScale() = 0; + virtual std::tuple getTranslation() = 0; + + public: + // Methods + virtual std::shared_ptr scaling(const std::tuple& scale) = 0; + virtual std::shared_ptr translate(const std::tuple& translation) = 0; + virtual std::shared_ptr rotate(double angleRadians, const std::tuple& axis) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "Mat4"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridMaterialInstanceSpec.cpp b/package/nitrogen/generated/shared/c++/HybridMaterialInstanceSpec.cpp new file mode 100644 index 00000000..ea2c57e8 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridMaterialInstanceSpec.cpp @@ -0,0 +1,34 @@ +/// +/// HybridMaterialInstanceSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridMaterialInstanceSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridMaterialInstanceSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("name", &HybridMaterialInstanceSpec::getName); + prototype.registerHybridMethod("setCullingMode", &HybridMaterialInstanceSpec::setCullingMode); + prototype.registerHybridMethod("setTransparencyMode", &HybridMaterialInstanceSpec::setTransparencyMode); + prototype.registerHybridMethod("changeAlpha", &HybridMaterialInstanceSpec::changeAlpha); + prototype.registerHybridMethod("setFloatParameter", &HybridMaterialInstanceSpec::setFloatParameter); + prototype.registerHybridMethod("setIntParameter", &HybridMaterialInstanceSpec::setIntParameter); + prototype.registerHybridMethod("setMat3fParameter", &HybridMaterialInstanceSpec::setMat3fParameter); + prototype.registerHybridMethod("setFloat3Parameter", &HybridMaterialInstanceSpec::setFloat3Parameter); + prototype.registerHybridMethod("setFloat4Parameter", &HybridMaterialInstanceSpec::setFloat4Parameter); + prototype.registerHybridMethod("getFloatParameter", &HybridMaterialInstanceSpec::getFloatParameter); + prototype.registerHybridMethod("getIntParameter", &HybridMaterialInstanceSpec::getIntParameter); + prototype.registerHybridMethod("getMat3fParameter", &HybridMaterialInstanceSpec::getMat3fParameter); + prototype.registerHybridMethod("getFloat3Parameter", &HybridMaterialInstanceSpec::getFloat3Parameter); + prototype.registerHybridMethod("getFloat4Parameter", &HybridMaterialInstanceSpec::getFloat4Parameter); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridMaterialInstanceSpec.hpp b/package/nitrogen/generated/shared/c++/HybridMaterialInstanceSpec.hpp new file mode 100644 index 00000000..e568c64c --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridMaterialInstanceSpec.hpp @@ -0,0 +1,80 @@ +/// +/// HybridMaterialInstanceSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `CullingMode` to properly resolve imports. +namespace margelo::nitro::RNF { enum class CullingMode; } +// Forward declaration of `TransparencyMode` to properly resolve imports. +namespace margelo::nitro::RNF { enum class TransparencyMode; } + +#include +#include "CullingMode.hpp" +#include "TransparencyMode.hpp" +#include + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `MaterialInstance` + * Inherit this class to create instances of `HybridMaterialInstanceSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridMaterialInstance: public HybridMaterialInstanceSpec { + * public: + * HybridMaterialInstance(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridMaterialInstanceSpec: public virtual HybridObject { + public: + // Constructor + explicit HybridMaterialInstanceSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridMaterialInstanceSpec() { } + + public: + // Properties + virtual std::string getName() = 0; + + public: + // Methods + virtual void setCullingMode(CullingMode mode) = 0; + virtual void setTransparencyMode(TransparencyMode mode) = 0; + virtual void changeAlpha(double alpha) = 0; + virtual void setFloatParameter(const std::string& name, double value) = 0; + virtual void setIntParameter(const std::string& name, double value) = 0; + virtual void setMat3fParameter(const std::string& name, const std::tuple& value) = 0; + virtual void setFloat3Parameter(const std::string& name, const std::tuple& vector) = 0; + virtual void setFloat4Parameter(const std::string& name, const std::tuple& vector) = 0; + virtual double getFloatParameter(const std::string& name) = 0; + virtual double getIntParameter(const std::string& name) = 0; + virtual std::tuple getMat3fParameter(const std::string& name) = 0; + virtual std::tuple getFloat3Parameter(const std::string& name) = 0; + virtual std::tuple getFloat4Parameter(const std::string& name) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "MaterialInstance"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridMaterialSpec.cpp b/package/nitrogen/generated/shared/c++/HybridMaterialSpec.cpp new file mode 100644 index 00000000..d758ed41 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridMaterialSpec.cpp @@ -0,0 +1,30 @@ +/// +/// HybridMaterialSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridMaterialSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridMaterialSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("name", &HybridMaterialSpec::getName); + prototype.registerHybridMethod("createInstance", &HybridMaterialSpec::createInstance); + prototype.registerHybridMethod("getDefaultInstance", &HybridMaterialSpec::getDefaultInstance); + prototype.registerHybridMethod("setDefaultIntParameter", &HybridMaterialSpec::setDefaultIntParameter); + prototype.registerHybridMethod("setDefaultFloatParameter", &HybridMaterialSpec::setDefaultFloatParameter); + prototype.registerHybridMethod("setDefaultTextureParameter", &HybridMaterialSpec::setDefaultTextureParameter); + prototype.registerHybridMethod("setDefaultMat3fParameter", &HybridMaterialSpec::setDefaultMat3fParameter); + prototype.registerHybridMethod("setDefaultFloat3Parameter", &HybridMaterialSpec::setDefaultFloat3Parameter); + prototype.registerHybridMethod("setDefaultFloat4Parameter", &HybridMaterialSpec::setDefaultFloat4Parameter); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridMaterialSpec.hpp b/package/nitrogen/generated/shared/c++/HybridMaterialSpec.hpp new file mode 100644 index 00000000..4ccdfdbb --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridMaterialSpec.hpp @@ -0,0 +1,89 @@ +/// +/// HybridMaterialSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridMaterialInstanceSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridMaterialInstanceSpec; } +// Forward declaration of `TextureInfo` to properly resolve imports. +namespace margelo::nitro::RNF { struct TextureInfo; } +// Forward declaration of `HybridRenderableManagerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRenderableManagerSpec; } +// Forward declaration of `HybridFilamentBufferSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentBufferSpec; } +// Forward declaration of `TextureFlags` to properly resolve imports. +namespace margelo::nitro::RNF { enum class TextureFlags; } +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include +#include "HybridMaterialInstanceSpec.hpp" +#include "TextureInfo.hpp" +#include "HybridRenderableManagerSpec.hpp" +#include "HybridFilamentBufferSpec.hpp" +#include "TextureFlags.hpp" +#include +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `Material` + * Inherit this class to create instances of `HybridMaterialSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridMaterial: public HybridMaterialSpec { + * public: + * HybridMaterial(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridMaterialSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridMaterialSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridMaterialSpec() { } + + public: + // Properties + virtual std::string getName() = 0; + + public: + // Methods + virtual std::shared_ptr createInstance() = 0; + virtual std::shared_ptr getDefaultInstance() = 0; + virtual void setDefaultIntParameter(const std::string& name, double value) = 0; + virtual void setDefaultFloatParameter(const std::string& name, double value) = 0; + virtual TextureInfo setDefaultTextureParameter(const std::shared_ptr& renderableManager, const std::string& name, const std::shared_ptr& textureBuffer, TextureFlags textureFlags) = 0; + virtual void setDefaultMat3fParameter(const std::string& name, const std::tuple& value) = 0; + virtual void setDefaultFloat3Parameter(const std::string& name, const std::tuple& vector) = 0; + virtual void setDefaultFloat4Parameter(const std::string& name, const std::tuple& vector) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "Material"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridNameComponentManagerSpec.cpp b/package/nitrogen/generated/shared/c++/HybridNameComponentManagerSpec.cpp new file mode 100644 index 00000000..cef4e398 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridNameComponentManagerSpec.cpp @@ -0,0 +1,22 @@ +/// +/// HybridNameComponentManagerSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridNameComponentManagerSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridNameComponentManagerSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("getEntityName", &HybridNameComponentManagerSpec::getEntityName); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridNameComponentManagerSpec.hpp b/package/nitrogen/generated/shared/c++/HybridNameComponentManagerSpec.hpp new file mode 100644 index 00000000..3fa30314 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridNameComponentManagerSpec.hpp @@ -0,0 +1,70 @@ +/// +/// HybridNameComponentManagerSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridEntitySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridEntitySpec; } +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include +#include +#include "HybridEntitySpec.hpp" +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `NameComponentManager` + * Inherit this class to create instances of `HybridNameComponentManagerSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridNameComponentManager: public HybridNameComponentManagerSpec { + * public: + * HybridNameComponentManager(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridNameComponentManagerSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridNameComponentManagerSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridNameComponentManagerSpec() { } + + public: + // Properties + + + public: + // Methods + virtual std::optional getEntityName(const std::shared_ptr& entity) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "NameComponentManager"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridPointerHolderSpec.cpp b/package/nitrogen/generated/shared/c++/HybridPointerHolderSpec.cpp new file mode 100644 index 00000000..62430ae2 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridPointerHolderSpec.cpp @@ -0,0 +1,22 @@ +/// +/// HybridPointerHolderSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridPointerHolderSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("isValid", &HybridPointerHolderSpec::getIsValid); + prototype.registerHybridMethod("release", &HybridPointerHolderSpec::release); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridPointerHolderSpec.hpp b/package/nitrogen/generated/shared/c++/HybridPointerHolderSpec.hpp new file mode 100644 index 00000000..a8fdf7d1 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridPointerHolderSpec.hpp @@ -0,0 +1,62 @@ +/// +/// HybridPointerHolderSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + + + + + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `PointerHolder` + * Inherit this class to create instances of `HybridPointerHolderSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridPointerHolder: public HybridPointerHolderSpec { + * public: + * HybridPointerHolder(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridPointerHolderSpec: public virtual HybridObject { + public: + // Constructor + explicit HybridPointerHolderSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridPointerHolderSpec() { } + + public: + // Properties + virtual bool getIsValid() = 0; + + public: + // Methods + virtual void release() = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "PointerHolder"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridRNFCameraSpec.cpp b/package/nitrogen/generated/shared/c++/HybridRNFCameraSpec.cpp new file mode 100644 index 00000000..d6635604 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridRNFCameraSpec.cpp @@ -0,0 +1,25 @@ +/// +/// HybridRNFCameraSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridRNFCameraSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridRNFCameraSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("lookAtCameraManipulator", &HybridRNFCameraSpec::lookAtCameraManipulator); + prototype.registerHybridMethod("lookAt", &HybridRNFCameraSpec::lookAt); + prototype.registerHybridMethod("setLensProjection", &HybridRNFCameraSpec::setLensProjection); + prototype.registerHybridMethod("setProjection", &HybridRNFCameraSpec::setProjection); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridRNFCameraSpec.hpp b/package/nitrogen/generated/shared/c++/HybridRNFCameraSpec.hpp new file mode 100644 index 00000000..8563d2f9 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridRNFCameraSpec.hpp @@ -0,0 +1,72 @@ +/// +/// HybridRNFCameraSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridCameraManipulatorSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridCameraManipulatorSpec; } +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include "HybridCameraManipulatorSpec.hpp" +#include +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `RNFCamera` + * Inherit this class to create instances of `HybridRNFCameraSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridRNFCamera: public HybridRNFCameraSpec { + * public: + * HybridRNFCamera(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridRNFCameraSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridRNFCameraSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridRNFCameraSpec() { } + + public: + // Properties + + + public: + // Methods + virtual void lookAtCameraManipulator(const std::shared_ptr& cameraManipulator) = 0; + virtual void lookAt(const std::tuple& eye, const std::tuple& center, const std::tuple& up) = 0; + virtual void setLensProjection(double focalLengthInMillimeters, double aspect, double near, double far) = 0; + virtual void setProjection(double fov, double aspect, double near, double far) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "RNFCamera"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridRenderableManagerSpec.cpp b/package/nitrogen/generated/shared/c++/HybridRenderableManagerSpec.cpp new file mode 100644 index 00000000..51a52365 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridRenderableManagerSpec.cpp @@ -0,0 +1,34 @@ +/// +/// HybridRenderableManagerSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridRenderableManagerSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridRenderableManagerSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("getPrimitiveCount", &HybridRenderableManagerSpec::getPrimitiveCount); + prototype.registerHybridMethod("getMaterialInstanceAt", &HybridRenderableManagerSpec::getMaterialInstanceAt); + prototype.registerHybridMethod("setMaterialInstanceAt", &HybridRenderableManagerSpec::setMaterialInstanceAt); + prototype.registerHybridMethod("setAssetEntitiesOpacity", &HybridRenderableManagerSpec::setAssetEntitiesOpacity); + prototype.registerHybridMethod("setInstanceEntitiesOpacity", &HybridRenderableManagerSpec::setInstanceEntitiesOpacity); + prototype.registerHybridMethod("changeMaterialTextureMap", &HybridRenderableManagerSpec::changeMaterialTextureMap); + prototype.registerHybridMethod("setCastShadow", &HybridRenderableManagerSpec::setCastShadow); + prototype.registerHybridMethod("setReceiveShadow", &HybridRenderableManagerSpec::setReceiveShadow); + prototype.registerHybridMethod("createPlane", &HybridRenderableManagerSpec::createPlane); + prototype.registerHybridMethod("createImageBackgroundShape", &HybridRenderableManagerSpec::createImageBackgroundShape); + prototype.registerHybridMethod("scaleBoundingBox", &HybridRenderableManagerSpec::scaleBoundingBox); + prototype.registerHybridMethod("createDebugCubeWireframe", &HybridRenderableManagerSpec::createDebugCubeWireframe); + prototype.registerHybridMethod("getAxisAlignedBoundingBox", &HybridRenderableManagerSpec::getAxisAlignedBoundingBox); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridRenderableManagerSpec.hpp b/package/nitrogen/generated/shared/c++/HybridRenderableManagerSpec.hpp new file mode 100644 index 00000000..ccd2df25 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridRenderableManagerSpec.hpp @@ -0,0 +1,104 @@ +/// +/// HybridRenderableManagerSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridEntitySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridEntitySpec; } +// Forward declaration of `HybridMaterialInstanceSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridMaterialInstanceSpec; } +// Forward declaration of `HybridFilamentAssetSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentAssetSpec; } +// Forward declaration of `HybridFilamentInstanceSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentInstanceSpec; } +// Forward declaration of `HybridFilamentBufferSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentBufferSpec; } +// Forward declaration of `TextureFlags` to properly resolve imports. +namespace margelo::nitro::RNF { enum class TextureFlags; } +// Forward declaration of `HybridMaterialSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridMaterialSpec; } +// Forward declaration of `HybridBoxSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBoxSpec; } +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include "HybridEntitySpec.hpp" +#include "HybridMaterialInstanceSpec.hpp" +#include "HybridFilamentAssetSpec.hpp" +#include "HybridFilamentInstanceSpec.hpp" +#include +#include "HybridFilamentBufferSpec.hpp" +#include "TextureFlags.hpp" +#include "HybridMaterialSpec.hpp" +#include +#include +#include "HybridBoxSpec.hpp" +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `RenderableManager` + * Inherit this class to create instances of `HybridRenderableManagerSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridRenderableManager: public HybridRenderableManagerSpec { + * public: + * HybridRenderableManager(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridRenderableManagerSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridRenderableManagerSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridRenderableManagerSpec() { } + + public: + // Properties + + + public: + // Methods + virtual double getPrimitiveCount(const std::shared_ptr& renderable) = 0; + virtual std::shared_ptr getMaterialInstanceAt(const std::shared_ptr& renderable, double index) = 0; + virtual void setMaterialInstanceAt(const std::shared_ptr& renderable, double index, const std::shared_ptr& material) = 0; + virtual void setAssetEntitiesOpacity(const std::shared_ptr& asset, double opacity) = 0; + virtual void setInstanceEntitiesOpacity(const std::shared_ptr& instance, double opacity) = 0; + virtual void changeMaterialTextureMap(const std::shared_ptr& renderable, const std::string& materialName, const std::shared_ptr& textureBuffer, TextureFlags textureFlags) = 0; + virtual void setCastShadow(const std::shared_ptr& renderable, bool castShadow) = 0; + virtual void setReceiveShadow(const std::shared_ptr& renderable, bool receiveShadow) = 0; + virtual std::shared_ptr createPlane(const std::shared_ptr& shadowMaterial, double halfExtendX, double halfExtendY, double halfExtendZ) = 0; + virtual std::shared_ptr createImageBackgroundShape(const std::shared_ptr& material) = 0; + virtual void scaleBoundingBox(const std::shared_ptr& asset, double scale) = 0; + virtual std::shared_ptr createDebugCubeWireframe(const std::tuple& halfExtent, const std::optional>& material, std::optional color) = 0; + virtual std::shared_ptr getAxisAlignedBoundingBox(const std::shared_ptr& entity) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "RenderableManager"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridRendererSpec.cpp b/package/nitrogen/generated/shared/c++/HybridRendererSpec.cpp new file mode 100644 index 00000000..35757698 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridRendererSpec.cpp @@ -0,0 +1,27 @@ +/// +/// HybridRendererSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridRendererSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridRendererSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("setFrameRateOptions", &HybridRendererSpec::setFrameRateOptions); + prototype.registerHybridMethod("setClearContent", &HybridRendererSpec::setClearContent); + prototype.registerHybridMethod("setPresentationTime", &HybridRendererSpec::setPresentationTime); + prototype.registerHybridMethod("beginFrame", &HybridRendererSpec::beginFrame); + prototype.registerHybridMethod("render", &HybridRendererSpec::render); + prototype.registerHybridMethod("endFrame", &HybridRendererSpec::endFrame); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridRendererSpec.hpp b/package/nitrogen/generated/shared/c++/HybridRendererSpec.hpp new file mode 100644 index 00000000..dc902555 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridRendererSpec.hpp @@ -0,0 +1,79 @@ +/// +/// HybridRendererSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `FrameRateOptions` to properly resolve imports. +namespace margelo::nitro::RNF { struct FrameRateOptions; } +// Forward declaration of `HybridSwapChainSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSwapChainSpec; } +// Forward declaration of `HybridViewSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridViewSpec; } +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include "FrameRateOptions.hpp" +#include +#include "HybridSwapChainSpec.hpp" +#include "HybridViewSpec.hpp" +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `Renderer` + * Inherit this class to create instances of `HybridRendererSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridRenderer: public HybridRendererSpec { + * public: + * HybridRenderer(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridRendererSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridRendererSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridRendererSpec() { } + + public: + // Properties + + + public: + // Methods + virtual void setFrameRateOptions(const FrameRateOptions& options) = 0; + virtual void setClearContent(bool clear) = 0; + virtual void setPresentationTime(double timestamp) = 0; + virtual bool beginFrame(const std::shared_ptr& swapChain, double timestamp) = 0; + virtual void render(const std::shared_ptr& view) = 0; + virtual void endFrame() = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "Renderer"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridRigidBodySpec.cpp b/package/nitrogen/generated/shared/c++/HybridRigidBodySpec.cpp new file mode 100644 index 00000000..64bdf32a --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridRigidBodySpec.cpp @@ -0,0 +1,28 @@ +/// +/// HybridRigidBodySpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridRigidBodySpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridRigidBodySpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("friction", &HybridRigidBodySpec::getFriction); + prototype.registerHybridSetter("friction", &HybridRigidBodySpec::setFriction); + prototype.registerHybridGetter("activationState", &HybridRigidBodySpec::getActivationState); + prototype.registerHybridSetter("activationState", &HybridRigidBodySpec::setActivationState); + prototype.registerHybridGetter("id", &HybridRigidBodySpec::getId); + prototype.registerHybridSetter("id", &HybridRigidBodySpec::setId); + prototype.registerHybridMethod("setDamping", &HybridRigidBodySpec::setDamping); + prototype.registerHybridMethod("setCollisionCallback", &HybridRigidBodySpec::setCollisionCallback); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridRigidBodySpec.hpp b/package/nitrogen/generated/shared/c++/HybridRigidBodySpec.hpp new file mode 100644 index 00000000..54e0e66b --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridRigidBodySpec.hpp @@ -0,0 +1,76 @@ +/// +/// HybridRigidBodySpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `ActivationState` to properly resolve imports. +namespace margelo::nitro::RNF { enum class ActivationState; } +// Forward declaration of `HybridRigidBodySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRigidBodySpec; } + +#include "ActivationState.hpp" +#include +#include +#include +#include +#include "HybridRigidBodySpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `RigidBody` + * Inherit this class to create instances of `HybridRigidBodySpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridRigidBody: public HybridRigidBodySpec { + * public: + * HybridRigidBody(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridRigidBodySpec: public virtual HybridObject { + public: + // Constructor + explicit HybridRigidBodySpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridRigidBodySpec() { } + + public: + // Properties + virtual double getFriction() = 0; + virtual void setFriction(double friction) = 0; + virtual ActivationState getActivationState() = 0; + virtual void setActivationState(ActivationState activationState) = 0; + virtual std::string getId() = 0; + virtual void setId(const std::string& id) = 0; + + public: + // Methods + virtual void setDamping(double linearDamping, double angularDamping) = 0; + virtual void setCollisionCallback(const std::optional& /* thisBody */, const std::shared_ptr& /* collidedWith */)>>& callback) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "RigidBody"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridSceneSpec.cpp b/package/nitrogen/generated/shared/c++/HybridSceneSpec.cpp new file mode 100644 index 00000000..8443b8df --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridSceneSpec.cpp @@ -0,0 +1,28 @@ +/// +/// HybridSceneSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridSceneSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridSceneSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("entityCount", &HybridSceneSpec::getEntityCount); + prototype.registerHybridMethod("addEntity", &HybridSceneSpec::addEntity); + prototype.registerHybridMethod("addEntities", &HybridSceneSpec::addEntities); + prototype.registerHybridMethod("removeEntity", &HybridSceneSpec::removeEntity); + prototype.registerHybridMethod("removeEntities", &HybridSceneSpec::removeEntities); + prototype.registerHybridMethod("addAssetEntities", &HybridSceneSpec::addAssetEntities); + prototype.registerHybridMethod("removeAssetEntities", &HybridSceneSpec::removeAssetEntities); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridSceneSpec.hpp b/package/nitrogen/generated/shared/c++/HybridSceneSpec.hpp new file mode 100644 index 00000000..1aa21c57 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridSceneSpec.hpp @@ -0,0 +1,77 @@ +/// +/// HybridSceneSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridEntitySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridEntitySpec; } +// Forward declaration of `HybridFilamentAssetSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridFilamentAssetSpec; } +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include "HybridEntitySpec.hpp" +#include +#include "HybridFilamentAssetSpec.hpp" +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `Scene` + * Inherit this class to create instances of `HybridSceneSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridScene: public HybridSceneSpec { + * public: + * HybridScene(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridSceneSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridSceneSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridSceneSpec() { } + + public: + // Properties + virtual double getEntityCount() = 0; + + public: + // Methods + virtual void addEntity(const std::shared_ptr& entity) = 0; + virtual void addEntities(const std::vector>& entities) = 0; + virtual void removeEntity(const std::shared_ptr& entity) = 0; + virtual void removeEntities(const std::vector>& entities) = 0; + virtual void addAssetEntities(const std::shared_ptr& asset) = 0; + virtual void removeAssetEntities(const std::shared_ptr& asset) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "Scene"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridSphereShapeSpec.cpp b/package/nitrogen/generated/shared/c++/HybridSphereShapeSpec.cpp new file mode 100644 index 00000000..d8f5ea14 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridSphereShapeSpec.cpp @@ -0,0 +1,22 @@ +/// +/// HybridSphereShapeSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridSphereShapeSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridSphereShapeSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridBaseShapeSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridSphereShapeSpec.hpp b/package/nitrogen/generated/shared/c++/HybridSphereShapeSpec.hpp new file mode 100644 index 00000000..6cbbb732 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridSphereShapeSpec.hpp @@ -0,0 +1,64 @@ +/// +/// HybridSphereShapeSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridBaseShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBaseShapeSpec; } + +#include +#include "HybridBaseShapeSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `SphereShape` + * Inherit this class to create instances of `HybridSphereShapeSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridSphereShape: public HybridSphereShapeSpec { + * public: + * HybridSphereShape(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridSphereShapeSpec: public virtual HybridObject, public virtual HybridBaseShapeSpec { + public: + // Constructor + explicit HybridSphereShapeSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridSphereShapeSpec() { } + + public: + // Properties + + + public: + // Methods + + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "SphereShape"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridStaticPlaneShapeSpec.cpp b/package/nitrogen/generated/shared/c++/HybridStaticPlaneShapeSpec.cpp new file mode 100644 index 00000000..c0d5d241 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridStaticPlaneShapeSpec.cpp @@ -0,0 +1,22 @@ +/// +/// HybridStaticPlaneShapeSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridStaticPlaneShapeSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridStaticPlaneShapeSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridBaseShapeSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridStaticPlaneShapeSpec.hpp b/package/nitrogen/generated/shared/c++/HybridStaticPlaneShapeSpec.hpp new file mode 100644 index 00000000..167bd330 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridStaticPlaneShapeSpec.hpp @@ -0,0 +1,64 @@ +/// +/// HybridStaticPlaneShapeSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridBaseShapeSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridBaseShapeSpec; } + +#include +#include "HybridBaseShapeSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `StaticPlaneShape` + * Inherit this class to create instances of `HybridStaticPlaneShapeSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridStaticPlaneShape: public HybridStaticPlaneShapeSpec { + * public: + * HybridStaticPlaneShape(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridStaticPlaneShapeSpec: public virtual HybridObject, public virtual HybridBaseShapeSpec { + public: + // Constructor + explicit HybridStaticPlaneShapeSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridStaticPlaneShapeSpec() { } + + public: + // Properties + + + public: + // Methods + + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "StaticPlaneShape"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridSurfaceProviderSpec.cpp b/package/nitrogen/generated/shared/c++/HybridSurfaceProviderSpec.cpp new file mode 100644 index 00000000..f3ffcd1f --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridSurfaceProviderSpec.cpp @@ -0,0 +1,23 @@ +/// +/// HybridSurfaceProviderSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridSurfaceProviderSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridSurfaceProviderSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("getSurface", &HybridSurfaceProviderSpec::getSurface); + prototype.registerHybridMethod("addOnSurfaceCreatedListener", &HybridSurfaceProviderSpec::addOnSurfaceCreatedListener); + prototype.registerHybridMethod("addOnSurfaceDestroyedListener", &HybridSurfaceProviderSpec::addOnSurfaceDestroyedListener); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridSurfaceProviderSpec.hpp b/package/nitrogen/generated/shared/c++/HybridSurfaceProviderSpec.hpp new file mode 100644 index 00000000..b26d0eb3 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridSurfaceProviderSpec.hpp @@ -0,0 +1,71 @@ +/// +/// HybridSurfaceProviderSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridSurfaceSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSurfaceSpec; } +// Forward declaration of `HybridListenerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridListenerSpec; } + +#include +#include +#include "HybridSurfaceSpec.hpp" +#include "HybridListenerSpec.hpp" +#include + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `SurfaceProvider` + * Inherit this class to create instances of `HybridSurfaceProviderSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridSurfaceProvider: public HybridSurfaceProviderSpec { + * public: + * HybridSurfaceProvider(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridSurfaceProviderSpec: public virtual HybridObject { + public: + // Constructor + explicit HybridSurfaceProviderSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridSurfaceProviderSpec() { } + + public: + // Properties + + + public: + // Methods + virtual std::optional> getSurface() = 0; + virtual std::shared_ptr addOnSurfaceCreatedListener(const std::function& /* surface */)>& listener) = 0; + virtual std::shared_ptr addOnSurfaceDestroyedListener(const std::function& listener) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "SurfaceProvider"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridSurfaceSpec.cpp b/package/nitrogen/generated/shared/c++/HybridSurfaceSpec.cpp new file mode 100644 index 00000000..64216615 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridSurfaceSpec.cpp @@ -0,0 +1,22 @@ +/// +/// HybridSurfaceSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridSurfaceSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridSurfaceSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("width", &HybridSurfaceSpec::getWidth); + prototype.registerHybridGetter("height", &HybridSurfaceSpec::getHeight); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridSurfaceSpec.hpp b/package/nitrogen/generated/shared/c++/HybridSurfaceSpec.hpp new file mode 100644 index 00000000..06a0dad3 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridSurfaceSpec.hpp @@ -0,0 +1,63 @@ +/// +/// HybridSurfaceSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + + + + + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `Surface` + * Inherit this class to create instances of `HybridSurfaceSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridSurface: public HybridSurfaceSpec { + * public: + * HybridSurface(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridSurfaceSpec: public virtual HybridObject { + public: + // Constructor + explicit HybridSurfaceSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridSurfaceSpec() { } + + public: + // Properties + virtual double getWidth() = 0; + virtual double getHeight() = 0; + + public: + // Methods + + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "Surface"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridSwapChainSpec.cpp b/package/nitrogen/generated/shared/c++/HybridSwapChainSpec.cpp new file mode 100644 index 00000000..f48dc63e --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridSwapChainSpec.cpp @@ -0,0 +1,22 @@ +/// +/// HybridSwapChainSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridSwapChainSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridSwapChainSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridSwapChainSpec.hpp b/package/nitrogen/generated/shared/c++/HybridSwapChainSpec.hpp new file mode 100644 index 00000000..c832ba16 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridSwapChainSpec.hpp @@ -0,0 +1,64 @@ +/// +/// HybridSwapChainSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `SwapChain` + * Inherit this class to create instances of `HybridSwapChainSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridSwapChain: public HybridSwapChainSpec { + * public: + * HybridSwapChain(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridSwapChainSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridSwapChainSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridSwapChainSpec() { } + + public: + // Properties + + + public: + // Methods + + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "SwapChain"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridTFilamentRecorderSpec.cpp b/package/nitrogen/generated/shared/c++/HybridTFilamentRecorderSpec.cpp new file mode 100644 index 00000000..fd9fd485 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridTFilamentRecorderSpec.cpp @@ -0,0 +1,34 @@ +/// +/// HybridTFilamentRecorderSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridTFilamentRecorderSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridTFilamentRecorderSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("width", &HybridTFilamentRecorderSpec::getWidth); + prototype.registerHybridSetter("width", &HybridTFilamentRecorderSpec::setWidth); + prototype.registerHybridGetter("height", &HybridTFilamentRecorderSpec::getHeight); + prototype.registerHybridSetter("height", &HybridTFilamentRecorderSpec::setHeight); + prototype.registerHybridGetter("fps", &HybridTFilamentRecorderSpec::getFps); + prototype.registerHybridSetter("fps", &HybridTFilamentRecorderSpec::setFps); + prototype.registerHybridGetter("outputFile", &HybridTFilamentRecorderSpec::getOutputFile); + prototype.registerHybridSetter("outputFile", &HybridTFilamentRecorderSpec::setOutputFile); + prototype.registerHybridGetter("isRecording", &HybridTFilamentRecorderSpec::getIsRecording); + prototype.registerHybridSetter("isRecording", &HybridTFilamentRecorderSpec::setIsRecording); + prototype.registerHybridMethod("startRecording", &HybridTFilamentRecorderSpec::startRecording); + prototype.registerHybridMethod("stopRecording", &HybridTFilamentRecorderSpec::stopRecording); + prototype.registerHybridMethod("renderFrame", &HybridTFilamentRecorderSpec::renderFrame); + prototype.registerHybridMethod("addOnReadyForMoreDataListener", &HybridTFilamentRecorderSpec::addOnReadyForMoreDataListener); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridTFilamentRecorderSpec.hpp b/package/nitrogen/generated/shared/c++/HybridTFilamentRecorderSpec.hpp new file mode 100644 index 00000000..3aad0cdb --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridTFilamentRecorderSpec.hpp @@ -0,0 +1,79 @@ +/// +/// HybridTFilamentRecorderSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridListenerSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridListenerSpec; } + +#include +#include +#include +#include "HybridListenerSpec.hpp" +#include + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `TFilamentRecorder` + * Inherit this class to create instances of `HybridTFilamentRecorderSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridTFilamentRecorder: public HybridTFilamentRecorderSpec { + * public: + * HybridTFilamentRecorder(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridTFilamentRecorderSpec: public virtual HybridObject { + public: + // Constructor + explicit HybridTFilamentRecorderSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridTFilamentRecorderSpec() { } + + public: + // Properties + virtual double getWidth() = 0; + virtual void setWidth(double width) = 0; + virtual double getHeight() = 0; + virtual void setHeight(double height) = 0; + virtual double getFps() = 0; + virtual void setFps(double fps) = 0; + virtual std::string getOutputFile() = 0; + virtual void setOutputFile(const std::string& outputFile) = 0; + virtual bool getIsRecording() = 0; + virtual void setIsRecording(bool isRecording) = 0; + + public: + // Methods + virtual std::future startRecording() = 0; + virtual std::future stopRecording() = 0; + virtual void renderFrame(double timestamp) = 0; + virtual std::shared_ptr addOnReadyForMoreDataListener(const std::function()>& callback) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "TFilamentRecorder"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridTransformManagerSpec.cpp b/package/nitrogen/generated/shared/c++/HybridTransformManagerSpec.cpp new file mode 100644 index 00000000..a646049e --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridTransformManagerSpec.cpp @@ -0,0 +1,32 @@ +/// +/// HybridTransformManagerSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridTransformManagerSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridTransformManagerSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridMethod("getTransform", &HybridTransformManagerSpec::getTransform); + prototype.registerHybridMethod("getWorldTransform", &HybridTransformManagerSpec::getWorldTransform); + prototype.registerHybridMethod("openLocalTransformTransaction", &HybridTransformManagerSpec::openLocalTransformTransaction); + prototype.registerHybridMethod("commitLocalTransformTransaction", &HybridTransformManagerSpec::commitLocalTransformTransaction); + prototype.registerHybridMethod("setTransform", &HybridTransformManagerSpec::setTransform); + prototype.registerHybridMethod("createIdentityMatrix", &HybridTransformManagerSpec::createIdentityMatrix); + prototype.registerHybridMethod("transformToUnitCube", &HybridTransformManagerSpec::transformToUnitCube); + prototype.registerHybridMethod("setEntityPosition", &HybridTransformManagerSpec::setEntityPosition); + prototype.registerHybridMethod("setEntityRotation", &HybridTransformManagerSpec::setEntityRotation); + prototype.registerHybridMethod("setEntityScale", &HybridTransformManagerSpec::setEntityScale); + prototype.registerHybridMethod("updateTransformByRigidBody", &HybridTransformManagerSpec::updateTransformByRigidBody); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridTransformManagerSpec.hpp b/package/nitrogen/generated/shared/c++/HybridTransformManagerSpec.hpp new file mode 100644 index 00000000..ef404a63 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridTransformManagerSpec.hpp @@ -0,0 +1,88 @@ +/// +/// HybridTransformManagerSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridMat4Spec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridMat4Spec; } +// Forward declaration of `HybridEntitySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridEntitySpec; } +// Forward declaration of `HybridAABBSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridAABBSpec; } +// Forward declaration of `HybridRigidBodySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRigidBodySpec; } +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include "HybridMat4Spec.hpp" +#include "HybridEntitySpec.hpp" +#include "HybridAABBSpec.hpp" +#include +#include "HybridRigidBodySpec.hpp" +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `TransformManager` + * Inherit this class to create instances of `HybridTransformManagerSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridTransformManager: public HybridTransformManagerSpec { + * public: + * HybridTransformManager(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridTransformManagerSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridTransformManagerSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridTransformManagerSpec() { } + + public: + // Properties + + + public: + // Methods + virtual std::shared_ptr getTransform(const std::shared_ptr& entity) = 0; + virtual std::shared_ptr getWorldTransform(const std::shared_ptr& entity) = 0; + virtual void openLocalTransformTransaction() = 0; + virtual void commitLocalTransformTransaction() = 0; + virtual void setTransform(const std::shared_ptr& entity, const std::shared_ptr& transform) = 0; + virtual std::shared_ptr createIdentityMatrix() = 0; + virtual void transformToUnitCube(const std::shared_ptr& rootEntity, const std::shared_ptr& boundingBox) = 0; + virtual void setEntityPosition(const std::shared_ptr& entity, const std::tuple& position, bool multiplyCurrent) = 0; + virtual void setEntityRotation(const std::shared_ptr& entity, double angleRadians, const std::tuple& axis, bool multiplyCurrent) = 0; + virtual void setEntityScale(const std::shared_ptr& entity, const std::tuple& scale, bool multiplyCurrent) = 0; + virtual void updateTransformByRigidBody(const std::shared_ptr& entity, const std::shared_ptr& rigidBody) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "TransformManager"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridViewSpec.cpp b/package/nitrogen/generated/shared/c++/HybridViewSpec.cpp new file mode 100644 index 00000000..7db30322 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridViewSpec.cpp @@ -0,0 +1,47 @@ +/// +/// HybridViewSpec.cpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#include "HybridViewSpec.hpp" + +namespace margelo::nitro::RNF { + + void HybridViewSpec::loadHybridMethods() { + // load base methods/properties + HybridObject::loadHybridMethods(); + HybridPointerHolderSpec::loadHybridMethods(); + // load custom methods/properties + registerHybrids(this, [](Prototype& prototype) { + prototype.registerHybridGetter("camera", &HybridViewSpec::getCamera); + prototype.registerHybridSetter("camera", &HybridViewSpec::setCamera); + prototype.registerHybridGetter("scene", &HybridViewSpec::getScene); + prototype.registerHybridSetter("scene", &HybridViewSpec::setScene); + prototype.registerHybridGetter("screenSpaceRefraction", &HybridViewSpec::getScreenSpaceRefraction); + prototype.registerHybridSetter("screenSpaceRefraction", &HybridViewSpec::setScreenSpaceRefraction); + prototype.registerHybridGetter("postProcessing", &HybridViewSpec::getPostProcessing); + prototype.registerHybridSetter("postProcessing", &HybridViewSpec::setPostProcessing); + prototype.registerHybridGetter("shadowing", &HybridViewSpec::getShadowing); + prototype.registerHybridSetter("shadowing", &HybridViewSpec::setShadowing); + prototype.registerHybridGetter("antiAliasing", &HybridViewSpec::getAntiAliasing); + prototype.registerHybridSetter("antiAliasing", &HybridViewSpec::setAntiAliasing); + prototype.registerHybridGetter("dithering", &HybridViewSpec::getDithering); + prototype.registerHybridSetter("dithering", &HybridViewSpec::setDithering); + prototype.registerHybridGetter("temporalAntiAliasingOptions", &HybridViewSpec::getTemporalAntiAliasingOptions); + prototype.registerHybridSetter("temporalAntiAliasingOptions", &HybridViewSpec::setTemporalAntiAliasingOptions); + prototype.registerHybridMethod("getAspectRatio", &HybridViewSpec::getAspectRatio); + prototype.registerHybridMethod("getViewport", &HybridViewSpec::getViewport); + prototype.registerHybridMethod("setAmbientOcclusionOptions", &HybridViewSpec::setAmbientOcclusionOptions); + prototype.registerHybridMethod("getAmbientOcclusionOptions", &HybridViewSpec::getAmbientOcclusionOptions); + prototype.registerHybridMethod("setDynamicResolutionOptions", &HybridViewSpec::setDynamicResolutionOptions); + prototype.registerHybridMethod("getDynamicResolutionOptions", &HybridViewSpec::getDynamicResolutionOptions); + prototype.registerHybridMethod("createAmbientOcclusionOptions", &HybridViewSpec::createAmbientOcclusionOptions); + prototype.registerHybridMethod("createDynamicResolutionOptions", &HybridViewSpec::createDynamicResolutionOptions); + prototype.registerHybridMethod("projectWorldToScreen", &HybridViewSpec::projectWorldToScreen); + prototype.registerHybridMethod("pickEntity", &HybridViewSpec::pickEntity); + }); + } + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/HybridViewSpec.hpp b/package/nitrogen/generated/shared/c++/HybridViewSpec.hpp new file mode 100644 index 00000000..36d27508 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/HybridViewSpec.hpp @@ -0,0 +1,118 @@ +/// +/// HybridViewSpec.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +// Forward declaration of `HybridRNFCameraSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridRNFCameraSpec; } +// Forward declaration of `HybridSceneSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridSceneSpec; } +// Forward declaration of `AntiAliasingType` to properly resolve imports. +namespace margelo::nitro::RNF { enum class AntiAliasingType; } +// Forward declaration of `DitheringType` to properly resolve imports. +namespace margelo::nitro::RNF { enum class DitheringType; } +// Forward declaration of `Viewport` to properly resolve imports. +namespace margelo::nitro::RNF { struct Viewport; } +// Forward declaration of `AmbientOcclusionOptions` to properly resolve imports. +namespace margelo::nitro::RNF { struct AmbientOcclusionOptions; } +// Forward declaration of `DynamicResolutionOptions` to properly resolve imports. +namespace margelo::nitro::RNF { struct DynamicResolutionOptions; } +// Forward declaration of `HybridEntitySpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridEntitySpec; } +// Forward declaration of `HybridPointerHolderSpec` to properly resolve imports. +namespace margelo::nitro::RNF { class HybridPointerHolderSpec; } + +#include +#include "HybridRNFCameraSpec.hpp" +#include "HybridSceneSpec.hpp" +#include "AntiAliasingType.hpp" +#include "DitheringType.hpp" +#include +#include +#include "Viewport.hpp" +#include "AmbientOcclusionOptions.hpp" +#include "DynamicResolutionOptions.hpp" +#include +#include +#include +#include "HybridEntitySpec.hpp" +#include +#include "HybridPointerHolderSpec.hpp" + +namespace margelo::nitro::RNF { + + using namespace margelo::nitro; + + /** + * An abstract base class for `View` + * Inherit this class to create instances of `HybridViewSpec` in C++. + * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual. + * @example + * ```cpp + * class HybridView: public HybridViewSpec { + * public: + * HybridView(...): HybridObject(TAG) { ... } + * // ... + * }; + * ``` + */ + class HybridViewSpec: public virtual HybridObject, public virtual HybridPointerHolderSpec { + public: + // Constructor + explicit HybridViewSpec(): HybridObject(TAG) { } + + // Destructor + virtual ~HybridViewSpec() { } + + public: + // Properties + virtual std::shared_ptr getCamera() = 0; + virtual void setCamera(const std::shared_ptr& camera) = 0; + virtual std::shared_ptr getScene() = 0; + virtual void setScene(const std::shared_ptr& scene) = 0; + virtual bool getScreenSpaceRefraction() = 0; + virtual void setScreenSpaceRefraction(bool screenSpaceRefraction) = 0; + virtual bool getPostProcessing() = 0; + virtual void setPostProcessing(bool postProcessing) = 0; + virtual bool getShadowing() = 0; + virtual void setShadowing(bool shadowing) = 0; + virtual AntiAliasingType getAntiAliasing() = 0; + virtual void setAntiAliasing(AntiAliasingType antiAliasing) = 0; + virtual DitheringType getDithering() = 0; + virtual void setDithering(DitheringType dithering) = 0; + virtual std::unordered_map getTemporalAntiAliasingOptions() = 0; + virtual void setTemporalAntiAliasingOptions(const std::unordered_map& temporalAntiAliasingOptions) = 0; + + public: + // Methods + virtual double getAspectRatio() = 0; + virtual Viewport getViewport() = 0; + virtual void setAmbientOcclusionOptions(const AmbientOcclusionOptions& options) = 0; + virtual AmbientOcclusionOptions getAmbientOcclusionOptions() = 0; + virtual void setDynamicResolutionOptions(const DynamicResolutionOptions& options) = 0; + virtual DynamicResolutionOptions getDynamicResolutionOptions() = 0; + virtual AmbientOcclusionOptions createAmbientOcclusionOptions() = 0; + virtual DynamicResolutionOptions createDynamicResolutionOptions() = 0; + virtual std::tuple projectWorldToScreen(const std::tuple& worldPosition) = 0; + virtual std::future>> pickEntity(double x, double y) = 0; + + protected: + // Hybrid Setup + void loadHybridMethods() override; + + protected: + // Tag for logging + static constexpr auto TAG = "View"; + }; + +} // namespace margelo::nitro::RNF diff --git a/package/nitrogen/generated/shared/c++/LightType.hpp b/package/nitrogen/generated/shared/c++/LightType.hpp new file mode 100644 index 00000000..57b464c2 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/LightType.hpp @@ -0,0 +1,90 @@ +/// +/// LightType.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +namespace margelo::nitro::RNF { + + /** + * An enum which can be represented as a JavaScript union (LightType). + */ + enum class LightType { + DIRECTIONAL SWIFT_NAME(directional) = 0, + SUN SWIFT_NAME(sun) = 1, + POINT SWIFT_NAME(point) = 2, + FOCUSED_POINT SWIFT_NAME(focusedPoint) = 3, + SPOT SWIFT_NAME(spot) = 4, + } CLOSED_ENUM; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ LightType <> JS LightType (union) + template <> + struct JSIConverter { + static inline LightType fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + std::string unionValue = JSIConverter::fromJSI(runtime, arg); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("directional"): return LightType::DIRECTIONAL; + case hashString("sun"): return LightType::SUN; + case hashString("point"): return LightType::POINT; + case hashString("focused_point"): return LightType::FOCUSED_POINT; + case hashString("spot"): return LightType::SPOT; + default: [[unlikely]] + throw std::runtime_error("Cannot convert \"" + unionValue + "\" to enum LightType - invalid value!"); + } + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, LightType arg) { + switch (arg) { + case LightType::DIRECTIONAL: return JSIConverter::toJSI(runtime, "directional"); + case LightType::SUN: return JSIConverter::toJSI(runtime, "sun"); + case LightType::POINT: return JSIConverter::toJSI(runtime, "point"); + case LightType::FOCUSED_POINT: return JSIConverter::toJSI(runtime, "focused_point"); + case LightType::SPOT: return JSIConverter::toJSI(runtime, "spot"); + default: [[unlikely]] + throw std::runtime_error("Cannot convert LightType to JS - invalid value: " + + std::to_string(static_cast(arg)) + "!"); + } + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isString()) { + return false; + } + std::string unionValue = JSIConverter::fromJSI(runtime, value); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("directional"): + case hashString("sun"): + case hashString("point"): + case hashString("focused_point"): + case hashString("spot"): + return true; + default: + return false; + } + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/OrbitCameraManipulatorConfig.hpp b/package/nitrogen/generated/shared/c++/OrbitCameraManipulatorConfig.hpp new file mode 100644 index 00000000..6b1f49ce --- /dev/null +++ b/package/nitrogen/generated/shared/c++/OrbitCameraManipulatorConfig.hpp @@ -0,0 +1,85 @@ +/// +/// OrbitCameraManipulatorConfig.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + + + +#include +#include + +namespace margelo::nitro::RNF { + + /** + * A struct which can be represented as a JavaScript object (OrbitCameraManipulatorConfig). + */ + struct OrbitCameraManipulatorConfig { + public: + std::optional> orbitHomePosition SWIFT_PRIVATE; + std::optional> targetPosition SWIFT_PRIVATE; + std::optional> upVector SWIFT_PRIVATE; + std::optional> zoomSpeed SWIFT_PRIVATE; + std::optional> orbitSpeed SWIFT_PRIVATE; + + public: + explicit OrbitCameraManipulatorConfig(std::optional> orbitHomePosition, std::optional> targetPosition, std::optional> upVector, std::optional> zoomSpeed, std::optional> orbitSpeed): orbitHomePosition(orbitHomePosition), targetPosition(targetPosition), upVector(upVector), zoomSpeed(zoomSpeed), orbitSpeed(orbitSpeed) {} + }; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ OrbitCameraManipulatorConfig <> JS OrbitCameraManipulatorConfig (object) + template <> + struct JSIConverter { + static inline OrbitCameraManipulatorConfig fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + jsi::Object obj = arg.asObject(runtime); + return OrbitCameraManipulatorConfig( + JSIConverter>>::fromJSI(runtime, obj.getProperty(runtime, "orbitHomePosition")), + JSIConverter>>::fromJSI(runtime, obj.getProperty(runtime, "targetPosition")), + JSIConverter>>::fromJSI(runtime, obj.getProperty(runtime, "upVector")), + JSIConverter>>::fromJSI(runtime, obj.getProperty(runtime, "zoomSpeed")), + JSIConverter>>::fromJSI(runtime, obj.getProperty(runtime, "orbitSpeed")) + ); + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, const OrbitCameraManipulatorConfig& arg) { + jsi::Object obj(runtime); + obj.setProperty(runtime, "orbitHomePosition", JSIConverter>>::toJSI(runtime, arg.orbitHomePosition)); + obj.setProperty(runtime, "targetPosition", JSIConverter>>::toJSI(runtime, arg.targetPosition)); + obj.setProperty(runtime, "upVector", JSIConverter>>::toJSI(runtime, arg.upVector)); + obj.setProperty(runtime, "zoomSpeed", JSIConverter>>::toJSI(runtime, arg.zoomSpeed)); + obj.setProperty(runtime, "orbitSpeed", JSIConverter>>::toJSI(runtime, arg.orbitSpeed)); + return obj; + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isObject()) { + return false; + } + jsi::Object obj = value.getObject(runtime); + if (!JSIConverter>>::canConvert(runtime, obj.getProperty(runtime, "orbitHomePosition"))) return false; + if (!JSIConverter>>::canConvert(runtime, obj.getProperty(runtime, "targetPosition"))) return false; + if (!JSIConverter>>::canConvert(runtime, obj.getProperty(runtime, "upVector"))) return false; + if (!JSIConverter>>::canConvert(runtime, obj.getProperty(runtime, "zoomSpeed"))) return false; + if (!JSIConverter>>::canConvert(runtime, obj.getProperty(runtime, "orbitSpeed"))) return false; + return true; + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/QualityLevel.hpp b/package/nitrogen/generated/shared/c++/QualityLevel.hpp new file mode 100644 index 00000000..35bf573b --- /dev/null +++ b/package/nitrogen/generated/shared/c++/QualityLevel.hpp @@ -0,0 +1,86 @@ +/// +/// QualityLevel.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +namespace margelo::nitro::RNF { + + /** + * An enum which can be represented as a JavaScript union (QualityLevel). + */ + enum class QualityLevel { + LOW SWIFT_NAME(low) = 0, + MEDIUM SWIFT_NAME(medium) = 1, + HIGH SWIFT_NAME(high) = 2, + ULTRA SWIFT_NAME(ultra) = 3, + } CLOSED_ENUM; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ QualityLevel <> JS QualityLevel (union) + template <> + struct JSIConverter { + static inline QualityLevel fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + std::string unionValue = JSIConverter::fromJSI(runtime, arg); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("LOW"): return QualityLevel::LOW; + case hashString("MEDIUM"): return QualityLevel::MEDIUM; + case hashString("HIGH"): return QualityLevel::HIGH; + case hashString("ULTRA"): return QualityLevel::ULTRA; + default: [[unlikely]] + throw std::runtime_error("Cannot convert \"" + unionValue + "\" to enum QualityLevel - invalid value!"); + } + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, QualityLevel arg) { + switch (arg) { + case QualityLevel::LOW: return JSIConverter::toJSI(runtime, "LOW"); + case QualityLevel::MEDIUM: return JSIConverter::toJSI(runtime, "MEDIUM"); + case QualityLevel::HIGH: return JSIConverter::toJSI(runtime, "HIGH"); + case QualityLevel::ULTRA: return JSIConverter::toJSI(runtime, "ULTRA"); + default: [[unlikely]] + throw std::runtime_error("Cannot convert QualityLevel to JS - invalid value: " + + std::to_string(static_cast(arg)) + "!"); + } + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isString()) { + return false; + } + std::string unionValue = JSIConverter::fromJSI(runtime, value); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("LOW"): + case hashString("MEDIUM"): + case hashString("HIGH"): + case hashString("ULTRA"): + return true; + default: + return false; + } + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/TextureFlags.hpp b/package/nitrogen/generated/shared/c++/TextureFlags.hpp new file mode 100644 index 00000000..f6d05ab3 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/TextureFlags.hpp @@ -0,0 +1,78 @@ +/// +/// TextureFlags.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +namespace margelo::nitro::RNF { + + /** + * An enum which can be represented as a JavaScript union (TextureFlags). + */ + enum class TextureFlags { + NONE SWIFT_NAME(none) = 0, + SRGB SWIFT_NAME(srgb) = 1, + } CLOSED_ENUM; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ TextureFlags <> JS TextureFlags (union) + template <> + struct JSIConverter { + static inline TextureFlags fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + std::string unionValue = JSIConverter::fromJSI(runtime, arg); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("none"): return TextureFlags::NONE; + case hashString("sRGB"): return TextureFlags::SRGB; + default: [[unlikely]] + throw std::runtime_error("Cannot convert \"" + unionValue + "\" to enum TextureFlags - invalid value!"); + } + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, TextureFlags arg) { + switch (arg) { + case TextureFlags::NONE: return JSIConverter::toJSI(runtime, "none"); + case TextureFlags::SRGB: return JSIConverter::toJSI(runtime, "sRGB"); + default: [[unlikely]] + throw std::runtime_error("Cannot convert TextureFlags to JS - invalid value: " + + std::to_string(static_cast(arg)) + "!"); + } + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isString()) { + return false; + } + std::string unionValue = JSIConverter::fromJSI(runtime, value); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("none"): + case hashString("sRGB"): + return true; + default: + return false; + } + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/TextureInfo.hpp b/package/nitrogen/generated/shared/c++/TextureInfo.hpp new file mode 100644 index 00000000..74e60738 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/TextureInfo.hpp @@ -0,0 +1,72 @@ +/// +/// TextureInfo.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + + + + + +namespace margelo::nitro::RNF { + + /** + * A struct which can be represented as a JavaScript object (TextureInfo). + */ + struct TextureInfo { + public: + double width SWIFT_PRIVATE; + double height SWIFT_PRIVATE; + + public: + explicit TextureInfo(double width, double height): width(width), height(height) {} + }; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ TextureInfo <> JS TextureInfo (object) + template <> + struct JSIConverter { + static inline TextureInfo fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + jsi::Object obj = arg.asObject(runtime); + return TextureInfo( + JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "width")), + JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "height")) + ); + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, const TextureInfo& arg) { + jsi::Object obj(runtime); + obj.setProperty(runtime, "width", JSIConverter::toJSI(runtime, arg.width)); + obj.setProperty(runtime, "height", JSIConverter::toJSI(runtime, arg.height)); + return obj; + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isObject()) { + return false; + } + jsi::Object obj = value.getObject(runtime); + if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "width"))) return false; + if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "height"))) return false; + return true; + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/TransparencyMode.hpp b/package/nitrogen/generated/shared/c++/TransparencyMode.hpp new file mode 100644 index 00000000..66d4f2ef --- /dev/null +++ b/package/nitrogen/generated/shared/c++/TransparencyMode.hpp @@ -0,0 +1,82 @@ +/// +/// TransparencyMode.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +namespace margelo::nitro::RNF { + + /** + * An enum which can be represented as a JavaScript union (TransparencyMode). + */ + enum class TransparencyMode { + DEFAULT SWIFT_NAME(default) = 0, + TWOPASSESONESIDE SWIFT_NAME(twopassesoneside) = 1, + TWOPASSESTWOSIDES SWIFT_NAME(twopassestwosides) = 2, + } CLOSED_ENUM; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ TransparencyMode <> JS TransparencyMode (union) + template <> + struct JSIConverter { + static inline TransparencyMode fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + std::string unionValue = JSIConverter::fromJSI(runtime, arg); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("default"): return TransparencyMode::DEFAULT; + case hashString("twoPassesOneSide"): return TransparencyMode::TWOPASSESONESIDE; + case hashString("twoPassesTwoSides"): return TransparencyMode::TWOPASSESTWOSIDES; + default: [[unlikely]] + throw std::runtime_error("Cannot convert \"" + unionValue + "\" to enum TransparencyMode - invalid value!"); + } + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, TransparencyMode arg) { + switch (arg) { + case TransparencyMode::DEFAULT: return JSIConverter::toJSI(runtime, "default"); + case TransparencyMode::TWOPASSESONESIDE: return JSIConverter::toJSI(runtime, "twoPassesOneSide"); + case TransparencyMode::TWOPASSESTWOSIDES: return JSIConverter::toJSI(runtime, "twoPassesTwoSides"); + default: [[unlikely]] + throw std::runtime_error("Cannot convert TransparencyMode to JS - invalid value: " + + std::to_string(static_cast(arg)) + "!"); + } + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isString()) { + return false; + } + std::string unionValue = JSIConverter::fromJSI(runtime, value); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("default"): + case hashString("twoPassesOneSide"): + case hashString("twoPassesTwoSides"): + return true; + default: + return false; + } + } + }; + +} // namespace margelo::nitro diff --git a/package/nitrogen/generated/shared/c++/Viewport.hpp b/package/nitrogen/generated/shared/c++/Viewport.hpp new file mode 100644 index 00000000..18be8000 --- /dev/null +++ b/package/nitrogen/generated/shared/c++/Viewport.hpp @@ -0,0 +1,80 @@ +/// +/// Viewport.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © 2024 Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + + + + + +namespace margelo::nitro::RNF { + + /** + * A struct which can be represented as a JavaScript object (Viewport). + */ + struct Viewport { + public: + double bottom SWIFT_PRIVATE; + double left SWIFT_PRIVATE; + double width SWIFT_PRIVATE; + double height SWIFT_PRIVATE; + + public: + explicit Viewport(double bottom, double left, double width, double height): bottom(bottom), left(left), width(width), height(height) {} + }; + +} // namespace margelo::nitro::RNF + +namespace margelo::nitro { + + using namespace margelo::nitro::RNF; + + // C++ Viewport <> JS Viewport (object) + template <> + struct JSIConverter { + static inline Viewport fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + jsi::Object obj = arg.asObject(runtime); + return Viewport( + JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "bottom")), + JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "left")), + JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "width")), + JSIConverter::fromJSI(runtime, obj.getProperty(runtime, "height")) + ); + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, const Viewport& arg) { + jsi::Object obj(runtime); + obj.setProperty(runtime, "bottom", JSIConverter::toJSI(runtime, arg.bottom)); + obj.setProperty(runtime, "left", JSIConverter::toJSI(runtime, arg.left)); + obj.setProperty(runtime, "width", JSIConverter::toJSI(runtime, arg.width)); + obj.setProperty(runtime, "height", JSIConverter::toJSI(runtime, arg.height)); + return obj; + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isObject()) { + return false; + } + jsi::Object obj = value.getObject(runtime); + if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "bottom"))) return false; + if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "left"))) return false; + if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "width"))) return false; + if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, "height"))) return false; + return true; + } + }; + +} // namespace margelo::nitro diff --git a/package/package.json b/package/package.json index d4a06118..7b7991a9 100644 --- a/package/package.json +++ b/package/package.json @@ -41,6 +41,7 @@ "build-bullet3": "scripts/build-bullet3.sh", "release": "yarn build-filament:release && yarn build-bullet3 && release-it && npm publish", "codegen": "react-native codegen", + "nitrogen": "nitro-codegen", "prepack": "cp ../README.md ./README.md", "postpack": "rm ./README.md" }, @@ -80,17 +81,21 @@ "publishConfig": { "registry": "https://registry.npmjs.org/" }, + "dependencies": { + "react-native-nitro-modules": "^0.11.0" + }, "devDependencies": { "@jamesacarr/eslint-formatter-github-actions": "^0.2.0", - "@react-native/eslint-config": "^0.73.1", + "@react-native/eslint-config": "^0.75.4", "@release-it/conventional-changelog": "^5.0.0", - "@types/react": "^18.2.44", + "@types/react": "^18.3.11", "eslint": "^8.51.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-prettier": "^5.0.1", + "nitro-codegen": "^0.11.0", "prettier": "^3.0.3", - "react": "18.2.0", - "react-native": "0.74.1", + "react": "18.3.1", + "react-native": "0.75.4", "react-native-builder-bob": "^0.20.0", "react-native-worklets-core": "^2.0.0-beta.4", "release-it": "^15.0.0", diff --git a/package/react-native-filament.podspec b/package/react-native-filament.podspec index a3253c4f..6b8962e8 100644 --- a/package/react-native-filament.podspec +++ b/package/react-native-filament.podspec @@ -157,6 +157,10 @@ Pod::Spec.new do |s| s.resources = ["assets/*"] end + # Add all files generated by Nitrogen + load 'nitrogen/generated/ios/RNF+autolinking.rb' + add_nitrogen_files(s) + # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0. # See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79. if respond_to?(:install_modules_dependencies, true) diff --git a/package/src/bullet/hooks/useBoxShape.ts b/package/src/bullet/hooks/useBoxShape.ts index 513693a2..0f0ed21c 100644 --- a/package/src/bullet/hooks/useBoxShape.ts +++ b/package/src/bullet/hooks/useBoxShape.ts @@ -1,5 +1,5 @@ import { useMemo } from 'react' -import { BoxShape } from '../types/Shapes' +import { BoxShape } from '../types/Shapes.nitro' import { BulletAPI } from '../bulletApi' export function useBoxShape(halfX: number, halfY: number, halfZ: number): BoxShape { diff --git a/package/src/bullet/hooks/useCylinderShape.ts b/package/src/bullet/hooks/useCylinderShape.ts index 25cfffc2..a6c4ffe3 100644 --- a/package/src/bullet/hooks/useCylinderShape.ts +++ b/package/src/bullet/hooks/useCylinderShape.ts @@ -1,5 +1,5 @@ import { useMemo } from 'react' -import { CylinderShape } from '../types/Shapes' +import { CylinderShape } from '../types/Shapes.nitro' import { BulletAPI } from '../bulletApi' import { Float3 } from '../../types' diff --git a/package/src/bullet/hooks/useRigidBody.ts b/package/src/bullet/hooks/useRigidBody.ts index d6e05f8d..f7a22715 100644 --- a/package/src/bullet/hooks/useRigidBody.ts +++ b/package/src/bullet/hooks/useRigidBody.ts @@ -1,10 +1,10 @@ import { Float3 } from '../../types/Math' import { BulletAPI } from '../bulletApi' -import { ActivationState, CollisionCallback, RigidBody } from '../types/RigidBody' +import { ActivationState, CollisionCallback, RigidBody } from '../types/RigidBody.nitro' import { useEffect, useState } from 'react' -import { BaseShape } from '../types/Shapes' -import { Mat4 } from '../../types/TransformManager' -import { DiscreteDynamicWorld } from '../types/DiscreteDynamicWorld' +import { BaseShape } from '../types/Shapes.nitro' +import { Mat4 } from '../../types/TransformManager.nitro' +import { DiscreteDynamicWorld } from '../types/DiscreteDynamicWorld.nitro' import { FilamentWorkletContext } from '../../native/FilamentProxy' export type RigidBodyProps = { diff --git a/package/src/bullet/hooks/useSphereShape.ts b/package/src/bullet/hooks/useSphereShape.ts index 2d0b72cf..9ab31bf5 100644 --- a/package/src/bullet/hooks/useSphereShape.ts +++ b/package/src/bullet/hooks/useSphereShape.ts @@ -1,5 +1,5 @@ import { useMemo } from 'react' -import { SphereShape } from '../types/Shapes' +import { SphereShape } from '../types/Shapes.nitro' import { BulletAPI } from '../bulletApi' export function useSphereShape(radius: number): SphereShape { diff --git a/package/src/bullet/hooks/useStaticPlaneShape.ts b/package/src/bullet/hooks/useStaticPlaneShape.ts index 5c72f0bb..f3fdc0c5 100644 --- a/package/src/bullet/hooks/useStaticPlaneShape.ts +++ b/package/src/bullet/hooks/useStaticPlaneShape.ts @@ -1,5 +1,5 @@ import { useMemo } from 'react' -import { StaticPlaneShape } from '../types/Shapes' +import { StaticPlaneShape } from '../types/Shapes.nitro' import { BulletAPI } from '../bulletApi' export function useStaticPlaneShape(normalX: number, normalY: number, normalZ: number, constant: number): StaticPlaneShape { diff --git a/package/src/bullet/index.ts b/package/src/bullet/index.ts index ec132f72..8939118d 100644 --- a/package/src/bullet/index.ts +++ b/package/src/bullet/index.ts @@ -7,10 +7,10 @@ export * from './hooks/useStaticPlaneShape' export * from './hooks/useSphereShape' // Types -export * from './types/DiscreteDynamicWorld' -export * from './types/RigidBody' -export * from './types/Shapes' -export * from './types/api' +export * from './types/DiscreteDynamicWorld.nitro' +export * from './types/RigidBody.nitro' +export * from './types/Shapes.nitro' +export * from './types/api.nitro' // Bullet API export { BulletAPI } from './bulletApi' diff --git a/package/src/bullet/types/DiscreteDynamicWorld.ts b/package/src/bullet/types/DiscreteDynamicWorld.nitro.ts similarity index 63% rename from package/src/bullet/types/DiscreteDynamicWorld.ts rename to package/src/bullet/types/DiscreteDynamicWorld.nitro.ts index aeb1e4e0..64c810b2 100644 --- a/package/src/bullet/types/DiscreteDynamicWorld.ts +++ b/package/src/bullet/types/DiscreteDynamicWorld.nitro.ts @@ -1,6 +1,7 @@ -import { RigidBody } from './RigidBody' +import { HybridObject } from 'react-native-nitro-modules' +import { RigidBody } from './RigidBody.nitro' -export interface DiscreteDynamicWorld { +export interface DiscreteDynamicWorld extends HybridObject<{ android: 'c++', ios: 'c++' }> { addRigidBody(rigidBody: RigidBody): void removeRigidBody(rigidBody: RigidBody): void /** diff --git a/package/src/bullet/types/RigidBody.ts b/package/src/bullet/types/RigidBody.nitro.ts similarity index 74% rename from package/src/bullet/types/RigidBody.ts rename to package/src/bullet/types/RigidBody.nitro.ts index 1a8e21e7..b713d19f 100644 --- a/package/src/bullet/types/RigidBody.ts +++ b/package/src/bullet/types/RigidBody.nitro.ts @@ -1,8 +1,10 @@ +import { HybridObject } from "react-native-nitro-modules" + export type ActivationState = 'active_state' | 'island_sleeping' | 'want_deactivation' | 'disable_deactivation' | 'disable_simulation' export type CollisionCallback = (thisBody: RigidBody, collidedWith: RigidBody) => void -export interface RigidBody { +export interface RigidBody extends HybridObject<{ android: 'c++', ios: 'c++' }> { setDamping(linearDamping: number, angularDamping: number): void friction: number activationState: ActivationState diff --git a/package/src/bullet/types/Shapes.ts b/package/src/bullet/types/Shapes.nitro.ts similarity index 67% rename from package/src/bullet/types/Shapes.ts rename to package/src/bullet/types/Shapes.nitro.ts index 855ae789..fbf640c4 100644 --- a/package/src/bullet/types/Shapes.ts +++ b/package/src/bullet/types/Shapes.nitro.ts @@ -1,6 +1,7 @@ +import { HybridObject } from 'react-native-nitro-modules' import { Float3 } from '../../types' -export interface BaseShape { +export interface BaseShape extends HybridObject<{ android: 'c++', ios: 'c++' }> { localScaling: Float3 margin: number } diff --git a/package/src/bullet/types/api.ts b/package/src/bullet/types/api.nitro.ts similarity index 81% rename from package/src/bullet/types/api.ts rename to package/src/bullet/types/api.nitro.ts index 61adea9c..29a21ba3 100644 --- a/package/src/bullet/types/api.ts +++ b/package/src/bullet/types/api.nitro.ts @@ -1,9 +1,10 @@ -import { Mat4 } from '../../types/TransformManager' -import { DiscreteDynamicWorld } from './DiscreteDynamicWorld' -import { CollisionCallback, RigidBody } from './RigidBody' -import { BaseShape, BoxShape, CylinderShape, SphereShape, StaticPlaneShape } from './Shapes' +import { HybridObject } from 'react-native-nitro-modules' +import { Mat4 } from '../../types/TransformManager.nitro' +import { DiscreteDynamicWorld } from './DiscreteDynamicWorld.nitro' +import { CollisionCallback, RigidBody } from './RigidBody.nitro' +import { BaseShape, BoxShape, CylinderShape, SphereShape, StaticPlaneShape } from './Shapes.nitro' -export interface BulletAPI { +export interface BulletAPI extends HybridObject<{ android: 'c++', ios: 'c++' }> { createDiscreteDynamicWorld(gravityX: number, gravityY: number, gravityZ: number): DiscreteDynamicWorld createBoxShape(halfX: number, halfY: number, halfZ: number): BoxShape /** diff --git a/package/src/hooks/useBuffer.ts b/package/src/hooks/useBuffer.ts index df1211c1..92910bda 100644 --- a/package/src/hooks/useBuffer.ts +++ b/package/src/hooks/useBuffer.ts @@ -1,5 +1,5 @@ import { useEffect, useMemo, useState } from 'react' -import { FilamentBuffer } from '../native/FilamentBuffer' +import { FilamentBuffer } from '../types/FilamentBuffer.nitro' import { FilamentProxy } from '../native/FilamentProxy' import { withCleanupScope } from '../utilities/withCleanupScope' import { Image } from 'react-native' diff --git a/package/src/hooks/useModel.ts b/package/src/hooks/useModel.ts index c9244554..352e7801 100644 --- a/package/src/hooks/useModel.ts +++ b/package/src/hooks/useModel.ts @@ -1,5 +1,5 @@ import { type BufferSource, useBuffer } from './useBuffer' -import { FilamentAsset } from '../types/FilamentAsset' +import { FilamentAsset } from '../types/FilamentAsset.nitro' import { useFilamentContext } from './useFilamentContext' import { useDisposableResource } from './useDisposableResource' import usePrevious from './usePrevious' diff --git a/package/src/hooks/useRecorder.ts b/package/src/hooks/useRecorder.ts index e9596882..5a0019fa 100644 --- a/package/src/hooks/useRecorder.ts +++ b/package/src/hooks/useRecorder.ts @@ -3,7 +3,7 @@ import { useFilamentContext } from './useFilamentContext' import { FilamentProxy } from '../native/FilamentProxy' import { useDisposableResource } from './useDisposableResource' import { useWorkletEffect } from './useWorkletEffect' -import { TFilamentRecorder } from '../types/FilamentRecorder' +import { TFilamentRecorder } from '../types/FilamentRecorder.nitro' import { SwapChain } from '../types' import { Logger } from '../utilities/logger/Logger' diff --git a/package/src/hooks/useRecorderRenderLoop.ts b/package/src/hooks/useRecorderRenderLoop.ts index 18c27b6e..11acb4ec 100644 --- a/package/src/hooks/useRecorderRenderLoop.ts +++ b/package/src/hooks/useRecorderRenderLoop.ts @@ -1,5 +1,5 @@ import { useMemo } from 'react' -import { TFilamentRecorder } from '../types/FilamentRecorder' +import { TFilamentRecorder } from '../types/FilamentRecorder.nitro' import { useWorkletEffect } from './useWorkletEffect' import { getWorkletDependencies } from 'react-native-worklets-core' diff --git a/package/src/hooks/useSkybox.ts b/package/src/hooks/useSkybox.ts index d5bc9d15..f9bb9c3c 100644 --- a/package/src/hooks/useSkybox.ts +++ b/package/src/hooks/useSkybox.ts @@ -1,5 +1,5 @@ import { useFilamentContext } from './useFilamentContext' -import { FilamentBuffer } from '../native/FilamentBuffer' +import { FilamentBuffer } from '../types/FilamentBuffer.nitro' import { useWorkletEffect } from './useWorkletEffect' export type SkyboxBaseOptions = { diff --git a/package/src/native/FilamentProxy.ts b/package/src/native/FilamentProxy.ts index f05162a8..1cd0240f 100644 --- a/package/src/native/FilamentProxy.ts +++ b/package/src/native/FilamentProxy.ts @@ -1,11 +1,11 @@ -import { FilamentBuffer } from './FilamentBuffer' -import type { Engine } from '../types/Engine' -import { FilamentView } from './FilamentViewTypes' -import type { BulletAPI } from '../bullet/types/api' +import { FilamentBuffer } from '../types/FilamentBuffer.nitro' +import type { Engine } from '../types/Engine.nitro' +import { FilamentView } from './FilamentViewTypes.nitro' +import type { BulletAPI } from '../bullet/types/api.nitro' import type { IWorkletContext } from 'react-native-worklets-core' import { EngineBackend, EngineConfig } from '../types' -import { TFilamentRecorder } from '../types/FilamentRecorder' -import { Choreographer } from '../types/Choreographer' +import { TFilamentRecorder } from '../types/FilamentRecorder.nitro' +import { Choreographer } from '../types/Choreographer.nitro' import { Dispatcher } from './Dispatcher' import { FilamentModule } from './FilamentModule' import { Worklets } from 'react-native-worklets-core' diff --git a/package/src/native/FilamentViewTypes.ts b/package/src/native/FilamentViewTypes.nitro.ts similarity index 67% rename from package/src/native/FilamentViewTypes.ts rename to package/src/native/FilamentViewTypes.nitro.ts index 1c0d0d66..203f6732 100644 --- a/package/src/native/FilamentViewTypes.ts +++ b/package/src/native/FilamentViewTypes.nitro.ts @@ -1,13 +1,13 @@ +import { HybridObject } from 'react-native-nitro-modules' import { Choreographer } from '../types' -import { Listener } from '../types/Listener' -import { Dispatcher } from './Dispatcher' +import { Listener } from '../types/Listener.nitro' -export interface Surface { +export interface Surface extends HybridObject<{ android: 'c++', ios: 'c++' }> { readonly width: number readonly height: number } -export interface SurfaceProvider { +export interface SurfaceProvider extends HybridObject<{ android: 'c++', ios: 'c++' }> { /** * @private */ @@ -18,12 +18,12 @@ export interface SurfaceProvider { * called almost immediately after the view is created). * @private */ - addOnSurfaceCreatedListener(listener: (surface: Surface) => void, dispatcher: Dispatcher): Listener + addOnSurfaceCreatedListener(listener: (surface: Surface) => void): Listener /** * @private */ - addOnSurfaceDestroyedListener(listener: () => void, dispatcher: Dispatcher): Listener + addOnSurfaceDestroyedListener(listener: () => void): Listener } export interface FilamentView { diff --git a/package/src/react/EntitySelector.tsx b/package/src/react/EntitySelector.tsx index 7b1a2458..ed47140b 100644 --- a/package/src/react/EntitySelector.tsx +++ b/package/src/react/EntitySelector.tsx @@ -4,7 +4,7 @@ import { Entity, extractTransformationProps, TextureFlags, TransformationProps } import { useFilamentContext } from '../hooks/useFilamentContext' import React from 'react' import { useApplyTransformations } from '../hooks/internal/useApplyTransformations' -import { FilamentBuffer } from '../native/FilamentBuffer' +import { FilamentBuffer } from '../types/FilamentBuffer.nitro' import { useWorkletEffect } from '../hooks/useWorkletEffect' export type SelectorProps = diff --git a/package/src/react/FilamentView.tsx b/package/src/react/FilamentView.tsx index 84afe747..dd51a391 100644 --- a/package/src/react/FilamentView.tsx +++ b/package/src/react/FilamentView.tsx @@ -4,8 +4,8 @@ import FilamentNativeView, { type FilamentViewNativeType, type NativeProps } fro import { reportWorkletError, wrapWithErrorHandler } from '../ErrorUtils' import { FilamentContext } from '../hooks/useFilamentContext' import { RenderCallback, SwapChain } from 'react-native-filament' -import type { SurfaceProvider, FilamentView as RNFFilamentView } from '../native/FilamentViewTypes' -import { Listener } from '../types/Listener' +import type { SurfaceProvider, FilamentView as RNFFilamentView } from '../native/FilamentViewTypes.nitro' +import { Listener } from '../types/Listener.nitro' import { findNodeHandle, GestureResponderEvent } from 'react-native' import { Worklets } from 'react-native-worklets-core' import { getLogger } from '../utilities/logger/Logger' @@ -258,6 +258,7 @@ export class FilamentView extends React.PureComponent { return null } }) + console.log({ swapChain: swapChain }) if (swapChain == null) { isSurfaceAlive.value = false diff --git a/package/src/react/Skybox.tsx b/package/src/react/Skybox.tsx index 610cb8c0..23b45018 100644 --- a/package/src/react/Skybox.tsx +++ b/package/src/react/Skybox.tsx @@ -1,7 +1,7 @@ import React from 'react' import { BufferSource, useBuffer } from '../hooks/useBuffer' import { useSkybox } from '../hooks/useSkybox' -import { FilamentBuffer } from '../native/FilamentBuffer' +import { FilamentBuffer } from '../types/FilamentBuffer.nitro' export type BaseProps = { /** diff --git a/package/src/types/Animator.ts b/package/src/types/Animator.nitro.ts similarity index 94% rename from package/src/types/Animator.ts rename to package/src/types/Animator.nitro.ts index ae6d1130..2b315b65 100644 --- a/package/src/types/Animator.ts +++ b/package/src/types/Animator.nitro.ts @@ -1,4 +1,5 @@ -import { FilamentInstance } from './FilamentInstance' +import { HybridObject } from 'react-native-nitro-modules' +import { FilamentInstance } from './FilamentInstance.nitro' /** * Updates matrices according to glTF animation and skin definitions. @@ -9,7 +10,7 @@ import { FilamentInstance } from './FilamentInstance' * * For a usage example, see the documentation for AssetLoader. */ -export interface Animator { +export interface Animator extends HybridObject<{ android: 'c++', ios: 'c++' }> { /** * Applies rotation, translation, and scale to entities that have been targeted by the given * animation definition. Uses filament::TransformManager. diff --git a/package/src/types/Boxes.ts b/package/src/types/Boxes.nitro.ts similarity index 84% rename from package/src/types/Boxes.ts rename to package/src/types/Boxes.nitro.ts index bb8d96e0..262362a9 100644 --- a/package/src/types/Boxes.ts +++ b/package/src/types/Boxes.nitro.ts @@ -1,6 +1,7 @@ +import { HybridObject } from 'react-native-nitro-modules' import { Float3 } from './Math' -export interface BaseBox { +export interface BaseBox extends HybridObject<{ android: 'c++', ios: 'c++' }> { /** * The center of the box. */ @@ -32,7 +33,7 @@ export interface Box extends BaseBox { * @private * Note: this property isn't set on the object and is just for type checking */ - _type: 'Box' + _type: 1 } /** @@ -43,5 +44,5 @@ export interface AABB extends BaseBox { * @private * Note: this property isn't set on the object and is just for type checking */ - _type: 'AABB' + _type: 2 } diff --git a/package/src/types/Camera.ts b/package/src/types/Camera.nitro.ts similarity index 97% rename from package/src/types/Camera.ts rename to package/src/types/Camera.nitro.ts index 088a772a..fb56071e 100644 --- a/package/src/types/Camera.ts +++ b/package/src/types/Camera.nitro.ts @@ -1,6 +1,6 @@ -import { PointerHolder } from './PointerHolder' +import { PointerHolder } from './PointerHolder.nitro' import { Float3 } from './Math' -import { CameraManipulator } from './CameraManipulator' +import { CameraManipulator } from './CameraManipulator.nitro' /** * Camera represents the eye through which the scene is viewed. diff --git a/package/src/types/CameraManipulator.ts b/package/src/types/CameraManipulator.nitro.ts similarity index 98% rename from package/src/types/CameraManipulator.ts rename to package/src/types/CameraManipulator.nitro.ts index 45a9635a..d371da5f 100644 --- a/package/src/types/CameraManipulator.ts +++ b/package/src/types/CameraManipulator.nitro.ts @@ -1,4 +1,4 @@ -import { PointerHolder } from './PointerHolder' +import { PointerHolder } from './PointerHolder.nitro' import { Float2, Float3 } from './Math' /** diff --git a/package/src/types/Choreographer.ts b/package/src/types/Choreographer.nitro.ts similarity index 73% rename from package/src/types/Choreographer.ts rename to package/src/types/Choreographer.nitro.ts index 0dbf2002..44eeee31 100644 --- a/package/src/types/Choreographer.ts +++ b/package/src/types/Choreographer.nitro.ts @@ -1,7 +1,7 @@ -import { Listener } from './Listener' -import { PointerHolder } from './PointerHolder' +import { Listener } from './Listener.nitro' +import { PointerHolder } from './PointerHolder.nitro' -export type FrameInfo = { +export interface FrameInfo { /** * The current timestamp in nanoseconds. */ @@ -20,6 +20,7 @@ export type FrameInfo = { export type RenderCallback = (frameInfo: FrameInfo) => void +// TODO: I think i want to implement this as kotlin / swift export interface Choreographer extends PointerHolder { start(): void stop(): void diff --git a/package/src/types/Engine.ts b/package/src/types/Engine.nitro.ts similarity index 81% rename from package/src/types/Engine.ts rename to package/src/types/Engine.nitro.ts index 05bf297d..1dd53504 100644 --- a/package/src/types/Engine.ts +++ b/package/src/types/Engine.nitro.ts @@ -1,19 +1,19 @@ -import { RNFCamera } from './Camera' -import { SurfaceProvider } from '../native/FilamentViewTypes' -import { Renderer } from './Renderer' -import { Scene } from './Scene' -import { View } from './View' -import { FilamentBuffer } from '../native/FilamentBuffer' -import { FilamentAsset } from './FilamentAsset' -import { TransformManager } from './TransformManager' -import { RenderableManager } from './RenderableManager' -import { Material } from './Material' -import { LightManager } from './LightManager' -import { PointerHolder } from './PointerHolder' -import { TFilamentRecorder } from './FilamentRecorder' -import { SwapChain } from './SwapChain' -import { NameComponentManager } from './NameComponentManager' -import { CameraManipulator, OrbitCameraManipulatorConfig } from './CameraManipulator' +import { RNFCamera } from './Camera.nitro' +import { SurfaceProvider } from '../native/FilamentViewTypes.nitro' +import { Renderer } from './Renderer.nitro' +import { Scene } from './Scene.nitro' +import { View } from './View.nitro' +import { FilamentBuffer } from './FilamentBuffer.nitro' +import { FilamentAsset } from './FilamentAsset.nitro' +import { TransformManager } from './TransformManager.nitro' +import { RenderableManager } from './RenderableManager.nitro' +import { Material } from './Material.nitro' +import { LightManager } from './LightManager.nitro' +import { PointerHolder } from './PointerHolder.nitro' +import { TFilamentRecorder } from './FilamentRecorder.nitro' +import { SwapChain } from './SwapChain.nitro' +import { NameComponentManager } from './NameComponentManager.nitro' +import { CameraManipulator, OrbitCameraManipulatorConfig } from './CameraManipulator.nitro' export interface Engine extends PointerHolder { setSurfaceProvider(surfaceProvider: SurfaceProvider): void @@ -23,11 +23,6 @@ export interface Engine extends PointerHolder { createSwapChainForRecorder(recorder: TFilamentRecorder): SwapChain setSwapChain(swapChain: SwapChain): void - /** - * Given a {@linkcode FilamentBuffer} (e.g. from a .glb file), load the asset into the engine. - */ - loadAsset(buffer: FilamentBuffer): FilamentAsset - /** * Given a @see FilamentBuffer (e.g. from a .glb file), load the asset into the engine. * It will create multiple instances of the asset. @@ -97,7 +92,7 @@ export interface Engine extends PointerHolder { * Scale factor applied to the skybox texel values such that * the result is in lux, or lumen/m^2 (default = 30000) **/ - createAndSetSkyboxByColor: (colorInHex: string, showSun: boolean | undefined, envIntensity: number | undefined) => void + createAndSetSkyboxByColor(colorInHex: string, showSun: boolean | undefined, envIntensity: number | undefined): void /** * Skybox @@ -115,12 +110,12 @@ export interface Engine extends PointerHolder { * Scale factor applied to the skybox texel values such that * the result is in lux, or lumen/m^2 (default = 30000) **/ - createAndSetSkyboxByTexture: (buffer: FilamentBuffer, showSun: boolean | undefined, envIntensity: number | undefined) => void + createAndSetSkyboxByTexture(buffer: FilamentBuffer, showSun: boolean | undefined, envIntensity: number | undefined): void /** * Removed the skybox from the scene. */ - clearSkybox: () => void + clearSkybox(): void /** * Enables or disables automatic instancing of render primitives. Instancing of render diff --git a/package/src/types/Entity.ts b/package/src/types/Entity.nitro.ts similarity index 51% rename from package/src/types/Entity.ts rename to package/src/types/Entity.nitro.ts index cd93f2b6..3f124168 100644 --- a/package/src/types/Entity.ts +++ b/package/src/types/Entity.nitro.ts @@ -1,8 +1,10 @@ +import { HybridObject } from "react-native-nitro-modules"; + /** * Everything inside the scene is an entity. * Entities are managed by the EntityManager. */ -export interface Entity { +export interface Entity extends HybridObject<{ android: 'c++', ios: 'c++' }> { id: number } diff --git a/package/src/types/FilamentAsset.ts b/package/src/types/FilamentAsset.nitro.ts similarity index 81% rename from package/src/types/FilamentAsset.ts rename to package/src/types/FilamentAsset.nitro.ts index bb8395e2..60cfa0b9 100644 --- a/package/src/types/FilamentAsset.ts +++ b/package/src/types/FilamentAsset.nitro.ts @@ -1,13 +1,13 @@ -import { Entity } from './Entity' -import { FilamentInstance } from './FilamentInstance' +import { Entity } from './Entity.nitro' +import { FilamentInstance } from './FilamentInstance.nitro' import { FilamentInstanceBase } from './FilamentInstanceBase' -import { PointerHolder } from './PointerHolder' +import { PointerHolder } from './PointerHolder.nitro' export interface FilamentAsset extends PointerHolder, FilamentInstanceBase { /** * Gets the list of entities in the asset that have renderable components. */ - getRenderableEntities: () => Entity[] + getRenderableEntities(): Entity[] /** * Gets the number of entities returned by renderableEntities. diff --git a/package/src/native/FilamentBuffer.ts b/package/src/types/FilamentBuffer.nitro.ts similarity index 51% rename from package/src/native/FilamentBuffer.ts rename to package/src/types/FilamentBuffer.nitro.ts index 39304e91..983c8dfd 100644 --- a/package/src/native/FilamentBuffer.ts +++ b/package/src/types/FilamentBuffer.nitro.ts @@ -1,3 +1,3 @@ -import { PointerHolder } from '../types/PointerHolder' +import { PointerHolder } from './PointerHolder.nitro' export interface FilamentBuffer extends PointerHolder {} diff --git a/package/src/types/FilamentInstance.ts b/package/src/types/FilamentInstance.nitro.ts similarity index 69% rename from package/src/types/FilamentInstance.ts rename to package/src/types/FilamentInstance.nitro.ts index 36499767..bd13873b 100644 --- a/package/src/types/FilamentInstance.ts +++ b/package/src/types/FilamentInstance.nitro.ts @@ -1,3 +1,4 @@ +import { HybridObject } from 'react-native-nitro-modules'; import { FilamentInstanceBase } from './FilamentInstanceBase' /** @@ -9,4 +10,4 @@ import { FilamentInstanceBase } from './FilamentInstanceBase' * Renderable components. * */ -export interface FilamentInstance extends FilamentInstanceBase {} +export interface FilamentInstance extends FilamentInstanceBase, HybridObject<{ android: 'c++', ios: 'c++' }> {} diff --git a/package/src/types/FilamentInstanceBase.ts b/package/src/types/FilamentInstanceBase.ts index ff70980d..a949df6d 100644 --- a/package/src/types/FilamentInstanceBase.ts +++ b/package/src/types/FilamentInstanceBase.ts @@ -1,7 +1,7 @@ -import { AABB } from './Boxes' -import { Animator } from './Animator' -import { Entity } from './Entity' -import { NameComponentManager } from './NameComponentManager' +import { AABB } from './Boxes.nitro' +import { Animator } from './Animator.nitro' +import { Entity } from './Entity.nitro' +import { NameComponentManager } from './NameComponentManager.nitro' export interface FilamentInstanceBase { /** @@ -19,7 +19,7 @@ export interface FilamentInstanceBase { * Gets the list of entities, one for each glTF node. All of these have a Transform component. * Some of the returned entities may also have a Renderable component and/or a Light component. */ - getEntities: () => Entity[] + getEntities(): Entity[] /** * Gets the bounding box computed from the supplied min / max values in glTF accessors. diff --git a/package/src/types/FilamentRecorder.ts b/package/src/types/FilamentRecorder.nitro.ts similarity index 88% rename from package/src/types/FilamentRecorder.ts rename to package/src/types/FilamentRecorder.nitro.ts index 7f1eeaf9..341036ab 100644 --- a/package/src/types/FilamentRecorder.ts +++ b/package/src/types/FilamentRecorder.nitro.ts @@ -1,6 +1,8 @@ -import { Listener } from './Listener' +import { HybridObject } from 'react-native-nitro-modules' +import { Listener } from './Listener.nitro' -export interface TFilamentRecorder { +// TODO: this one's probably also better platform specific + rewrite +export interface TFilamentRecorder extends HybridObject<{ android: 'c++', ios: 'c++' }> { /** * The width of the video that is being recorded, in pixels. */ diff --git a/package/src/types/LightConfig.ts b/package/src/types/LightConfig.ts index 5fcd3807..a2342285 100644 --- a/package/src/types/LightConfig.ts +++ b/package/src/types/LightConfig.ts @@ -1,5 +1,7 @@ import { Float3 } from './Math' +export type LightType = 'directional' | 'sun' | 'point' | 'focused_point' | 'spot' + export type BaseLightConfig = { /** * Sets the initial color of a light. @@ -44,6 +46,8 @@ export type BaseLightConfig = { * Whether this Light casts shadows (disabled by default) */ castShadows?: boolean + + type: LightType } export type SpotLightExtraConfig = { @@ -52,7 +56,7 @@ export type SpotLightExtraConfig = { * - FOCUSED_SPOT, //!< Physically correct spot light. * - SPOT, //!< Spot light with coupling of outer cone and illumination disabled. */ - type: 'spot' | 'point' | 'focused_point' + type: LightType /** * Set the falloff distance for point lights and spot lights. @@ -170,19 +174,4 @@ export type SpotLightExtraConfig = { * incurring a significant overhead. * */ -export type LightConfig = BaseLightConfig & - ( - | { - /** - * - SUN, //!< Directional light that also draws a sun's disk in the sky. - * - DIRECTIONAL, //!< Directional light, emits light in a given direction. - * - POINT, //!< Point light, emits light from a position, in all directions. - * - FOCUSED_SPOT, //!< Physically correct spot light. - * - SPOT, //!< Spot light with coupling of outer cone and illumination disabled. - */ - type: 'directional' | 'sun' - } - | SpotLightExtraConfig - ) - -export type LightType = LightConfig['type'] +export type LightConfig = BaseLightConfig & SpotLightExtraConfig diff --git a/package/src/types/LightManager.ts b/package/src/types/LightManager.nitro.ts similarity index 97% rename from package/src/types/LightManager.ts rename to package/src/types/LightManager.nitro.ts index 84e84b8e..e5b0f406 100644 --- a/package/src/types/LightManager.ts +++ b/package/src/types/LightManager.nitro.ts @@ -1,6 +1,6 @@ -import { Entity } from './Entity' +import { Entity } from './Entity.nitro' import { LightConfig, LightType, SpotLightExtraConfig } from './LightConfig' -import { PointerHolder } from './PointerHolder' +import { PointerHolder } from './PointerHolder.nitro' import { Float3 } from './Math' /** diff --git a/package/src/types/Listener.nitro.ts b/package/src/types/Listener.nitro.ts new file mode 100644 index 00000000..24a7556f --- /dev/null +++ b/package/src/types/Listener.nitro.ts @@ -0,0 +1,5 @@ +import { HybridObject } from "react-native-nitro-modules"; + +export interface Listener extends HybridObject<{ ios: 'c++'; android: 'c++' }> { + remove(): void +} diff --git a/package/src/types/Listener.ts b/package/src/types/Listener.ts deleted file mode 100644 index 739e1292..00000000 --- a/package/src/types/Listener.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface Listener { - remove(): void -} diff --git a/package/src/types/Material.ts b/package/src/types/Material.nitro.ts similarity index 78% rename from package/src/types/Material.ts rename to package/src/types/Material.nitro.ts index b6c91058..1b2b7415 100644 --- a/package/src/types/Material.ts +++ b/package/src/types/Material.nitro.ts @@ -1,7 +1,7 @@ -import type { MaterialInstance } from './MaterialInstance' -import type { PointerHolder } from './PointerHolder' -import type { RenderableManager } from './RenderableManager' -import type { FilamentBuffer } from '../native/FilamentBuffer' +import type { MaterialInstance } from './MaterialInstance.nitro' +import type { PointerHolder } from './PointerHolder.nitro' +import type { RenderableManager } from './RenderableManager.nitro' +import type { FilamentBuffer } from './FilamentBuffer.nitro' import type { TextureFlags } from './TextureFlags' import type { Float3, Float4, Mat3f } from './Math' diff --git a/package/src/types/MaterialInstance.ts b/package/src/types/MaterialInstance.nitro.ts similarity index 85% rename from package/src/types/MaterialInstance.ts rename to package/src/types/MaterialInstance.nitro.ts index 513c532a..a831bcab 100644 --- a/package/src/types/MaterialInstance.ts +++ b/package/src/types/MaterialInstance.nitro.ts @@ -1,10 +1,11 @@ +import { HybridObject } from 'react-native-nitro-modules' import { Float3, Float4, Mat3f } from './Math' export type CullingMode = 'none' | 'back' | 'front' | 'frontAndBack' export type TransparencyMode = 'default' | 'twoPassesOneSide' | 'twoPassesTwoSides' -export interface MaterialInstance { +export interface MaterialInstance extends HybridObject<{ android: 'c++', ios: 'c++' }> { setCullingMode(mode: CullingMode): void setTransparencyMode(mode: TransparencyMode): void changeAlpha(alpha: number): void diff --git a/package/src/types/NameComponentManager.ts b/package/src/types/NameComponentManager.nitro.ts similarity index 68% rename from package/src/types/NameComponentManager.ts rename to package/src/types/NameComponentManager.nitro.ts index b57dccc3..65875301 100644 --- a/package/src/types/NameComponentManager.ts +++ b/package/src/types/NameComponentManager.nitro.ts @@ -1,5 +1,5 @@ -import { Entity } from './Entity' -import { PointerHolder } from './PointerHolder' +import { Entity } from './Entity.nitro' +import { PointerHolder } from './PointerHolder.nitro' /** * The name component manager is responsible for managing the names of entities. diff --git a/package/src/types/PointerHolder.ts b/package/src/types/PointerHolder.nitro.ts similarity index 90% rename from package/src/types/PointerHolder.ts rename to package/src/types/PointerHolder.nitro.ts index 8d86df9e..ce65136e 100644 --- a/package/src/types/PointerHolder.ts +++ b/package/src/types/PointerHolder.nitro.ts @@ -1,3 +1,5 @@ +import { HybridObject } from 'react-native-nitro-modules' + /** * Represents a holder of any native pointer. * @@ -6,7 +8,7 @@ * * Instances of {@linkcode PointerHolder} are always backed by a `jsi::HostObject`. */ -export interface PointerHolder { +export interface PointerHolder extends HybridObject<{ ios: 'c++'; android: 'c++' }> { /** * Manually release this reference to the native pointer. * This will ensure that JS will no longer hold a strong reference, diff --git a/package/src/types/RenderableManager.ts b/package/src/types/RenderableManager.nitro.ts similarity index 91% rename from package/src/types/RenderableManager.ts rename to package/src/types/RenderableManager.nitro.ts index 9b6dbf5b..309707a9 100644 --- a/package/src/types/RenderableManager.ts +++ b/package/src/types/RenderableManager.nitro.ts @@ -1,13 +1,13 @@ -import { FilamentBuffer } from '../native/FilamentBuffer' -import { Entity } from './Entity' -import { FilamentAsset } from './FilamentAsset' -import { FilamentInstance } from './FilamentInstance' -import type { Material } from './Material' -import type { MaterialInstance } from './MaterialInstance' -import { PointerHolder } from './PointerHolder' +import { FilamentBuffer } from './FilamentBuffer.nitro' +import { Entity } from './Entity.nitro' +import { FilamentAsset } from './FilamentAsset.nitro' +import { FilamentInstance } from './FilamentInstance.nitro' +import type { Material } from './Material.nitro' +import type { MaterialInstance } from './MaterialInstance.nitro' +import { PointerHolder } from './PointerHolder.nitro' import { Float3 } from './Math' import { TextureFlags } from './TextureFlags' -import { Box } from './Boxes' +import { Box } from './Boxes.nitro' /** * Factory and manager for \em renderables, which are entities that can be drawn. diff --git a/package/src/types/Renderer.ts b/package/src/types/Renderer.nitro.ts similarity index 81% rename from package/src/types/Renderer.ts rename to package/src/types/Renderer.nitro.ts index 955ab742..71d69535 100644 --- a/package/src/types/Renderer.ts +++ b/package/src/types/Renderer.nitro.ts @@ -1,6 +1,6 @@ -import { PointerHolder } from './PointerHolder' -import { SwapChain } from './SwapChain' -import { View } from './View' +import { PointerHolder } from './PointerHolder.nitro' +import { SwapChain } from './SwapChain.nitro' +import { View } from './View.nitro' /** * Use FrameRateOptions to set the desired frame rate and control how quickly the system @@ -48,21 +48,21 @@ export interface FrameRateOptions { * A `Renderer` generates drawing commands from a `View`, itself containing a Scene description. */ export interface Renderer extends PointerHolder { - setFrameRateOptions: (options: FrameRateOptions) => void + setFrameRateOptions(options: FrameRateOptions): void /** * Whether the View should be cleared using the clearColor. Use this if translucent * View will be drawn, for instance. * @default true */ - setClearContent: (clear: boolean) => void + setClearContent(clear: boolean): void /** * Set the current Frame's output presentation timestamp, in milliseconds. */ - setPresentationTime: (timestamp: number) => void + setPresentationTime(timestamp: number): void - beginFrame: (swapChain: SwapChain, timestamp: number) => boolean - render: (view: View) => void - endFrame: () => void + beginFrame(swapChain: SwapChain, timestamp: number): boolean + render(view: View): void + endFrame(): void } diff --git a/package/src/types/Scene.ts b/package/src/types/Scene.nitro.ts similarity index 91% rename from package/src/types/Scene.ts rename to package/src/types/Scene.nitro.ts index eaa6e078..c0b99e72 100644 --- a/package/src/types/Scene.ts +++ b/package/src/types/Scene.nitro.ts @@ -1,6 +1,6 @@ -import type { Entity } from './Entity' -import type { FilamentAsset } from './FilamentAsset' -import { PointerHolder } from './PointerHolder' +import type { Entity } from './Entity.nitro' +import type { FilamentAsset } from './FilamentAsset.nitro' +import { PointerHolder } from './PointerHolder.nitro' /** * A `Scene` is a flat container of `RenderableManager` and `LightManager` diff --git a/package/src/types/SwapChain.ts b/package/src/types/SwapChain.nitro.ts similarity index 96% rename from package/src/types/SwapChain.ts rename to package/src/types/SwapChain.nitro.ts index 512059e8..e7704a81 100644 --- a/package/src/types/SwapChain.ts +++ b/package/src/types/SwapChain.nitro.ts @@ -1,3 +1,5 @@ +import { PointerHolder } from './PointerHolder.nitro' + /** * A `SwapChain` represents an Operating System's native renderable surface. * @@ -36,7 +38,4 @@ * * @see Engine */ - -import { PointerHolder } from './PointerHolder' - export interface SwapChain extends PointerHolder {} diff --git a/package/src/types/TransformManager.ts b/package/src/types/TransformManager.nitro.ts similarity index 94% rename from package/src/types/TransformManager.ts rename to package/src/types/TransformManager.nitro.ts index 6608b647..5a008b45 100644 --- a/package/src/types/TransformManager.ts +++ b/package/src/types/TransformManager.nitro.ts @@ -1,13 +1,14 @@ import { RigidBody } from '../bullet' -import { Entity } from './Entity' -import { PointerHolder } from './PointerHolder' +import { Entity } from './Entity.nitro' +import { PointerHolder } from './PointerHolder.nitro' import { Float3 } from './Math' -import { AABB } from './Boxes' +import { AABB } from './Boxes.nitro' +import { HybridObject } from 'react-native-nitro-modules' /** * A 4x4 column-major matrix. */ -export interface Mat4 { +export interface Mat4 extends HybridObject<{ ios: 'c++', android: 'c++' }> { readonly data: number[] readonly scale: Float3 readonly translation: Float3 diff --git a/package/src/types/View.ts b/package/src/types/View.nitro.ts similarity index 91% rename from package/src/types/View.ts rename to package/src/types/View.nitro.ts index 57be54db..f65b550d 100644 --- a/package/src/types/View.ts +++ b/package/src/types/View.nitro.ts @@ -1,8 +1,8 @@ -import { RNFCamera } from './Camera' -import { Entity } from './Entity' +import { RNFCamera } from './Camera.nitro' +import { Entity } from './Entity.nitro' import { AmbientOcclusionOptions, DynamicResolutionOptions } from './Options' -import { PointerHolder } from './PointerHolder' -import { Scene } from './Scene' +import { PointerHolder } from './PointerHolder.nitro' +import { Scene } from './Scene.nitro' import { Float3 } from './Math' export interface Viewport { @@ -12,6 +12,10 @@ export interface Viewport { height: number } +export type AntiAliasingType = 'none' | 'FXAA' + +export type DitheringType = 'none' | 'temporal' + /** * Encompasses all the state needed for rendering a {@link Scene}. * @@ -92,14 +96,14 @@ export interface View extends PointerHolder { * * @default 'FXAA' */ - antiAliasing: 'none' | 'FXAA' + antiAliasing: AntiAliasingType /** * Enables or disables dithering in the post-processing stage. Enabled by default. * * @default 'temporal' */ - dithering: 'none' | 'temporal' + dithering: DitheringType // Internal helper to create HostObject options object createAmbientOcclusionOptions(): AmbientOcclusionOptions diff --git a/package/src/types/index.ts b/package/src/types/index.ts index 510510ca..4da90136 100644 --- a/package/src/types/index.ts +++ b/package/src/types/index.ts @@ -1,28 +1,28 @@ -export * from './Camera' -export * from './Engine' +export * from './Camera.nitro' +export * from './Engine.nitro' export * from './EngineConfig' -export * from './Entity' -export * from './Renderer' -export * from './Scene' -export * from './View' -export * from './SwapChain' +export * from './Entity.nitro' +export * from './Renderer.nitro' +export * from './Scene.nitro' +export * from './View.nitro' +export * from './SwapChain.nitro' export * from './Math' -export { Animator as FilamentAnimator } from './Animator' +export { Animator as FilamentAnimator } from './Animator.nitro' export * from './FilamentInstanceBase' -export * from './FilamentAsset' -export * from './FilamentInstance' -export * from './RenderableManager' -export * from './Material' -export * from './MaterialInstance' -export * from './TransformManager' -export * from './Boxes' +export * from './FilamentAsset.nitro' +export * from './FilamentInstance.nitro' +export * from './RenderableManager.nitro' +export * from './Material.nitro' +export * from './MaterialInstance.nitro' +export * from './TransformManager.nitro' +export * from './Boxes.nitro' export * from './LightConfig' export * from './Options' -export * from './LightManager' +export * from './LightManager.nitro' export * from './Color' export * from './TextureFlags' -export * from './Choreographer' -export * from './NameComponentManager' -export * from './CameraManipulator' -export * from './FilamentRecorder' +export * from './Choreographer.nitro' +export * from './NameComponentManager.nitro' +export * from './CameraManipulator.nitro' +export * from './FilamentRecorder.nitro' export * from './TransformProps' diff --git a/package/src/utilities/makeAmbientOcclusionHostObject.ts b/package/src/utilities/makeAmbientOcclusionHostObject.ts index 5a4ea4c3..ec7b8db0 100644 --- a/package/src/utilities/makeAmbientOcclusionHostObject.ts +++ b/package/src/utilities/makeAmbientOcclusionHostObject.ts @@ -1,5 +1,5 @@ import { AmbientOcclusionOptions } from '../types/Options' -import { View } from '../types/View' +import { View } from '../types/View.nitro' // We need to wrap our options in a host object to be able to pass them to the view export function makeAmbientOcclusionHostObject(view: View, options: AmbientOcclusionOptions): AmbientOcclusionOptions { diff --git a/package/src/utilities/makeDynamicResolutionHostObject.ts b/package/src/utilities/makeDynamicResolutionHostObject.ts index 2769cbc5..a065063c 100644 --- a/package/src/utilities/makeDynamicResolutionHostObject.ts +++ b/package/src/utilities/makeDynamicResolutionHostObject.ts @@ -1,5 +1,5 @@ import { DynamicResolutionOptions } from '../types/Options' -import { View } from '../types/View' +import { View } from '../types/View.nitro' // We need to wrap our options in a host object to be able to pass them to the view export function makeDynamicResolutionHostObject(view: View, options: DynamicResolutionOptions): DynamicResolutionOptions { diff --git a/package/yarn.lock b/package/yarn.lock index 725ee14a..749dde7d 100644 --- a/package/yarn.lock +++ b/package/yarn.lock @@ -62,7 +62,17 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": +"@babel/code-frame@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/code-frame@npm:7.25.7" + dependencies: + "@babel/highlight": ^7.25.7 + picocolors: ^1.0.0 + checksum: f235cdf9c5d6f172898a27949bd63731c5f201671f77bcf4c2ad97229bc462d89746c1a7f5671a132aecff5baf43f3d878b93a7ecc6aa71f9612d2b51270c53e + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" checksum: 06ce244cda5763295a0ea924728c09bae57d35713b675175227278896946f922a63edf803c322f855a3878323d48d0255a2a3023409d2a123483c8a69ebb4744 @@ -76,6 +86,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/compat-data@npm:7.25.7" + checksum: d1188aed1fda07b6463384f289409deb8e951a5f7cf31ef4757f359a633078edc8b2938056084cc823bca5b6166ba29ba8d4d649a18694e370789b6600d09339 + languageName: node + linkType: hard + "@babel/core@npm:^7.13.16, @babel/core@npm:^7.18.5, @babel/core@npm:^7.20.0": version: 7.23.9 resolution: "@babel/core@npm:7.23.9" @@ -125,6 +142,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/generator@npm:7.25.7" + dependencies: + "@babel/types": ^7.25.7 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^3.0.2 + checksum: f81cf9dc0191ae4411d82978114382ad6e047bfb678f9a95942bac5034a41719d88f047679f5e2f51ba7728b54ebd1cc32a10df7b556215d8a6ab9bdd4f11831 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" @@ -143,6 +172,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-annotate-as-pure@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.7" + dependencies: + "@babel/types": ^7.25.7 + checksum: 4b3680b31244ee740828cd7537d5e5323dd9858c245a02f5636d54e45956f42d77bbe9e1dd743e6763eb47c25967a8b12823002cc47809f5f7d8bc24eefe0304 + languageName: node + linkType: hard + "@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" @@ -161,7 +199,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": +"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": version: 7.23.6 resolution: "@babel/helper-compilation-targets@npm:7.23.6" dependencies: @@ -187,6 +225,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-compilation-targets@npm:7.25.7" + dependencies: + "@babel/compat-data": ^7.25.7 + "@babel/helper-validator-option": ^7.25.7 + browserslist: ^4.24.0 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: 5b57e7d4b9302c07510ad3318763c053c3d46f2d40a45c2ea0c59160ccf9061a34975ae62f36a32f15d8d03497ecd5ca43a96417c1fd83eb8c035e77a69840ef + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.6": version: 7.23.10 resolution: "@babel/helper-create-class-features-plugin@npm:7.23.10" @@ -225,6 +276,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.25.7 + "@babel/helper-member-expression-to-functions": ^7.25.7 + "@babel/helper-optimise-call-expression": ^7.25.7 + "@babel/helper-replace-supers": ^7.25.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.25.7 + "@babel/traverse": ^7.25.7 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 6b04760b405cff47b82c7e121fc3fe335bc470806bff49467675581f1cfe285a68ed3d6b00001ad47e28aa4b224f095e03eb7a184dc35e3c651e8f83e0cc6f43 + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" @@ -251,6 +319,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-regexp-features-plugin@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.25.7 + regexpu-core: ^6.1.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 378a882dda9387ca74347e55016cee616b28ceb30fee931d6904740cd7d3826cba0541f198721933d0f623cd3120aa0836d53704ebf2dcd858954c62e247eb15 + languageName: node + linkType: hard + "@babel/helper-define-polyfill-provider@npm:^0.5.0": version: 0.5.0 resolution: "@babel/helper-define-polyfill-provider@npm:0.5.0" @@ -281,7 +362,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.20": +"@babel/helper-environment-visitor@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-environment-visitor@npm:7.22.20" checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 @@ -351,6 +432,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-member-expression-to-functions@npm:7.25.7" + dependencies: + "@babel/traverse": ^7.25.7 + "@babel/types": ^7.25.7 + checksum: 12141c17b92a36a00f878abccbee1dfdd848fa4995d502b623190076f10696241949b30e51485187cee1c1527dbf4610a59d8fd80d2e31aac1131e474b5bfed6 + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-module-imports@npm:7.22.15" @@ -417,6 +508,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-optimise-call-expression@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-optimise-call-expression@npm:7.25.7" + dependencies: + "@babel/types": ^7.25.7 + checksum: 5555d2d3f11f424e38ad8383efccc7ebad4f38fddd2782de46c5fcbf77a5e1e0bc5b8cdbee3bd59ab38f353690568ffe08c7830f39b0aff23f5179d345799f06 + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.22.5 resolution: "@babel/helper-plugin-utils@npm:7.22.5" @@ -431,7 +531,14 @@ __metadata: languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.18.9, @babel/helper-remap-async-to-generator@npm:^7.22.20": +"@babel/helper-plugin-utils@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-plugin-utils@npm:7.25.7" + checksum: eef4450361e597f11247d252e69207324dfe0431df9b8bcecc8bef1204358e93fa7776a659c3c4f439e9ee71cd967aeca6c4d6034ebc17a7ae48143bbb580f2f + languageName: node + linkType: hard + +"@babel/helper-remap-async-to-generator@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" dependencies: @@ -457,6 +564,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-remap-async-to-generator@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.25.7 + "@babel/helper-wrap-function": ^7.25.7 + "@babel/traverse": ^7.25.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: f68b4a56d894a556948d8ea052cd7c01426f309ea48395d1914a1332f0d6e8579874fbe7e4c165713dd43ac049c7e79ebb1f9fbb48397d9c803209dd1ff41758 + languageName: node + linkType: hard + "@babel/helper-replace-supers@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-replace-supers@npm:7.22.20" @@ -483,6 +603,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-replace-supers@npm:7.25.7" + dependencies: + "@babel/helper-member-expression-to-functions": ^7.25.7 + "@babel/helper-optimise-call-expression": ^7.25.7 + "@babel/traverse": ^7.25.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: bbfb4de148b1ce24d0f953b1e7cd31a8f8e8e881f3cd908d1848c0f453c87b4a1529c0b9c5a9e8b70de734a6993b3bb2f3594af16f46f5324a9461aaa04976c4 + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-simple-access@npm:7.22.5" @@ -519,6 +652,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.7" + dependencies: + "@babel/traverse": ^7.25.7 + "@babel/types": ^7.25.7 + checksum: 2fbdcef036135ffd14ab50861e3560c455e532f9a470e7ed97141b6a7f17bfcc2977b29d16affd0634c6656de4fcc0e91f3bc62a50a4e5d6314cb6164c4d3a67 + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:^7.22.6": version: 7.22.6 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" @@ -551,6 +694,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-string-parser@npm:7.25.7" + checksum: 0835fda5efe02cdcb5144a939b639acc017ba4aa1cc80524b44032ddb714080d3e40e8f0d3240832b7bd86f5513f0b63d4fe77d8fc52d8c8720ae674182c0753 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" @@ -565,6 +715,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-validator-identifier@npm:7.25.7" + checksum: 062f55208deead4876eb474dc6fd55155c9eada8d0a505434de3b9aa06c34195562e0f3142b22a08793a38d740238efa2fe00ff42956cdcb8ac03f0b6c542247 + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.23.5": version: 7.23.5 resolution: "@babel/helper-validator-option@npm:7.23.5" @@ -579,6 +736,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-validator-option@npm:7.25.7" + checksum: 87b801fe7d8337699f2fba5323243dd974ea214d27cf51faf2f0063da6dc5bb67c9bb7867fd337573870f9ab498d2788a75bcf9685442bd9430611c62b0195d1 + languageName: node + linkType: hard + "@babel/helper-wrap-function@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-wrap-function@npm:7.22.20" @@ -601,6 +765,17 @@ __metadata: languageName: node linkType: hard +"@babel/helper-wrap-function@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-wrap-function@npm:7.25.7" + dependencies: + "@babel/template": ^7.25.7 + "@babel/traverse": ^7.25.7 + "@babel/types": ^7.25.7 + checksum: 3da877ae06b83eec4ddfa3b667e8a5efbaf04078788756daea4a3c027caa0f7f0ee7f3f559ea9be4e88dd4d895c68bebbd11630277bb20fc43d0c7794f094d2a + languageName: node + linkType: hard + "@babel/helpers@npm:^7.23.9": version: 7.23.9 resolution: "@babel/helpers@npm:7.23.9" @@ -635,6 +810,18 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/highlight@npm:7.25.7" + dependencies: + "@babel/helper-validator-identifier": ^7.25.7 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + picocolors: ^1.0.0 + checksum: b6aa45c5bf7ecc16b8204bbed90335706131ac6cacb0f1bfb1b862ada3741539c913b56c9d26beb56cece0c231ffab36f66aa36aac6b04b32669c314705203f2 + languageName: node + linkType: hard + "@babel/parser@npm:^7.13.16, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.23.9": version: 7.23.9 resolution: "@babel/parser@npm:7.23.9" @@ -653,6 +840,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/parser@npm:7.25.7" + dependencies: + "@babel/types": ^7.25.7 + bin: + parser: ./bin/babel-parser.js + checksum: 7c40c2881e92415f5f2a88ac1078a8fea7f2b10097e76116ce40bfe01443d3a842c704bdb64d7b54c9e9dbbf49a60a0e1cf79ff35bcd02c52ff424179acd4259 + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.6": version: 7.24.6 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.6" @@ -737,21 +935,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-async-generator-functions@npm:^7.0.0": - version: 7.20.7 - resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.20.7" - dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-remap-async-to-generator": ^7.18.9 - "@babel/plugin-syntax-async-generators": ^7.8.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 111109ee118c9e69982f08d5e119eab04190b36a0f40e22e873802d941956eee66d2aa5a15f5321e51e3f9aa70a91136451b987fe15185ef8cc547ac88937723 - languageName: node - linkType: hard - -"@babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.17.12, @babel/plugin-proposal-class-properties@npm:^7.18.0": +"@babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.17.12": version: 7.18.6 resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" dependencies: @@ -775,19 +959,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-logical-assignment-operators@npm:^7.18.0": - version: 7.20.7 - resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.20.7" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: cdd7b8136cc4db3f47714d5266f9e7b592a2ac5a94a5878787ce08890e97c8ab1ca8e94b27bfeba7b0f2b1549a026d9fc414ca2196de603df36fb32633bbdc19 - languageName: node - linkType: hard - -"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8, @babel/plugin-proposal-nullish-coalescing-operator@npm:^7.18.0": +"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8": version: 7.18.6 resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" dependencies: @@ -799,46 +971,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-numeric-separator@npm:^7.0.0": - version: 7.18.6 - resolution: "@babel/plugin-proposal-numeric-separator@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f370ea584c55bf4040e1f78c80b4eeb1ce2e6aaa74f87d1a48266493c33931d0b6222d8cee3a082383d6bb648ab8d6b7147a06f974d3296ef3bc39c7851683ec - languageName: node - linkType: hard - -"@babel/plugin-proposal-object-rest-spread@npm:^7.20.0": - version: 7.20.7 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" - dependencies: - "@babel/compat-data": ^7.20.5 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.20.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 1329db17009964bc644484c660eab717cb3ca63ac0ab0f67c651a028d1bc2ead51dc4064caea283e46994f1b7221670a35cbc0b4beb6273f55e915494b5aa0b2 - languageName: node - linkType: hard - -"@babel/plugin-proposal-optional-catch-binding@npm:^7.0.0": - version: 7.18.6 - resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7b5b39fb5d8d6d14faad6cb68ece5eeb2fd550fb66b5af7d7582402f974f5bc3684641f7c192a5a57e0f59acfae4aada6786be1eba030881ddc590666eff4d1e - languageName: node - linkType: hard - -"@babel/plugin-proposal-optional-chaining@npm:^7.13.12, @babel/plugin-proposal-optional-chaining@npm:^7.20.0": +"@babel/plugin-proposal-optional-chaining@npm:^7.13.12": version: 7.21.0 resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0" dependencies: @@ -1183,6 +1316,20 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-async-generator-functions@npm:^7.24.3": + version: 7.25.7 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": ^7.25.7 + "@babel/helper-remap-async-to-generator": ^7.25.7 + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/traverse": ^7.25.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 54a8084d6dac3fcbb601d058e3eb8870086bcf7e315790b18ec46765fc47e5b4910d0cad08f3e06ededec4a160ac790915c2c007e28f83d86bb8461b80278f8e + languageName: node + linkType: hard + "@babel/plugin-transform-async-generator-functions@npm:^7.24.6": version: 7.24.6 resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.6" @@ -1267,6 +1414,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-class-properties@npm:^7.0.0-0, @babel/plugin-transform-class-properties@npm:^7.24.1": + version: 7.25.7 + resolution: "@babel/plugin-transform-class-properties@npm:7.25.7" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.25.7 + "@babel/helper-plugin-utils": ^7.25.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4d0ae6b775f58fd8bbccc93e2424af17b70f44c060a2386ef9eb765422acbe969969829dab96b762155db818fa0207a8a678a0e487e555965eda441c837bf866 + languageName: node + linkType: hard + "@babel/plugin-transform-class-properties@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-class-properties@npm:7.23.3" @@ -1335,6 +1494,22 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-classes@npm:^7.0.0-0": + version: 7.25.7 + resolution: "@babel/plugin-transform-classes@npm:7.25.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.25.7 + "@babel/helper-compilation-targets": ^7.25.7 + "@babel/helper-plugin-utils": ^7.25.7 + "@babel/helper-replace-supers": ^7.25.7 + "@babel/traverse": ^7.25.7 + globals: ^11.1.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2793844dd4bccc6ec3233371f2bece0d22faa5ff29b90a0e122e873444637aa79dc87a2e7201d8d7f5e356a49a24efa7459bf5f49843246ba1e4bf8bb33bf2ec + languageName: node + linkType: hard + "@babel/plugin-transform-classes@npm:^7.24.6": version: 7.24.6 resolution: "@babel/plugin-transform-classes@npm:7.24.6" @@ -1529,6 +1704,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-for-of@npm:^7.0.0": + version: 7.25.7 + resolution: "@babel/plugin-transform-for-of@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": ^7.25.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.25.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1f637257dea72b5b6f501ba15a56e51742772ad29297b135ddb14d10601da6ecaeda8bf1acaf258e71be6b66cbd9f08dacadf3cd1b6559d1098b6fef1d1a5410 + languageName: node + linkType: hard + "@babel/plugin-transform-for-of@npm:^7.23.6": version: 7.23.6 resolution: "@babel/plugin-transform-for-of@npm:7.23.6" @@ -1637,6 +1824,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.1": + version: 7.25.7 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": ^7.25.7 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1ec1a10960d6044e77e5307572d020541b34e80057295250b749fb4604affb07dfbebf1922c4f438256faf0ba23f94731ff5785182b72b17e4761fdcffccebe3 + languageName: node + linkType: hard + "@babel/plugin-transform-logical-assignment-operators@npm:^7.24.6": version: 7.24.6 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.6" @@ -1843,6 +2042,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.1": + version: 7.25.7 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": ^7.25.7 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 47141d4dd2e155f70e8d94486c8a2625ef2b15041ceb430be91b8193a684fb981f087775d5f90646faa07ef15c0c2fbe526990a77a1735e76a9655d3e5c2e45a + languageName: node + linkType: hard + "@babel/plugin-transform-numeric-separator@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.4" @@ -1855,6 +2066,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-numeric-separator@npm:^7.24.1": + version: 7.25.7 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": ^7.25.7 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 689cbfe89a2294b2fa2516a2732e5b49905043a50ac3423b957709d24baefb4e8f5df1a736f0704b9e5f1f2eb0ab7a34e579c928eb658e0cc3b3a4e9461e2042 + languageName: node + linkType: hard + "@babel/plugin-transform-numeric-separator@npm:^7.24.6": version: 7.24.6 resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.6" @@ -1882,6 +2105,20 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-rest-spread@npm:^7.24.5": + version: 7.25.7 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.7" + dependencies: + "@babel/helper-compilation-targets": ^7.25.7 + "@babel/helper-plugin-utils": ^7.25.7 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.25.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c41b3f49522de526ebe53b8757ae8288ce07deb871c5e2bd611191342c6cfa212125fd6075f648e2acc288da0012fd7fc670a0995d55a510ea875724a04587fe + languageName: node + linkType: hard + "@babel/plugin-transform-object-rest-spread@npm:^7.24.6": version: 7.24.6 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.6" @@ -1932,6 +2169,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.1": + version: 7.25.7 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": ^7.25.7 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 48db9f683c376d4e419d367ce3a9e5e503d17f8fbdf3db5782c13a06e176f76efd7cd3c9c81a3861e462afeae7083f34b6eed7fbfdcbf08b95495a9095141c70 + languageName: node + linkType: hard + "@babel/plugin-transform-optional-catch-binding@npm:^7.24.6": version: 7.24.6 resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.6" @@ -1970,7 +2219,20 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.23.3": +"@babel/plugin-transform-optional-chaining@npm:^7.24.5": + version: 7.25.7 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": ^7.25.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.25.7 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4193086ad99a0e89202537aed241d1d3c6dd412ffbedf939fccc505207e1553adfecc3a4360e2a84f9daacb0722d10689a83331ee411a06478f88a0a1408bb61 + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-parameters@npm:7.23.3" dependencies: @@ -1992,6 +2254,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-parameters@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-parameters@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": ^7.25.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cd139c3852153bb8bbfdcd07865e0ba6d177dabd75e4fc65dd4859956072fca235855a7d03672544f4337bda15924685c2c09f77e704fb85ee069c6acf7a0033 + languageName: node + linkType: hard + "@babel/plugin-transform-private-methods@npm:^7.22.5, @babel/plugin-transform-private-methods@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-private-methods@npm:7.23.3" @@ -2137,6 +2410,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-regenerator@npm:^7.20.0": + version: 7.25.7 + resolution: "@babel/plugin-transform-regenerator@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": ^7.25.7 + regenerator-transform: ^0.15.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e64e60334cd5efe5d57c94366fe3675ce480439a432169691d5e58dd786ed85658291c25b14087b48c51e58dcdc4112ef9d87c59d32d9d358f19a9bff9e359f6 + languageName: node + linkType: hard + "@babel/plugin-transform-regenerator@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" @@ -2397,6 +2682,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-regex@npm:^7.0.0-0": + version: 7.25.7 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.25.7 + "@babel/helper-plugin-utils": ^7.25.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ba7247dbd6e368f7f6367679021e44a6ad012e0673018a5f9bb69893bfbc5a61690275bd086de8e5c39533d6c31448e765b8c30d2bc5aae92e0bed69b6b63d98 + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-regex@npm:^7.24.6": version: 7.24.6 resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.6" @@ -2748,6 +3045,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/template@npm:7.25.7" + dependencies: + "@babel/code-frame": ^7.25.7 + "@babel/parser": ^7.25.7 + "@babel/types": ^7.25.7 + checksum: 83f025a4a777103965ee41b7c0fa2bb1c847ea7ed2b9f2cb258998ea96dfc580206176b532edf6d723d85237bc06fca26be5c8772e2af7d9e4fe6927e3bed8a3 + languageName: node + linkType: hard + "@babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.23.9": version: 7.23.9 resolution: "@babel/traverse@npm:7.23.9" @@ -2766,6 +3074,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/traverse@npm:7.25.7" + dependencies: + "@babel/code-frame": ^7.25.7 + "@babel/generator": ^7.25.7 + "@babel/parser": ^7.25.7 + "@babel/template": ^7.25.7 + "@babel/types": ^7.25.7 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: 4d329b6e7a409a63f4815bbc0a08d0b0cb566c5a2fecd1767661fe1821ced213c554d7d74e6aca048672fed2c8f76071cb0d94f4bd5f120fba8d55a38af63094 + languageName: node + linkType: hard + "@babel/types@npm:^7.20.0, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.4.4": version: 7.23.9 resolution: "@babel/types@npm:7.23.9" @@ -2788,6 +3111,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/types@npm:7.25.7" + dependencies: + "@babel/helper-string-parser": ^7.25.7 + "@babel/helper-validator-identifier": ^7.25.7 + to-fast-properties: ^2.0.0 + checksum: a63a3ecdac5eb2fa10a75d50ec23d1560beed6c4037ccf478a430cc221ba9b8b3a55cfbaaefb6e997051728f3c02b44dcddb06de9a0132f164a0a597dd825731 + languageName: node + linkType: hard + "@egjs/hammerjs@npm:^2.0.17": version: 2.0.17 resolution: "@egjs/hammerjs@npm:2.0.17" @@ -2797,7 +3131,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0": +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: @@ -2808,7 +3142,14 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.10.0": + version: 4.11.1 + resolution: "@eslint-community/regexpp@npm:4.11.1" + checksum: 6986685529d30e33c2640973c3d8e7ddd31bef3cc8cb10ad54ddc1dea12680779a2c23a45562aa1462c488137a3570e672d122fac7da22d82294382d915cec70 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.6.1": version: 4.10.0 resolution: "@eslint-community/regexpp@npm:4.10.0" checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b @@ -3013,6 +3354,17 @@ __metadata: languageName: node linkType: hard +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" + dependencies: + "@jridgewell/set-array": ^1.2.1 + "@jridgewell/sourcemap-codec": ^1.4.10 + "@jridgewell/trace-mapping": ^0.3.24 + checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 + languageName: node + linkType: hard + "@jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.2 resolution: "@jridgewell/resolve-uri@npm:3.1.2" @@ -3027,6 +3379,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 + languageName: node + linkType: hard + "@jridgewell/source-map@npm:^0.3.3": version: 0.3.5 resolution: "@jridgewell/source-map@npm:0.3.5" @@ -3054,6 +3413,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" + dependencies: + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34 + languageName: node + linkType: hard + "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1": version: 5.1.1-v1 resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1" @@ -3298,233 +3667,219 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-clean@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-clean@npm:13.6.6" +"@react-native-community/cli-clean@npm:14.1.0": + version: 14.1.0 + resolution: "@react-native-community/cli-clean@npm:14.1.0" dependencies: - "@react-native-community/cli-tools": 13.6.6 + "@react-native-community/cli-tools": 14.1.0 chalk: ^4.1.2 execa: ^5.0.0 fast-glob: ^3.3.2 - checksum: ac230d0bc73a9c72cd32fdf6fdb51581db6a46150f6fa33e9b5055be39464e545f4f2ea90f078e2d20c90a4b7a95db8fa810ae6411c4fa692cade1946add012b + checksum: 495c354a2d4c90e6a7a8b02214454f567a070529a24c4e6d5be1648492ca743b1fa223756aa1f255866150b0043cbb28a132bf48c53d1d00250bd1dc43642208 languageName: node linkType: hard -"@react-native-community/cli-config@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-config@npm:13.6.6" +"@react-native-community/cli-config@npm:14.1.0": + version: 14.1.0 + resolution: "@react-native-community/cli-config@npm:14.1.0" dependencies: - "@react-native-community/cli-tools": 13.6.6 + "@react-native-community/cli-tools": 14.1.0 chalk: ^4.1.2 - cosmiconfig: ^5.1.0 + cosmiconfig: ^9.0.0 deepmerge: ^4.3.0 fast-glob: ^3.3.2 joi: ^17.2.1 - checksum: 254272884c417ab50aaf4463683ccc79f82dd152e3905624eb0b433042de3ed4295d129261eb7216dd1b13457ab0fa20a4bc661fc40f106af0964ec09a2325fe + checksum: f41b629a0617ec79dc585a1974d2989e607f1022103b09ed1ba95a07a6a299dd41f32a0b224a3afc81046c32d17de696c8039063db4567369fe6a9bfa7ae4cd8 languageName: node linkType: hard -"@react-native-community/cli-debugger-ui@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-debugger-ui@npm:13.6.6" +"@react-native-community/cli-debugger-ui@npm:14.1.0": + version: 14.1.0 + resolution: "@react-native-community/cli-debugger-ui@npm:14.1.0" dependencies: serve-static: ^1.13.1 - checksum: 11c75024d38e04a04a99ecc58727151ebff10dbfcbf8fcfc9a9c38811962874ae01dfcc32d6986e399d6c700197bf5db27b5919fc75a10225d3b379d4e6b9a5b + checksum: 410fb5e57cbd58a7deb81ab4f83ae882a1b2b42729a5f9db5837b6a32edf35aae06f0293ef5ada49c2e51da193da9e21132cd54c213130975e57c8c53ee5042f languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-doctor@npm:13.6.6" +"@react-native-community/cli-doctor@npm:14.1.0": + version: 14.1.0 + resolution: "@react-native-community/cli-doctor@npm:14.1.0" dependencies: - "@react-native-community/cli-config": 13.6.6 - "@react-native-community/cli-platform-android": 13.6.6 - "@react-native-community/cli-platform-apple": 13.6.6 - "@react-native-community/cli-platform-ios": 13.6.6 - "@react-native-community/cli-tools": 13.6.6 + "@react-native-community/cli-config": 14.1.0 + "@react-native-community/cli-platform-android": 14.1.0 + "@react-native-community/cli-platform-apple": 14.1.0 + "@react-native-community/cli-platform-ios": 14.1.0 + "@react-native-community/cli-tools": 14.1.0 chalk: ^4.1.2 command-exists: ^1.2.8 deepmerge: ^4.3.0 - envinfo: ^7.10.0 + envinfo: ^7.13.0 execa: ^5.0.0 - hermes-profile-transformer: ^0.0.6 node-stream-zip: ^1.9.1 ora: ^5.4.1 semver: ^7.5.2 strip-ansi: ^5.2.0 wcwidth: ^1.0.1 yaml: ^2.2.1 - checksum: 388b839a627bdc3523277846a288502f81b14928195be84722c721e0d62942e51fabe35f0a8dd66462ee4c5f3d1193078b5e473990fba869d40ae16dd6d18df7 - languageName: node - linkType: hard - -"@react-native-community/cli-hermes@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-hermes@npm:13.6.6" - dependencies: - "@react-native-community/cli-platform-android": 13.6.6 - "@react-native-community/cli-tools": 13.6.6 - chalk: ^4.1.2 - hermes-profile-transformer: ^0.0.6 - checksum: 9370114c47c0f53fa1af0c25fcc2feb5392783099a570099d29d461b355e8bc80e9c5fb51cd50b207435a87069cd1bc6c70efca6a0959b9593e444b401ef003d + checksum: 2e47b306db5bc6a27e15e00b0d4123e69a5c7561e69d39688e98a74349a9aa6aa84737be7988e69bfe5e3c4caf8f697d3c788a65a29b352907aba9a90cdb349b languageName: node linkType: hard -"@react-native-community/cli-platform-android@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-platform-android@npm:13.6.6" +"@react-native-community/cli-platform-android@npm:14.1.0": + version: 14.1.0 + resolution: "@react-native-community/cli-platform-android@npm:14.1.0" dependencies: - "@react-native-community/cli-tools": 13.6.6 + "@react-native-community/cli-tools": 14.1.0 chalk: ^4.1.2 execa: ^5.0.0 fast-glob: ^3.3.2 - fast-xml-parser: ^4.2.4 + fast-xml-parser: ^4.4.1 logkitty: ^0.7.1 - checksum: 426833e8a4e925be9447840c34e70d0a1c5a11d0a2177fef91849ce3977bbad346486a4599170361b7d05c6bf9f676ef9d86876da3a0f2534a9c31298a8a7195 + checksum: 4c240321344757cbd660174d44bc1dea81265369353dc50a703c93eb1692c2eb6f33839901b640fd4a609416d36c26ca2341f44c5f417751d2cc45833a58b012 languageName: node linkType: hard -"@react-native-community/cli-platform-apple@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-platform-apple@npm:13.6.6" +"@react-native-community/cli-platform-apple@npm:14.1.0": + version: 14.1.0 + resolution: "@react-native-community/cli-platform-apple@npm:14.1.0" dependencies: - "@react-native-community/cli-tools": 13.6.6 + "@react-native-community/cli-tools": 14.1.0 chalk: ^4.1.2 execa: ^5.0.0 fast-glob: ^3.3.2 - fast-xml-parser: ^4.0.12 + fast-xml-parser: ^4.4.1 ora: ^5.4.1 - checksum: 480fa5f2dc12188c2d1a42d258a845701a1664ea3a9a6a13c5b51476a0ee9571e044906296aa6fa1f3d3ef14f78f4317ae8e3cc0fef576ee498e4d8a306bb07a + checksum: f9ea2520880511f0f914a4a8e9ba7be33058461ff75188e96578f2b8706231b355905b251f362a75ed2270082635809f13055e0bea01c4b57448c0ea43a05a31 languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-platform-ios@npm:13.6.6" +"@react-native-community/cli-platform-ios@npm:14.1.0": + version: 14.1.0 + resolution: "@react-native-community/cli-platform-ios@npm:14.1.0" dependencies: - "@react-native-community/cli-platform-apple": 13.6.6 - checksum: f64f8eee493a05a8812f5f36ad3cc079a74817fa20ef9e3a17894ea7bc34cc37bad31c0969062b895a9e195b2dc91ceea543ade3126dc181d7b5eaafd6c527e4 + "@react-native-community/cli-platform-apple": 14.1.0 + checksum: 17033ed819bf9701359117341b2650616161d078cabd8d87e7c1c1fc4f9333c2d087894ed893e0719b71cd5e2a34f76b01ba0e7edfb273cd8c6a5249e50429bd languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-server-api@npm:13.6.6" +"@react-native-community/cli-server-api@npm:14.1.0": + version: 14.1.0 + resolution: "@react-native-community/cli-server-api@npm:14.1.0" dependencies: - "@react-native-community/cli-debugger-ui": 13.6.6 - "@react-native-community/cli-tools": 13.6.6 + "@react-native-community/cli-debugger-ui": 14.1.0 + "@react-native-community/cli-tools": 14.1.0 compression: ^1.7.1 connect: ^3.6.5 errorhandler: ^1.5.1 nocache: ^3.0.1 pretty-format: ^26.6.2 serve-static: ^1.13.1 - ws: ^6.2.2 - checksum: 48a044811b6efc4139afa81fedd53645da8a56a4531449091ff95a6fd4d2bb228747db1bfdac9790826036fb019d869eda1e5fc729dfccc8ca65703210a405c5 + ws: ^6.2.3 + checksum: c165ba799ccfb0ee6c38f3b9aa0c341733310400f3c9689578078b94ddded9d33c06144719732445ce7da9f27eaf120d9d04258d307475a24576d7a5b2b3847c languageName: node linkType: hard -"@react-native-community/cli-tools@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-tools@npm:13.6.6" +"@react-native-community/cli-tools@npm:14.1.0": + version: 14.1.0 + resolution: "@react-native-community/cli-tools@npm:14.1.0" dependencies: appdirsjs: ^1.2.4 chalk: ^4.1.2 execa: ^5.0.0 find-up: ^5.0.0 mime: ^2.4.1 - node-fetch: ^2.6.0 open: ^6.2.0 ora: ^5.4.1 semver: ^7.5.2 shell-quote: ^1.7.3 sudo-prompt: ^9.0.0 - checksum: 645979ddf649f23583e2b83c2911a780406bcaa03423b07487924414e383b471512a0b76d34e708d0e5f47a1652cbd282dd505ef6ecdf7e4606b49a3b230d5a3 + checksum: 90b163e67c7d5a1d06b25d662ba678447acf26cd0f6c7bef265d40dcd9684d1e14ec0c21447c9dfb2f09083d4b5c429dd008de7df966075efa79220149d2da54 languageName: node linkType: hard -"@react-native-community/cli-types@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-types@npm:13.6.6" +"@react-native-community/cli-types@npm:14.1.0": + version: 14.1.0 + resolution: "@react-native-community/cli-types@npm:14.1.0" dependencies: joi: ^17.2.1 - checksum: f2c8ffcd2e68df552687d687cab663b5c6bf9c2b807ba156eecde109ffd08cad5aa179aeb482d6922a8adce59e14deba67e7916ed077da8986a0ab7a0a9a49c9 + checksum: c721d256a1e90fa3f8353cb0b9d37688aad080e2de44ad6b69516dd591c9f4089d214c43e85b5be0aff0d8b08595af4727a13ddd1c88492f5d3acc57bc22ce8f languageName: node linkType: hard -"@react-native-community/cli@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli@npm:13.6.6" +"@react-native-community/cli@npm:14.1.0": + version: 14.1.0 + resolution: "@react-native-community/cli@npm:14.1.0" dependencies: - "@react-native-community/cli-clean": 13.6.6 - "@react-native-community/cli-config": 13.6.6 - "@react-native-community/cli-debugger-ui": 13.6.6 - "@react-native-community/cli-doctor": 13.6.6 - "@react-native-community/cli-hermes": 13.6.6 - "@react-native-community/cli-server-api": 13.6.6 - "@react-native-community/cli-tools": 13.6.6 - "@react-native-community/cli-types": 13.6.6 + "@react-native-community/cli-clean": 14.1.0 + "@react-native-community/cli-config": 14.1.0 + "@react-native-community/cli-debugger-ui": 14.1.0 + "@react-native-community/cli-doctor": 14.1.0 + "@react-native-community/cli-server-api": 14.1.0 + "@react-native-community/cli-tools": 14.1.0 + "@react-native-community/cli-types": 14.1.0 chalk: ^4.1.2 commander: ^9.4.1 deepmerge: ^4.3.0 execa: ^5.0.0 - find-up: ^4.1.0 + find-up: ^5.0.0 fs-extra: ^8.1.0 graceful-fs: ^4.1.3 prompts: ^2.4.2 semver: ^7.5.2 bin: - react-native: build/bin.js - checksum: 0b15b763ff97b7930e855373ed16280584ad704287991edcb66178281c75b409d1a1d51a8947054b2061efdf3fc913e3b9eee3d79f9733cae83d524cbc6d0088 + rnc-cli: build/bin.js + checksum: 57c412cd3da1ef2312e9e314352cde0e783a5efcac7821798d5d69a390168837240b87b486538aab31a4d7e7e6d41bd31c487878a5485503289e89e15f468bbf languageName: node linkType: hard -"@react-native/assets-registry@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/assets-registry@npm:0.74.83" - checksum: 034ff52a5bec8dd7c2b31edb4ca4a09d537f10ec39b9a3a62c7e028a15905760c308d489697f6a40b051797bbe4bd0ac2f1d4ce526820f5f71393b3cf9a9397e +"@react-native/assets-registry@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/assets-registry@npm:0.75.4" + checksum: bf30525b83aa17423144ac100c649ad9c1b2f5cd10d3daeda80aa0a3c8097b2be25d5573924acacd6973dd65b64b6ade23dc18b8273ee52960d71037afe2eaf8 languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/babel-plugin-codegen@npm:0.74.83" +"@react-native/babel-plugin-codegen@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/babel-plugin-codegen@npm:0.75.4" dependencies: - "@react-native/codegen": 0.74.83 - checksum: fb46f66e243794a684599df74168ca86a2901bd3ce6440b2765381b636dbe5c36ad7acb9a0e44344ede16759c5d2524d9f97624003f49a4f6d231170992aad60 + "@react-native/codegen": 0.75.4 + checksum: eb3c7592e4627929494370de6e8a290217b5fc561ab6afe86f33fd16f9074539866822c68755ae06f67bf7b5eed2806d231305db4a7b83b19dd93c74b35ca41f languageName: node linkType: hard -"@react-native/babel-preset@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/babel-preset@npm:0.74.83" +"@react-native/babel-preset@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/babel-preset@npm:0.75.4" dependencies: "@babel/core": ^7.20.0 - "@babel/plugin-proposal-async-generator-functions": ^7.0.0 - "@babel/plugin-proposal-class-properties": ^7.18.0 "@babel/plugin-proposal-export-default-from": ^7.0.0 - "@babel/plugin-proposal-logical-assignment-operators": ^7.18.0 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.0 - "@babel/plugin-proposal-numeric-separator": ^7.0.0 - "@babel/plugin-proposal-object-rest-spread": ^7.20.0 - "@babel/plugin-proposal-optional-catch-binding": ^7.0.0 - "@babel/plugin-proposal-optional-chaining": ^7.20.0 "@babel/plugin-syntax-dynamic-import": ^7.8.0 "@babel/plugin-syntax-export-default-from": ^7.0.0 "@babel/plugin-syntax-flow": ^7.18.0 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.0.0 "@babel/plugin-syntax-optional-chaining": ^7.0.0 "@babel/plugin-transform-arrow-functions": ^7.0.0 + "@babel/plugin-transform-async-generator-functions": ^7.24.3 "@babel/plugin-transform-async-to-generator": ^7.20.0 "@babel/plugin-transform-block-scoping": ^7.0.0 + "@babel/plugin-transform-class-properties": ^7.24.1 "@babel/plugin-transform-classes": ^7.0.0 "@babel/plugin-transform-computed-properties": ^7.0.0 "@babel/plugin-transform-destructuring": ^7.20.0 "@babel/plugin-transform-flow-strip-types": ^7.20.0 + "@babel/plugin-transform-for-of": ^7.0.0 "@babel/plugin-transform-function-name": ^7.0.0 "@babel/plugin-transform-literals": ^7.0.0 + "@babel/plugin-transform-logical-assignment-operators": ^7.24.1 "@babel/plugin-transform-modules-commonjs": ^7.0.0 "@babel/plugin-transform-named-capturing-groups-regex": ^7.0.0 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.1 + "@babel/plugin-transform-numeric-separator": ^7.24.1 + "@babel/plugin-transform-object-rest-spread": ^7.24.5 + "@babel/plugin-transform-optional-catch-binding": ^7.24.1 + "@babel/plugin-transform-optional-chaining": ^7.24.5 "@babel/plugin-transform-parameters": ^7.0.0 "@babel/plugin-transform-private-methods": ^7.22.5 "@babel/plugin-transform-private-property-in-object": ^7.22.11 @@ -3532,6 +3887,7 @@ __metadata: "@babel/plugin-transform-react-jsx": ^7.0.0 "@babel/plugin-transform-react-jsx-self": ^7.0.0 "@babel/plugin-transform-react-jsx-source": ^7.0.0 + "@babel/plugin-transform-regenerator": ^7.20.0 "@babel/plugin-transform-runtime": ^7.0.0 "@babel/plugin-transform-shorthand-properties": ^7.0.0 "@babel/plugin-transform-spread": ^7.0.0 @@ -3539,67 +3895,67 @@ __metadata: "@babel/plugin-transform-typescript": ^7.5.0 "@babel/plugin-transform-unicode-regex": ^7.0.0 "@babel/template": ^7.0.0 - "@react-native/babel-plugin-codegen": 0.74.83 + "@react-native/babel-plugin-codegen": 0.75.4 babel-plugin-transform-flow-enums: ^0.0.2 react-refresh: ^0.14.0 peerDependencies: "@babel/core": "*" - checksum: 6a3ee960625b6da70e87c8da44a518b77b4a0b70bd143dee6017ce8957b357ee10b511a9355f175cbbb3a9a0a6389c862607d52fcb6dc9458f1dd4a5ebe3d81c + checksum: 89b251e8f9ee0a5528a165f99d9ab6babfacd498f5cc693fd427f72d5eb1769b240b2ddd318409b548d7977c2f56028b8d4ad87dc71662404dc7c60eb86aa3df languageName: node linkType: hard -"@react-native/codegen@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/codegen@npm:0.74.83" +"@react-native/codegen@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/codegen@npm:0.75.4" dependencies: "@babel/parser": ^7.20.0 glob: ^7.1.1 - hermes-parser: 0.19.1 + hermes-parser: 0.22.0 invariant: ^2.2.4 jscodeshift: ^0.14.0 mkdirp: ^0.5.1 nullthrows: ^1.1.1 + yargs: ^17.6.2 peerDependencies: "@babel/preset-env": ^7.1.6 - checksum: 8408f9f4d4693544cb080668426b6833ca662adc6df2fad0657d6a35775a44acbf6358fd2a1e7c1fd9c84b15173ac1231d3db153a99c4a005898979a60181e46 + checksum: ecbdac43ce62c60362c7ad727a6d568d088148e12d71c36a5f2ce7c0c19601b73d713b69d6999f10ecb0f92d52a74d28650dac06791d69dbb98823bea709873c languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/community-cli-plugin@npm:0.74.83" +"@react-native/community-cli-plugin@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/community-cli-plugin@npm:0.75.4" dependencies: - "@react-native-community/cli-server-api": 13.6.6 - "@react-native-community/cli-tools": 13.6.6 - "@react-native/dev-middleware": 0.74.83 - "@react-native/metro-babel-transformer": 0.74.83 + "@react-native-community/cli-server-api": 14.1.0 + "@react-native-community/cli-tools": 14.1.0 + "@react-native/dev-middleware": 0.75.4 + "@react-native/metro-babel-transformer": 0.75.4 chalk: ^4.0.0 execa: ^5.1.1 metro: ^0.80.3 metro-config: ^0.80.3 metro-core: ^0.80.3 node-fetch: ^2.2.0 - querystring: ^0.2.1 readline: ^1.3.0 - checksum: ef71d38baae09d37657a03e79a084308b882e240faaeddf12adbb36dff77393273ea4e8f57c28c7004cd23323313f61e08832584957caf6fb51bd8014bd4b265 + checksum: ac3f574fe39cf31450a3d0ee8ddc703894d2f91eaf2d2f0116e41eabfea73c8ec2bbfcaa49af9549a61af879f714abc91b348267ef16a8bddc3de59b6d906b03 languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/debugger-frontend@npm:0.74.83" - checksum: 8bdf8ae7103b740c9ddf421b58c4fc4f182bccc36a55443997fafa69cad2aeb800596d239746fb3e8f714b1c044e31d007db4a1ab490eeafdb4885ead9b512f4 +"@react-native/debugger-frontend@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/debugger-frontend@npm:0.75.4" + checksum: b99bf4ddbda9b88dc974cc418483dfb9bb2887525df6fe9fa9abb894b0304bcf061781d86a8bc52505c5b0c60966704c4e8a1c4f4b2e6f1f47be8c28b3158d9b languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/dev-middleware@npm:0.74.83" +"@react-native/dev-middleware@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/dev-middleware@npm:0.75.4" dependencies: "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.74.83 - "@rnx-kit/chromium-edge-launcher": ^1.0.0 + "@react-native/debugger-frontend": 0.75.4 chrome-launcher: ^0.15.2 + chromium-edge-launcher: ^0.2.0 connect: ^3.6.5 debug: ^2.2.0 node-fetch: ^2.2.0 @@ -3607,100 +3963,98 @@ __metadata: open: ^7.0.3 selfsigned: ^2.4.1 serve-static: ^1.13.1 - temp-dir: ^2.0.0 ws: ^6.2.2 - checksum: 8324c52af4dffcdce860ffa12795de112635eefab01e3412938dfbda248675a77a8f85c452c93cc485b43b375b6b4c43245977563cbd1221729b909af98f38ba + checksum: 3f5001cde0081f46b011002303eed4d840eb9e05c2e39225ad8a4f70927e659ff567351dc8631128cf2ed6b57c6dbdf78c88494452db83e068bc9f986aa4c03e languageName: node linkType: hard -"@react-native/eslint-config@npm:^0.73.1": - version: 0.73.2 - resolution: "@react-native/eslint-config@npm:0.73.2" +"@react-native/eslint-config@npm:^0.75.4": + version: 0.75.4 + resolution: "@react-native/eslint-config@npm:0.75.4" dependencies: "@babel/core": ^7.20.0 "@babel/eslint-parser": ^7.20.0 - "@react-native/eslint-plugin": 0.73.1 - "@typescript-eslint/eslint-plugin": ^5.57.1 - "@typescript-eslint/parser": ^5.57.1 + "@react-native/eslint-plugin": 0.75.4 + "@typescript-eslint/eslint-plugin": ^7.1.1 + "@typescript-eslint/parser": ^7.1.1 eslint-config-prettier: ^8.5.0 eslint-plugin-eslint-comments: ^3.2.0 eslint-plugin-ft-flow: ^2.0.1 - eslint-plugin-jest: ^26.5.3 - eslint-plugin-prettier: ^4.2.1 + eslint-plugin-jest: ^27.9.0 eslint-plugin-react: ^7.30.1 eslint-plugin-react-hooks: ^4.6.0 eslint-plugin-react-native: ^4.0.0 peerDependencies: eslint: ">=8" prettier: ">=2" - checksum: 6d9de3267d80f1ee4f046a54a86bb906448dbc2a1a708fa7b7cb92f7611dec666b5908451501cd39b8b67eda4c8cfac6b2707a0ea65eb0228c79dcd47fc9b4c5 + checksum: 1bf6d5a46a724f1ebbfb58f2b9a3774f4ef53e22333dd00b3836b1aa487da6b170281f7305cdbebec3b9d0e6c62c7d3f96e1c0eea4245d70c19dc162dced76f8 languageName: node linkType: hard -"@react-native/eslint-plugin@npm:0.73.1": - version: 0.73.1 - resolution: "@react-native/eslint-plugin@npm:0.73.1" - checksum: 82a9bd30ada10ec4e926021967d1ffeb7c82eaaba6f7171cc655daf3339d2e2c15897bc3cd0f529e83ef2958c3b9b0365590a6b672a1a0efe7c781bd3e854473 +"@react-native/eslint-plugin@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/eslint-plugin@npm:0.75.4" + checksum: 3209c6ed6f99880a1cd58bf703105a1e48d8da4459be5b15446bcf74625ee4a76afca2ecf99d1ca561719cce6b512acd097dd9dbe2e1106f85926c110ab466c2 languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/gradle-plugin@npm:0.74.83" - checksum: c29eeedf3fcfe58ed097ba841b67baed61275487ef35da136c8a19dbe59120966f034ab1fc2135e321bc7331ddb949db2fcd8426c073067bffd113f60d051615 +"@react-native/gradle-plugin@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/gradle-plugin@npm:0.75.4" + checksum: ec3c39e08963ccff3ca4557ca94fff44b8242e5267b9d6226fde17a9df2a9d87e4c343893c7e6f5e4db48a1e61b8f77161a9175d5f9f371c0260f0fc29aa148d languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/js-polyfills@npm:0.74.83" - checksum: 065b01a43b63e5d62cfb55f1f960e24b2ea79c669863a4dca6ca2c25446fe6ffb7bdf567c81c7fda7cf2b86f1975eeec6883b08a46b99feb7ef40eab087e8b6b +"@react-native/js-polyfills@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/js-polyfills@npm:0.75.4" + checksum: 0634b2dc5f4d8fde84aef7e19bb497eae83c9ce9c70a2233ebcddc308ae605ba96ad03f2c7e70c9f14db89714376fd79a6fc2b44058276969c62338cfd3d5b98 languageName: node linkType: hard -"@react-native/metro-babel-transformer@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/metro-babel-transformer@npm:0.74.83" +"@react-native/metro-babel-transformer@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/metro-babel-transformer@npm:0.75.4" dependencies: "@babel/core": ^7.20.0 - "@react-native/babel-preset": 0.74.83 - hermes-parser: 0.19.1 + "@react-native/babel-preset": 0.75.4 + hermes-parser: 0.22.0 nullthrows: ^1.1.1 peerDependencies: "@babel/core": "*" - checksum: 7620ce25ef460ff9461c4a0a0b9765d95300382032a451eea17f6ea1d369302623a98d3f2def4c906082c61c436aa0d978118626ec291e1c42aaa33fa28255b2 + checksum: a35c6b16e91ad1be3d2379ce512bdbb83b34a91801ae16d0a7bfc736f15380b0bcc455fbc028575fd4d950f421c0787c0ec99f5d1b2edd2f34485fd5fdb0a318 languageName: node linkType: hard -"@react-native/metro-config@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/metro-config@npm:0.74.83" +"@react-native/metro-config@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/metro-config@npm:0.75.4" dependencies: - "@react-native/js-polyfills": 0.74.83 - "@react-native/metro-babel-transformer": 0.74.83 + "@react-native/js-polyfills": 0.75.4 + "@react-native/metro-babel-transformer": 0.75.4 metro-config: ^0.80.3 metro-runtime: ^0.80.3 - checksum: 547f879453fa16b0c07f098c9639b62d20b662b84c46eb0d76f82241ec8d88c54e07fcfaeb4ca20340f5697480866bb904929cd38cd3d6684ef2b5455c82aff7 + checksum: 49608519e45396e1c6e5301dfa7af598f3309a1b7b7be4ac1e13a27de4a4ed09c9ca3d29abf0c5f9f391ebc7aa5ee13fb1f2bed00ba063d82b1b5ca27011d029 languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/normalize-colors@npm:0.74.83" - checksum: 87e5c5a7d24b0119ba468f2ecbdcb309ac24581a402ff24c980d20c96ec016ccdcabb997c0411393292def859834c785fc8115af91d87bc89b87fb114922ad94 +"@react-native/normalize-colors@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/normalize-colors@npm:0.75.4" + checksum: d6f916b20b2ba3959e07e107c2bfb175ec3530cf0e611da962ba66a65f2675864881c7c10d5ee6b51cb957cd1a35f7303b4d34a25fde590aa29618f37432447e languageName: node linkType: hard -"@react-native/typescript-config@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/typescript-config@npm:0.74.83" - checksum: 318ef304611bc7e42415327916bce358df1c7bc9e971e129d263166edf1179c42d64e5b91784fa28db13d5218ae2c87dc3e2214582673ba2b0f52e8f8615695b +"@react-native/typescript-config@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/typescript-config@npm:0.75.4" + checksum: 0c4bdffffbe990671c9e878683c1ac809bf205e35a4185e9ec77a82ecfbd4c8defdd08e5c1741e8d2b460cd29daaea8333f98090fcd01d57f2ec993122a71e98 languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/virtualized-lists@npm:0.74.83" +"@react-native/virtualized-lists@npm:0.75.4": + version: 0.75.4 + resolution: "@react-native/virtualized-lists@npm:0.75.4" dependencies: invariant: ^2.2.4 nullthrows: ^1.1.1 @@ -3711,43 +4065,43 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: ef88e57e3f73c98fe22e2b0d1c8ee1c719eba65b3e58667df561b61ea23ca6c350aa47ae3762a93ed801ead67a6c4c2b4c7c32a2cd0ac3109ff1d236f2b541d0 + checksum: 51abfbc44a7afddb2ba5f5a0b810167852dbeb566fe62478fed761a71de11f956891ec80c8e706e7f5c27f6a06f8a2376eddd916f7eb0bc25892c7f331d149d6 languageName: node linkType: hard -"@react-navigation/core@npm:^6.4.16": - version: 6.4.16 - resolution: "@react-navigation/core@npm:6.4.16" +"@react-navigation/core@npm:^6.4.17": + version: 6.4.17 + resolution: "@react-navigation/core@npm:6.4.17" dependencies: "@react-navigation/routers": ^6.1.9 escape-string-regexp: ^4.0.0 nanoid: ^3.1.23 query-string: ^7.1.3 react-is: ^16.13.0 - use-latest-callback: ^0.1.9 + use-latest-callback: ^0.2.1 peerDependencies: react: "*" - checksum: 22e0dadd71f4748b123effc69eab5ca8d8ab0c8733927f2fab7be52bd53c85f9ed178c25e5c42b86d465f87235766a1889e1285505b3239146ac0ac6934f7b68 + checksum: 5e7315bb6ebff8e796eaccb0442d00696466750cc387e93f5edb5293d4ad3f409c1525ef76192894488e2d0979b762b236a1b0fbbb7500b2f065bf4745d509c0 languageName: node linkType: hard -"@react-navigation/elements@npm:^1.3.30": - version: 1.3.30 - resolution: "@react-navigation/elements@npm:1.3.30" +"@react-navigation/elements@npm:^1.3.31": + version: 1.3.31 + resolution: "@react-navigation/elements@npm:1.3.31" peerDependencies: "@react-navigation/native": ^6.0.0 react: "*" react-native: "*" react-native-safe-area-context: ">= 3.0.0" - checksum: 523bed1ae2e9806890ec01565955394d7cd887f2216510a9154cfb0a3fc4f625e6d238cfa1a770a77feb76ca86372f0519285a80e58fb7dbcb67721e4c1d0961 + checksum: 1e4a65ccd9fab757d01bf41f605aafd6ca8301ae25ad7d3f1769320793418cca9fe2f25ac9337578ce1e0a1560bbbc3a88f18b899867aacd4d31de7a789e417e languageName: node linkType: hard -"@react-navigation/native-stack@npm:^6.9.26": - version: 6.9.26 - resolution: "@react-navigation/native-stack@npm:6.9.26" +"@react-navigation/native-stack@npm:^6.11.0": + version: 6.11.0 + resolution: "@react-navigation/native-stack@npm:6.11.0" dependencies: - "@react-navigation/elements": ^1.3.30 + "@react-navigation/elements": ^1.3.31 warn-once: ^0.1.0 peerDependencies: "@react-navigation/native": ^6.0.0 @@ -3755,22 +4109,22 @@ __metadata: react-native: "*" react-native-safe-area-context: ">= 3.0.0" react-native-screens: ">= 3.0.0" - checksum: aa56f1417b621ef2918ed3be4f0aeaa3f54b6203623f1ef8ee9c56ff97ba9c99e027a914952ab9a76f2ce2d18f0afc42c4adc7d9b994a36c8a833b47b1f8e1d7 + checksum: d3dd57c216f5dbe53636bdb9aa48fe27831640f868cf5c68731943a49b68cb457d81182e7868f3e3033da0564e9f193f1b06b69085b8bc5b04ccfbe12ea2bbc0 languageName: node linkType: hard -"@react-navigation/native@npm:^6.1.17": - version: 6.1.17 - resolution: "@react-navigation/native@npm:6.1.17" +"@react-navigation/native@npm:^6.1.18": + version: 6.1.18 + resolution: "@react-navigation/native@npm:6.1.18" dependencies: - "@react-navigation/core": ^6.4.16 + "@react-navigation/core": ^6.4.17 escape-string-regexp: ^4.0.0 fast-deep-equal: ^3.1.3 nanoid: ^3.1.23 peerDependencies: react: "*" react-native: "*" - checksum: eeff357c766f72b003ed07093a7e3b14e42fd6f488f9a3200f52e4eb307eb1bb330acb2200dca45696c0dc788a417255047915e41b216a75f34072805d2ecc65 + checksum: 82aeea67723f5dc41403e1c260f04942696f6cde95e30629c383521c3837d18d2d5c21bd78f0ade50beb81ac5edca2d7d38980dcd3a79e3acc86f45d0c09a4b8 languageName: node linkType: hard @@ -3797,20 +4151,6 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/chromium-edge-launcher@npm:^1.0.0": - version: 1.0.0 - resolution: "@rnx-kit/chromium-edge-launcher@npm:1.0.0" - dependencies: - "@types/node": ^18.0.0 - escape-string-regexp: ^4.0.0 - is-wsl: ^2.2.0 - lighthouse-logger: ^1.0.0 - mkdirp: ^1.0.4 - rimraf: ^3.0.2 - checksum: c72113e32c222af94482a60e7cea8d296360abbc503afa64394af65ca106c7a36d975a68fed63e8cf5668ffebc33fa636665ceaf55c75d4cf949fb40302fc409 - languageName: node - linkType: hard - "@sideway/address@npm:^4.1.5": version: 4.1.5 resolution: "@sideway/address@npm:4.1.5" @@ -3875,6 +4215,18 @@ __metadata: languageName: node linkType: hard +"@ts-morph/common@npm:~0.24.0": + version: 0.24.0 + resolution: "@ts-morph/common@npm:0.24.0" + dependencies: + fast-glob: ^3.3.2 + minimatch: ^9.0.4 + mkdirp: ^3.0.1 + path-browserify: ^1.0.1 + checksum: 793bc8a47c93ab55c6c036f94480d3b0e948661aef4bb7dbc29279b1dda2fc4fce809a88e221537867a313541842e12d1ecbd32b4769688abe1303807ec09db6 + languageName: node + linkType: hard + "@types/hammerjs@npm:^2.0.36": version: 2.0.45 resolution: "@types/hammerjs@npm:2.0.45" @@ -3946,15 +4298,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^18.0.0": - version: 18.19.33 - resolution: "@types/node@npm:18.19.33" - dependencies: - undici-types: ~5.26.4 - checksum: b6db87d095bc541d64a410fa323a35c22c6113220b71b608bbe810b2397932d0f0a51c3c0f3ef90c20d8180a1502d950a7c5314b907e182d9cc10b36efd2a44e - languageName: node - linkType: hard - "@types/normalize-package-data@npm:^2.4.0": version: 2.4.4 resolution: "@types/normalize-package-data@npm:2.4.4" @@ -4033,44 +4376,44 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.57.1": - version: 5.62.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.62.0" +"@typescript-eslint/eslint-plugin@npm:^7.1.1": + version: 7.18.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0" dependencies: - "@eslint-community/regexpp": ^4.4.0 - "@typescript-eslint/scope-manager": 5.62.0 - "@typescript-eslint/type-utils": 5.62.0 - "@typescript-eslint/utils": 5.62.0 - debug: ^4.3.4 + "@eslint-community/regexpp": ^4.10.0 + "@typescript-eslint/scope-manager": 7.18.0 + "@typescript-eslint/type-utils": 7.18.0 + "@typescript-eslint/utils": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 graphemer: ^1.4.0 - ignore: ^5.2.0 - natural-compare-lite: ^1.4.0 - semver: ^7.3.7 - tsutils: ^3.21.0 + ignore: ^5.3.1 + natural-compare: ^1.4.0 + ts-api-utils: ^1.3.0 peerDependencies: - "@typescript-eslint/parser": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + "@typescript-eslint/parser": ^7.0.0 + eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: fc104b389c768f9fa7d45a48c86d5c1ad522c1d0512943e782a56b1e3096b2cbcc1eea3fcc590647bf0658eef61aac35120a9c6daf979bf629ad2956deb516a1 + checksum: dfcf150628ca2d4ccdfc20b46b0eae075c2f16ef5e70d9d2f0d746acf4c69a09f962b93befee01a529f14bbeb3e817b5aba287d7dd0edc23396bc5ed1f448c3d languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.57.1": - version: 5.62.0 - resolution: "@typescript-eslint/parser@npm:5.62.0" +"@typescript-eslint/parser@npm:^7.1.1": + version: 7.18.0 + resolution: "@typescript-eslint/parser@npm:7.18.0" dependencies: - "@typescript-eslint/scope-manager": 5.62.0 - "@typescript-eslint/types": 5.62.0 - "@typescript-eslint/typescript-estree": 5.62.0 + "@typescript-eslint/scope-manager": 7.18.0 + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/typescript-estree": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 debug: ^4.3.4 peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: d168f4c7f21a7a63f47002e2d319bcbb6173597af5c60c1cf2de046b46c76b4930a093619e69faf2d30214c29ab27b54dcf1efc7046a6a6bd6f37f59a990e752 + checksum: 132b56ac3b2d90b588d61d005a70f6af322860974225b60201cbf45abf7304d67b7d8a6f0ade1c188ac4e339884e78d6dcd450417f1481998f9ddd155bab0801 languageName: node linkType: hard @@ -4084,20 +4427,30 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/type-utils@npm:5.62.0" +"@typescript-eslint/scope-manager@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/scope-manager@npm:7.18.0" dependencies: - "@typescript-eslint/typescript-estree": 5.62.0 - "@typescript-eslint/utils": 5.62.0 + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 + checksum: b982c6ac13d8c86bb3b949c6b4e465f3f60557c2ccf4cc229799827d462df56b9e4d3eaed7711d79b875422fc3d71ec1ebcb5195db72134d07c619e3c5506b57 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/type-utils@npm:7.18.0" + dependencies: + "@typescript-eslint/typescript-estree": 7.18.0 + "@typescript-eslint/utils": 7.18.0 debug: ^4.3.4 - tsutils: ^3.21.0 + ts-api-utils: ^1.3.0 peerDependencies: - eslint: "*" + eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: fc41eece5f315dfda14320be0da78d3a971d650ea41300be7196934b9715f3fe1120a80207551eb71d39568275dbbcf359bde540d1ca1439d8be15e9885d2739 + checksum: 68fd5df5146c1a08cde20d59b4b919acab06a1b06194fe4f7ba1b928674880249890785fbbc97394142f2ef5cff5a7fba9b8a940449e7d5605306505348e38bc languageName: node linkType: hard @@ -4108,6 +4461,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/types@npm:7.18.0" + checksum: 7df2750cd146a0acd2d843208d69f153b458e024bbe12aab9e441ad2c56f47de3ddfeb329c4d1ea0079e2577fea4b8c1c1ce15315a8d49044586b04fedfe7a4d + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" @@ -4126,7 +4486,40 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.62.0, @typescript-eslint/utils@npm:^5.10.0": +"@typescript-eslint/typescript-estree@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" + dependencies: + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + minimatch: ^9.0.4 + semver: ^7.6.0 + ts-api-utils: ^1.3.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: c82d22ec9654973944f779eb4eb94c52f4a6eafaccce2f0231ff7757313f3a0d0256c3252f6dfe6d43f57171d09656478acb49a629a9d0c193fb959bc3f36116 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/utils@npm:7.18.0" + dependencies: + "@eslint-community/eslint-utils": ^4.4.0 + "@typescript-eslint/scope-manager": 7.18.0 + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/typescript-estree": 7.18.0 + peerDependencies: + eslint: ^8.56.0 + checksum: 751dbc816dab8454b7dc6b26a56671dbec08e3f4ef94c2661ce1c0fc48fa2d05a64e03efe24cba2c22d03ba943cd3c5c7a5e1b7b03bbb446728aec1c640bd767 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:^5.10.0": version: 5.62.0 resolution: "@typescript-eslint/utils@npm:5.62.0" dependencies: @@ -4154,6 +4547,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" + dependencies: + "@typescript-eslint/types": 7.18.0 + eslint-visitor-keys: ^3.4.3 + checksum: 6e806a7cdb424c5498ea187a5a11d0fef7e4602a631be413e7d521e5aec1ab46ba00c76cfb18020adaa0a8c9802354a163bfa0deb74baa7d555526c7517bb158 + languageName: node + linkType: hard + "@ungap/structured-clone@npm:^1.2.0": version: 1.2.0 resolution: "@ungap/structured-clone@npm:1.2.0" @@ -4803,6 +5206,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.24.0": + version: 4.24.0 + resolution: "browserslist@npm:4.24.0" + dependencies: + caniuse-lite: ^1.0.30001663 + electron-to-chromium: ^1.5.28 + node-releases: ^2.0.18 + update-browserslist-db: ^1.1.0 + bin: + browserslist: cli.js + checksum: de200d3eb8d6ed819dad99719099a28fb6ebeb88016a5ac42fbdc11607e910c236a84ca1b0bbf232477d4b88ab64e8ab6aa67557cdd40a73ca9c2834f92ccce0 + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -4981,6 +5398,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001663": + version: 1.0.30001667 + resolution: "caniuse-lite@npm:1.0.30001667" + checksum: f3c6a40c3e4115c6e5fb46c47884d903191285d29ec8a8b092546efbc9cdedcbd7183cce72dd3cab7dfc16c4d5b2745892876b3d6dda75d4cba49f9389239aa9 + languageName: node + linkType: hard + "chalk@npm:5.2.0": version: 5.2.0 resolution: "chalk@npm:5.2.0" @@ -5009,7 +5433,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^5.0.0, chalk@npm:^5.0.1, chalk@npm:^5.2.0": +"chalk@npm:^5.0.0, chalk@npm:^5.0.1, chalk@npm:^5.2.0, chalk@npm:^5.3.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 @@ -5044,6 +5468,20 @@ __metadata: languageName: node linkType: hard +"chromium-edge-launcher@npm:^0.2.0": + version: 0.2.0 + resolution: "chromium-edge-launcher@npm:0.2.0" + dependencies: + "@types/node": "*" + escape-string-regexp: ^4.0.0 + is-wsl: ^2.2.0 + lighthouse-logger: ^1.0.0 + mkdirp: ^1.0.4 + rimraf: ^3.0.2 + checksum: 9b56d1f8f18e84e34d6da89a4d97787ef323a1ade6551dcc83a6899af17c1bfc27a844c23422a29f51c6a315d1e04e2ad12595aaf07d3822335c2fce15914feb + languageName: node + linkType: hard + "ci-info@npm:^2.0.0": version: 2.0.0 resolution: "ci-info@npm:2.0.0" @@ -5155,6 +5593,13 @@ __metadata: languageName: node linkType: hard +"code-block-writer@npm:^13.0.1": + version: 13.0.2 + resolution: "code-block-writer@npm:13.0.2" + checksum: 8052ae6f27ef73366bd5df04b6f9beced493261fcaef5cbd0f3853644b5e0aa5af18d099b96448be88ea3d000c7b180207d371044edd9fcf98fea22c9f8ba3a1 + languageName: node + linkType: hard + "color-convert@npm:^1.9.0": version: 1.9.3 resolution: "color-convert@npm:1.9.3" @@ -5550,7 +5995,7 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^5.0.5, cosmiconfig@npm:^5.1.0": +"cosmiconfig@npm:^5.0.5": version: 5.2.1 resolution: "cosmiconfig@npm:5.2.1" dependencies: @@ -5575,6 +6020,23 @@ __metadata: languageName: node linkType: hard +"cosmiconfig@npm:^9.0.0": + version: 9.0.0 + resolution: "cosmiconfig@npm:9.0.0" + dependencies: + env-paths: ^2.2.1 + import-fresh: ^3.3.0 + js-yaml: ^4.1.0 + parse-json: ^5.2.0 + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: a30c424b53d442ea0bdd24cb1b3d0d8687c8dda4a17ab6afcdc439f8964438801619cdb66e8e79f63b9caa3e6586b60d8bab9ce203e72df6c5e80179b971fe8f + languageName: node + linkType: hard + "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" @@ -5908,6 +6370,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.28": + version: 1.5.33 + resolution: "electron-to-chromium@npm:1.5.33" + checksum: 945916e1fbaf53cb388835822108b5f373fdd985a9fc6d3abfd5bdc8a799da28c74a1537e7bdd81033cd021132d3e7b39ecf377c6c301d1b6c2ac1382e26155d + languageName: node + linkType: hard + "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -5947,19 +6416,19 @@ __metadata: languageName: node linkType: hard -"env-paths@npm:^2.2.0": +"env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e languageName: node linkType: hard -"envinfo@npm:^7.10.0": - version: 7.11.1 - resolution: "envinfo@npm:7.11.1" +"envinfo@npm:^7.13.0": + version: 7.14.0 + resolution: "envinfo@npm:7.14.0" bin: envinfo: dist/cli.js - checksum: f3d38ab6bc62388466e86e2f5665f90f238ca349c81bb36b311d908cb5ca96650569b43b308c9dcb6725a222693f6c43a704794e74a68fb445ec5575a90ca05e + checksum: 137c1dd9a4d5781c4a6cdc6b695454ba3c4ba1829f73927198aa4122f11b35b59d7b2cb7e1ceea1364925a30278897548511d22f860c14253a33797d0bebd551 languageName: node linkType: hard @@ -6148,6 +6617,13 @@ __metadata: languageName: node linkType: hard +"escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 47b029c83de01b0d17ad99ed766347b974b0d628e848de404018f3abee728e987da0d2d370ad4574aa3d5b5bfc368754fd085d69a30f8e75903486ec4b5b709e + languageName: node + linkType: hard + "escape-goat@npm:^4.0.0": version: 4.0.0 resolution: "escape-goat@npm:4.0.0" @@ -6256,35 +6732,21 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jest@npm:^26.5.3": - version: 26.9.0 - resolution: "eslint-plugin-jest@npm:26.9.0" +"eslint-plugin-jest@npm:^27.9.0": + version: 27.9.0 + resolution: "eslint-plugin-jest@npm:27.9.0" dependencies: "@typescript-eslint/utils": ^5.10.0 peerDependencies: - "@typescript-eslint/eslint-plugin": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 || ^7.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: "*" peerDependenciesMeta: "@typescript-eslint/eslint-plugin": optional: true jest: optional: true - checksum: 6d5fd5c95368f1ca2640389aeb7ce703d6202493c3ec6bdedb4eaca37233710508b0c75829e727765a16fd27029a466d34202bc7f2811c752038ccbbce224400 - languageName: node - linkType: hard - -"eslint-plugin-prettier@npm:^4.2.1": - version: 4.2.1 - resolution: "eslint-plugin-prettier@npm:4.2.1" - dependencies: - prettier-linter-helpers: ^1.0.0 - peerDependencies: - eslint: ">=7.28.0" - prettier: ">=2.0.0" - peerDependenciesMeta: - eslint-config-prettier: - optional: true - checksum: b9e839d2334ad8ec7a5589c5cb0f219bded260839a857d7a486997f9870e95106aa59b8756ff3f37202085ebab658de382b0267cae44c3a7f0eb0bcc03a4f6d6 + checksum: e2a4b415105408de28ad146818fcc6f4e122f6a39c6b2216ec5c24a80393f1390298b20231b0467bc5fd730f6e24b05b89e1a6a3ce651fc159aa4174ecc233d0 languageName: node linkType: hard @@ -6644,14 +7106,14 @@ __metadata: languageName: node linkType: hard -"fast-xml-parser@npm:^4.0.12, fast-xml-parser@npm:^4.2.4": - version: 4.3.4 - resolution: "fast-xml-parser@npm:4.3.4" +"fast-xml-parser@npm:^4.4.1": + version: 4.5.0 + resolution: "fast-xml-parser@npm:4.5.0" dependencies: strnum: ^1.0.5 bin: fxparser: src/cli/cli.js - checksum: ab88177343f6d3d971d53462db3011003a83eb8a8db704840127ddaaf27105ea90cdf7903a0f9b2e1279ccc4adfca8dfc0277b33bae6262406f10c16bd60ccf9 + checksum: 696dc98da46f0f48eb26dfe1640a53043ea64f2420056374e62abbb5e620f092f8df3c3ff3195505a2eefab2057db3bf0ebaac63557f277934f6cce4e7da027c languageName: node linkType: hard @@ -7411,6 +7873,13 @@ __metadata: languageName: node linkType: hard +"hermes-estree@npm:0.22.0": + version: 0.22.0 + resolution: "hermes-estree@npm:0.22.0" + checksum: 7c37e7e2f43d650255f5b1d0034e7dc5a1637ac0d15f0beaa672adbcea9db8d2a71b275d48c115862b7952ba2d5b36e736e72cb48b9ae8b236b329d712a74083 + languageName: node + linkType: hard + "hermes-parser@npm:0.19.1": version: 0.19.1 resolution: "hermes-parser@npm:0.19.1" @@ -7420,12 +7889,12 @@ __metadata: languageName: node linkType: hard -"hermes-profile-transformer@npm:^0.0.6": - version: 0.0.6 - resolution: "hermes-profile-transformer@npm:0.0.6" +"hermes-parser@npm:0.22.0": + version: 0.22.0 + resolution: "hermes-parser@npm:0.22.0" dependencies: - source-map: ^0.7.3 - checksum: b5f874eaa65b70d88df7a4ce3b20d73312bb0bc73410f1b63d708f02e1c532ae16975da84e23b977eab8592ac95d7e6fc0c4094c78604fd0a092ed886c62aa7a + hermes-estree: 0.22.0 + checksum: b2d5c0730dc9845606a5b4a045fbf67e4985c62eb0f9baa21e204576274227ddfb52da0d2a29f7858293557f3a229448625118a382154337487c7bee610a290c languageName: node linkType: hard @@ -7557,6 +8026,13 @@ __metadata: languageName: node linkType: hard +"ignore@npm:^5.3.1": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be + languageName: node + linkType: hard + "image-size@npm:^1.0.2": version: 1.1.1 resolution: "image-size@npm:1.1.1" @@ -7578,7 +8054,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -8499,6 +8975,15 @@ __metadata: languageName: node linkType: hard +"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" + bin: + jsesc: bin/jsesc + checksum: a36d3ca40574a974d9c2063bf68c2b6141c20da8f2a36bd3279fc802563f35f0527a6c828801295bdfb2803952cf2cf387786c2c90ed564f88d5782475abfe3c + languageName: node + linkType: hard + "jsesc@npm:~0.5.0": version: 0.5.0 resolution: "jsesc@npm:0.5.0" @@ -9458,6 +9943,15 @@ __metadata: languageName: node linkType: hard +"mkdirp@npm:^3.0.1": + version: 3.0.1 + resolution: "mkdirp@npm:3.0.1" + bin: + mkdirp: dist/cjs/src/bin.js + checksum: 972deb188e8fb55547f1e58d66bd6b4a3623bf0c7137802582602d73e6480c1c2268dcbafbfb1be466e00cc7e56ac514d7fd9334b7cf33e3e2ab547c16f83a8d + languageName: node + linkType: hard + "modify-values@npm:^1.0.0": version: 1.0.1 resolution: "modify-values@npm:1.0.1" @@ -9502,13 +9996,6 @@ __metadata: languageName: node linkType: hard -"natural-compare-lite@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare-lite@npm:1.4.0" - checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 - languageName: node - linkType: hard - "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -9546,6 +10033,21 @@ __metadata: languageName: node linkType: hard +"nitro-codegen@npm:^0.11.0": + version: 0.11.0 + resolution: "nitro-codegen@npm:0.11.0" + dependencies: + chalk: ^5.3.0 + react-native-nitro-modules: ^0.11.0 + ts-morph: ^23.0.0 + yargs: ^17.7.2 + zod: ^3.23.8 + bin: + nitro-codegen: lib/index.js + checksum: 7028616eda1588dd10665e1ee39947d12fa82210a8cb3f904d27ca5314d31e660f4bdf6df8b89d221633a87a4d616b3d536cc294093f7dac013635e03a39287b + languageName: node + linkType: hard + "nocache@npm:^3.0.1": version: 3.0.4 resolution: "nocache@npm:3.0.4" @@ -9587,7 +10089,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.2.0, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.7": +"node-fetch@npm:^2.2.0, node-fetch@npm:^2.6.7": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -9642,6 +10144,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: ef55a3d853e1269a6d6279b7692cd6ff3e40bc74947945101138745bfdc9a5edabfe72cb19a31a8e45752e1910c4c65c77d931866af6357f242b172b7283f5b3 + languageName: node + linkType: hard + "node-stream-zip@npm:^1.9.1": version: 1.15.0 resolution: "node-stream-zip@npm:1.15.0" @@ -10106,18 +10615,20 @@ __metadata: "@babel/core": ^7.20.0 "@babel/preset-env": ^7.20.0 "@babel/runtime": ^7.20.0 - "@react-native/babel-preset": 0.74.83 - "@react-native/metro-config": 0.74.83 - "@react-native/typescript-config": 0.74.83 - "@react-navigation/native": ^6.1.17 - "@react-navigation/native-stack": ^6.9.26 + "@react-native/babel-preset": 0.75.4 + "@react-native/metro-config": 0.75.4 + "@react-native/typescript-config": 0.75.4 + "@react-navigation/native": ^6.1.18 + "@react-navigation/native-stack": ^6.11.0 babel-plugin-module-resolver: ^5.0.0 - react-native: 0.74.1 - react-native-gesture-handler: ^2.16.2 - react-native-reanimated: ^3.11.0 - react-native-safe-area-context: ^4.10.1 - react-native-screens: ^3.31.1 - react-native-video: ^6.1.2 + react: 18.3.1 + react-native: 0.75.4 + react-native-gesture-handler: ^2.20.0 + react-native-nitro-modules: ^0.11.0 + react-native-reanimated: ^3.15.4 + react-native-safe-area-context: ^4.11.0 + react-native-screens: ^3.34.0 + react-native-video: ^6.6.4 react-native-worklets-core: ^1.3.3 rn-fetch-blob: ^0.12.0 shared: "workspace:^" @@ -10144,7 +10655,7 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^5.0.0": +"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" dependencies: @@ -10181,6 +10692,13 @@ __metadata: languageName: node linkType: hard +"path-browserify@npm:^1.0.1": + version: 1.0.1 + resolution: "path-browserify@npm:1.0.1" + checksum: c6d7fa376423fe35b95b2d67990060c3ee304fc815ff0a2dc1c6c3cfaff2bd0d572ee67e18f19d0ea3bbe32e8add2a05021132ac40509416459fffee35200699 + languageName: node + linkType: hard + "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -10256,6 +10774,13 @@ __metadata: languageName: node linkType: hard +"picocolors@npm:^1.1.0": + version: 1.1.0 + resolution: "picocolors@npm:1.1.0" + checksum: a64d653d3a188119ff45781dfcdaeedd7625583f45280aea33fcb032c7a0d3959f2368f9b192ad5e8aade75b74dbd954ffe3106c158509a45e4c18ab379a2acd + languageName: node + linkType: hard + "picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" @@ -10528,13 +11053,6 @@ __metadata: languageName: node linkType: hard -"querystring@npm:^0.2.1": - version: 0.2.1 - resolution: "querystring@npm:0.2.1" - checksum: 7b83b45d641e75fd39cd6625ddfd44e7618e741c61e95281b57bbae8fde0afcc12cf851924559e5cc1ef9baa3b1e06e22b164ea1397d65dd94b801f678d9c8ce - languageName: node - linkType: hard - "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -10586,13 +11104,13 @@ __metadata: languageName: node linkType: hard -"react-devtools-core@npm:^5.0.0": - version: 5.2.0 - resolution: "react-devtools-core@npm:5.2.0" +"react-devtools-core@npm:^5.3.1": + version: 5.3.1 + resolution: "react-devtools-core@npm:5.3.1" dependencies: shell-quote: ^1.6.1 ws: ^7 - checksum: 9dbe3f38561fa187a1d518406546a52562cc374e4d2ec495f3a80bee5ed58a16be2e6dedda89d5844e8d981d9adba79fc1a04348a8c0f55c590ff8bf08d4a14f + checksum: a68434a6af8261f5eb7defd823ebc77cc86f42a93521755bc58e5925956af579a312e109f9b27f652d016c2d580ef28f6e8d1643502624c0fe7913c93c743170 languageName: node linkType: hard @@ -10605,13 +11123,6 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^16.12.0 || ^17.0.0 || ^18.0.0, react-is@npm:^18.0.0": - version: 18.2.0 - resolution: "react-is@npm:18.2.0" - checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e - languageName: node - linkType: hard - "react-is@npm:^16.13.0, react-is@npm:^16.13.1, react-is@npm:^16.7.0": version: 16.13.1 resolution: "react-is@npm:16.13.1" @@ -10626,6 +11137,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^18.0.0": + version: 18.2.0 + resolution: "react-is@npm:18.2.0" + checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e + languageName: node + linkType: hard + "react-native-builder-bob@npm:^0.20.0": version: 0.20.4 resolution: "react-native-builder-bob@npm:0.20.4" @@ -10666,19 +11184,20 @@ __metadata: "@babel/core": ^7.20.0 "@babel/preset-env": ^7.20.0 "@babel/runtime": ^7.20.0 - "@react-native/babel-preset": 0.74.83 - "@react-native/metro-config": 0.74.83 - "@react-native/typescript-config": 0.74.83 - "@react-navigation/native": ^6.1.17 - "@react-navigation/native-stack": ^6.9.26 + "@react-native/babel-preset": 0.75.4 + "@react-native/metro-config": 0.75.4 + "@react-native/typescript-config": 0.75.4 + "@react-navigation/native": ^6.1.18 + "@react-navigation/native-stack": ^6.11.0 babel-plugin-module-resolver: ^5.0.0 - react: 18.2.0 - react-native: 0.74.1 - react-native-gesture-handler: ^2.16.2 - react-native-reanimated: ^3.11.0 - react-native-safe-area-context: ^4.10.1 - react-native-screens: ^3.31.1 - react-native-video: ^6.1.2 + react: 18.3.1 + react-native: 0.75.4 + react-native-gesture-handler: ^2.20.0 + react-native-nitro-modules: ^0.11.0 + react-native-reanimated: ^3.15.4 + react-native-safe-area-context: ^4.11.0 + react-native-screens: ^3.34.0 + react-native-video: ^6.6.4 react-native-worklets-core: ^2.0.0-beta.4 rn-fetch-blob: ^0.12.0 shared: "workspace:^" @@ -10691,16 +11210,18 @@ __metadata: resolution: "react-native-filament@workspace:." dependencies: "@jamesacarr/eslint-formatter-github-actions": ^0.2.0 - "@react-native/eslint-config": ^0.73.1 + "@react-native/eslint-config": ^0.75.4 "@release-it/conventional-changelog": ^5.0.0 - "@types/react": ^18.2.44 + "@types/react": ^18.3.11 eslint: ^8.51.0 eslint-config-prettier: ^9.0.0 eslint-plugin-prettier: ^5.0.1 + nitro-codegen: ^0.11.0 prettier: ^3.0.3 - react: 18.2.0 - react-native: 0.74.1 + react: 18.3.1 + react-native: 0.75.4 react-native-builder-bob: ^0.20.0 + react-native-nitro-modules: ^0.11.0 react-native-worklets-core: ^2.0.0-beta.4 release-it: ^15.0.0 typescript: ^5.2.2 @@ -10711,31 +11232,43 @@ __metadata: languageName: unknown linkType: soft -"react-native-gesture-handler@npm:^2.16.2": - version: 2.16.2 - resolution: "react-native-gesture-handler@npm:2.16.2" +"react-native-gesture-handler@npm:^2.20.0": + version: 2.20.0 + resolution: "react-native-gesture-handler@npm:2.20.0" dependencies: "@egjs/hammerjs": ^2.0.17 hoist-non-react-statics: ^3.3.0 invariant: ^2.2.4 - lodash: ^4.17.21 prop-types: ^15.7.2 peerDependencies: react: "*" react-native: "*" - checksum: 3f3309de471b8de654624c54793f6d72236869156ee61c1adc8bba0f4aca6ffc8ed02035eb85820473091d33eb5ec8b42a0e387a21ec25dc30ee345dff0c1142 + checksum: f573bc3717ae0209ff30bf62b95b3c7f11bd97f4797090211bce416c250388f55d1995aac0a7f1bbc99b06223ea64cbeae8d4ef88dcb8c877201b49163ea0e4b + languageName: node + linkType: hard + +"react-native-nitro-modules@npm:^0.11.0": + version: 0.11.0 + resolution: "react-native-nitro-modules@npm:0.11.0" + peerDependencies: + react: "*" + react-native: "*" + checksum: 837d4bdc6eb0a273aae28e2a58579b5bc576874803f9685391347e20c34131d660ec2399bc0c2b25e63f969eb2e301c4fbbd68605d941ef31884e0ba0fb9a194 languageName: node linkType: hard -"react-native-reanimated@npm:^3.11.0": - version: 3.11.0 - resolution: "react-native-reanimated@npm:3.11.0" +"react-native-reanimated@npm:^3.15.4": + version: 3.15.4 + resolution: "react-native-reanimated@npm:3.15.4" dependencies: "@babel/plugin-transform-arrow-functions": ^7.0.0-0 + "@babel/plugin-transform-class-properties": ^7.0.0-0 + "@babel/plugin-transform-classes": ^7.0.0-0 "@babel/plugin-transform-nullish-coalescing-operator": ^7.0.0-0 "@babel/plugin-transform-optional-chaining": ^7.0.0-0 "@babel/plugin-transform-shorthand-properties": ^7.0.0-0 "@babel/plugin-transform-template-literals": ^7.0.0-0 + "@babel/plugin-transform-unicode-regex": ^7.0.0-0 "@babel/preset-typescript": ^7.16.7 convert-source-map: ^2.0.0 invariant: ^2.2.4 @@ -10743,40 +11276,40 @@ __metadata: "@babel/core": ^7.0.0-0 react: "*" react-native: "*" - checksum: 5d0c6be5c9b6d933755e50895a1ec903100800a83b7b48fbc6a4242063f0de52a78f5af69d39da4241f6071a4416602f150c3a53e9a97d20880edb3612ffadbd + checksum: 42eea2344797a7a749ae77f1c32586ba21bfc2e0fe0e05ccbcf6d9fad16cd7ae3407568574130f008b66c56a439b147cbb387c2ec586b0ac5bfe14527293f286 languageName: node linkType: hard -"react-native-safe-area-context@npm:^4.10.1": - version: 4.10.1 - resolution: "react-native-safe-area-context@npm:4.10.1" +"react-native-safe-area-context@npm:^4.11.0": + version: 4.11.0 + resolution: "react-native-safe-area-context@npm:4.11.0" peerDependencies: react: "*" react-native: "*" - checksum: a0f31a66f0aba7050cfdc34512349f49dd65349d53407d461196fa70010f65aca7310212d5c7c47078745db6e02975a4d97881d0340160d40e0feb5a4a5d9de2 + checksum: 6d6af265ecf1b9cb45e042a335f2c5da472ad41eb5d4fda8e31a1607b344726f0f4f9501ef3a3a731cec3784ba93485b44cbdafbf5f13055caa130c703bbd307 languageName: node linkType: hard -"react-native-screens@npm:^3.31.1": - version: 3.31.1 - resolution: "react-native-screens@npm:3.31.1" +"react-native-screens@npm:^3.34.0": + version: 3.34.0 + resolution: "react-native-screens@npm:3.34.0" dependencies: react-freeze: ^1.0.0 warn-once: ^0.1.0 peerDependencies: react: "*" react-native: "*" - checksum: 1fc61cf7a223b3ef1c8000e74416c8953561c5fa0861557da43659db62a640e37fb51fbdc35dae810a665881a7aa9eeaf1873e90f67404b4dda53a672464a7fe + checksum: 28c1f6e556c318ffcbd79d153b9612cc8a0b8d8b70f909d3cde2fd6d0586a7c151a449e57400d8996f4ee6c3b5140c5c4f643a427e974f6dc573b2bcd8eb7356 languageName: node linkType: hard -"react-native-video@npm:^6.1.2": - version: 6.1.2 - resolution: "react-native-video@npm:6.1.2" +"react-native-video@npm:^6.6.4": + version: 6.6.4 + resolution: "react-native-video@npm:6.6.4" peerDependencies: react: "*" react-native: "*" - checksum: 47c5079ba63dcedc8193e343205b8f73c0005e53f4846edcfac6be381b95da0e9f4eb455eb0e2fa090a200225d34026ce87e3dc47c14f4ec8924fe9bcadd2d84 + checksum: cf68bc6099b5f2a8e51a761ef35f35e0c05e158fc45154c1e6af9c2fd0a70b88be708f88438938c35a48e967041bbaa8b64bd71a1e2c9f379ec9f1031e72cc9e languageName: node linkType: hard @@ -10804,28 +11337,30 @@ __metadata: languageName: node linkType: hard -"react-native@npm:0.74.1": - version: 0.74.1 - resolution: "react-native@npm:0.74.1" +"react-native@npm:0.75.4": + version: 0.75.4 + resolution: "react-native@npm:0.75.4" dependencies: "@jest/create-cache-key-function": ^29.6.3 - "@react-native-community/cli": 13.6.6 - "@react-native-community/cli-platform-android": 13.6.6 - "@react-native-community/cli-platform-ios": 13.6.6 - "@react-native/assets-registry": 0.74.83 - "@react-native/codegen": 0.74.83 - "@react-native/community-cli-plugin": 0.74.83 - "@react-native/gradle-plugin": 0.74.83 - "@react-native/js-polyfills": 0.74.83 - "@react-native/normalize-colors": 0.74.83 - "@react-native/virtualized-lists": 0.74.83 + "@react-native-community/cli": 14.1.0 + "@react-native-community/cli-platform-android": 14.1.0 + "@react-native-community/cli-platform-ios": 14.1.0 + "@react-native/assets-registry": 0.75.4 + "@react-native/codegen": 0.75.4 + "@react-native/community-cli-plugin": 0.75.4 + "@react-native/gradle-plugin": 0.75.4 + "@react-native/js-polyfills": 0.75.4 + "@react-native/normalize-colors": 0.75.4 + "@react-native/virtualized-lists": 0.75.4 abort-controller: ^3.0.0 anser: ^1.4.9 ansi-regex: ^5.0.0 base64-js: ^1.5.1 chalk: ^4.0.0 + commander: ^9.4.1 event-target-shim: ^5.0.1 flow-enums-runtime: ^0.0.6 + glob: ^7.1.1 invariant: ^2.2.4 jest-environment-node: ^29.6.3 jsc-android: ^250231.0.0 @@ -10836,24 +11371,24 @@ __metadata: nullthrows: ^1.1.1 pretty-format: ^26.5.2 promise: ^8.3.0 - react-devtools-core: ^5.0.0 + react-devtools-core: ^5.3.1 react-refresh: ^0.14.0 - react-shallow-renderer: ^16.15.0 regenerator-runtime: ^0.13.2 scheduler: 0.24.0-canary-efb381bbf-20230505 + semver: ^7.1.3 stacktrace-parser: ^0.1.10 whatwg-fetch: ^3.0.0 ws: ^6.2.2 yargs: ^17.6.2 peerDependencies: "@types/react": ^18.2.6 - react: 18.2.0 + react: ^18.2.0 peerDependenciesMeta: "@types/react": optional: true bin: react-native: cli.js - checksum: f89c54da0b3f475bf1a90cfce62a062606ecdfa9974b264f2b69c823dd1e43c866e89d83d20d1af06018ce8301ca32a270c2f8eb06f6b3f3dcd816e9d0995cc3 + checksum: 7dcbffffd529b47d34c7457cdf71ec0c9257fa5e467d8395e61675eab4a2494727464a1cd6d2d1b1fd1348cf71c409ee4a28a79a43ea38b1eb99fcf16e910b1c languageName: node linkType: hard @@ -10864,24 +11399,12 @@ __metadata: languageName: node linkType: hard -"react-shallow-renderer@npm:^16.15.0": - version: 16.15.0 - resolution: "react-shallow-renderer@npm:16.15.0" - dependencies: - object-assign: ^4.1.1 - react-is: ^16.12.0 || ^17.0.0 || ^18.0.0 - peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - checksum: 6052c7e3e9627485120ebd8257f128aad8f56386fe8d42374b7743eac1be457c33506d153c7886b4e32923c0c352d402ab805ef9ca02dbcd8393b2bdeb6e5af8 - languageName: node - linkType: hard - -"react@npm:18.2.0": - version: 18.2.0 - resolution: "react@npm:18.2.0" +"react@npm:18.3.1": + version: 18.3.1 + resolution: "react@npm:18.3.1" dependencies: loose-envify: ^1.1.0 - checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + checksum: a27bcfa8ff7c15a1e50244ad0d0c1cb2ad4375eeffefd266a64889beea6f6b64c4966c9b37d14ee32d6c9fcd5aa6ba183b6988167ab4d127d13e7cb5b386a376 languageName: node linkType: hard @@ -11017,6 +11540,15 @@ __metadata: languageName: node linkType: hard +"regenerate-unicode-properties@npm:^10.2.0": + version: 10.2.0 + resolution: "regenerate-unicode-properties@npm:10.2.0" + dependencies: + regenerate: ^1.4.2 + checksum: d5c5fc13f8b8d7e16e791637a4bfef741f8d70e267d51845ee7d5404a32fa14c75b181c4efba33e4bff8b0000a2f13e9773593713dfe5b66597df4259275ce63 + languageName: node + linkType: hard + "regenerate@npm:^1.4.2": version: 1.4.2 resolution: "regenerate@npm:1.4.2" @@ -11073,6 +11605,20 @@ __metadata: languageName: node linkType: hard +"regexpu-core@npm:^6.1.1": + version: 6.1.1 + resolution: "regexpu-core@npm:6.1.1" + dependencies: + regenerate: ^1.4.2 + regenerate-unicode-properties: ^10.2.0 + regjsgen: ^0.8.0 + regjsparser: ^0.11.0 + unicode-match-property-ecmascript: ^2.0.0 + unicode-match-property-value-ecmascript: ^2.1.0 + checksum: ed8e3784e81b816b237313688f28b4695d30d4e0f823dfdf130fd4313c629ac6ec67650563867a6ca9a2435f33e79f3a5001c651aee52791e346213a948de0ff + languageName: node + linkType: hard + "registry-auth-token@npm:^5.0.1": version: 5.0.2 resolution: "registry-auth-token@npm:5.0.2" @@ -11091,6 +11637,24 @@ __metadata: languageName: node linkType: hard +"regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "regjsgen@npm:0.8.0" + checksum: a1d925ff14a4b2be774e45775ee6b33b256f89c42d480e6d85152d2133f18bd3d6af662161b226fa57466f7efec367eaf7ccd2a58c0ec2a1306667ba2ad07b0d + languageName: node + linkType: hard + +"regjsparser@npm:^0.11.0": + version: 0.11.1 + resolution: "regjsparser@npm:0.11.1" + dependencies: + jsesc: ~3.0.2 + bin: + regjsparser: bin/parser + checksum: 231d60810ca12a760393d65d149aa9501ea28b02c27a61c551b4f9162fe3cf48b289423515b73b1aea52949346e78c76cd552ac7169817d31f34df348db90fb4 + languageName: node + linkType: hard + "regjsparser@npm:^0.9.1": version: 0.9.1 resolution: "regjsparser@npm:0.9.1" @@ -11461,6 +12025,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.1.3, semver@npm:^7.6.0": + version: 7.6.3 + resolution: "semver@npm:7.6.3" + bin: + semver: bin/semver.js + checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8 + languageName: node + linkType: hard + "semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2": version: 7.6.0 resolution: "semver@npm:7.6.0" @@ -11568,19 +12141,19 @@ __metadata: "@babel/core": ^7.20.0 "@babel/preset-env": ^7.20.0 "@babel/runtime": ^7.20.0 - "@react-native/babel-preset": 0.74.83 - "@react-native/metro-config": 0.74.83 - "@react-native/typescript-config": 0.74.83 - "@react-navigation/native": ^6.1.17 - "@react-navigation/native-stack": ^6.9.26 + "@react-native/babel-preset": 0.75.4 + "@react-native/metro-config": 0.75.4 + "@react-native/typescript-config": 0.75.4 + "@react-navigation/native": ^6.1.18 + "@react-navigation/native-stack": ^6.11.0 babel-plugin-module-resolver: ^5.0.0 - react: 18.2.0 - react-native: 0.74.1 - react-native-gesture-handler: ^2.16.2 - react-native-reanimated: ^3.11.0 - react-native-safe-area-context: ^4.10.1 - react-native-screens: ^3.31.1 - react-native-video: ^6.1.2 + react: 18.3.1 + react-native: 0.75.4 + react-native-gesture-handler: ^2.20.0 + react-native-reanimated: ^3.15.4 + react-native-safe-area-context: ^4.11.0 + react-native-screens: ^3.34.0 + react-native-video: ^6.6.4 react-native-worklets-core: ^2.0.0-beta.4 rn-fetch-blob: ^0.12.0 typescript: 5.2.2 @@ -11744,13 +12317,6 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.7.3": - version: 0.7.4 - resolution: "source-map@npm:0.7.4" - checksum: 01cc5a74b1f0e1d626a58d36ad6898ea820567e87f18dfc9d24a9843a351aaa2ec09b87422589906d6ff1deed29693e176194dc88bcae7c9a852dc74b311dbf5 - languageName: node - linkType: hard - "spdx-correct@npm:^3.0.0": version: 3.2.0 resolution: "spdx-correct@npm:3.2.0" @@ -12144,13 +12710,6 @@ __metadata: languageName: node linkType: hard -"temp-dir@npm:^2.0.0": - version: 2.0.0 - resolution: "temp-dir@npm:2.0.0" - checksum: cc4f0404bf8d6ae1a166e0e64f3f409b423f4d1274d8c02814a59a5529f07db6cd070a749664141b992b2c1af337fa9bb451a460a43bb9bcddc49f235d3115aa - languageName: node - linkType: hard - "temp@npm:^0.8.4": version: 0.8.4 resolution: "temp@npm:0.8.4" @@ -12281,6 +12840,25 @@ __metadata: languageName: node linkType: hard +"ts-api-utils@npm:^1.3.0": + version: 1.3.0 + resolution: "ts-api-utils@npm:1.3.0" + peerDependencies: + typescript: ">=4.2.0" + checksum: c746ddabfdffbf16cb0b0db32bb287236a19e583057f8649ee7c49995bb776e1d3ef384685181c11a1a480369e022ca97512cb08c517b2d2bd82c83754c97012 + languageName: node + linkType: hard + +"ts-morph@npm:^23.0.0": + version: 23.0.0 + resolution: "ts-morph@npm:23.0.0" + dependencies: + "@ts-morph/common": ~0.24.0 + code-block-writer: ^13.0.1 + checksum: 3282eb0f8bd4577770874736c3259b97501da9a86137160b5d68f106b7848ea7b1fbccf9e198a3d930ec40c993e9951d4bfae31e2562dac8f3de0d7bb0e23615 + languageName: node + linkType: hard + "tslib@npm:^1.8.1": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -12652,6 +13230,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.1.0": + version: 1.1.1 + resolution: "update-browserslist-db@npm:1.1.1" + dependencies: + escalade: ^3.2.0 + picocolors: ^1.1.0 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 2ea11bd2562122162c3e438d83a1f9125238c0844b6d16d366e3276d0c0acac6036822dc7df65fc5a89c699cdf9f174acf439c39bedf3f9a2f3983976e4b4c3e + languageName: node + linkType: hard + "update-notifier@npm:6.0.2": version: 6.0.2 resolution: "update-notifier@npm:6.0.2" @@ -12690,12 +13282,12 @@ __metadata: languageName: node linkType: hard -"use-latest-callback@npm:^0.1.9": - version: 0.1.9 - resolution: "use-latest-callback@npm:0.1.9" +"use-latest-callback@npm:^0.2.1": + version: 0.2.1 + resolution: "use-latest-callback@npm:0.2.1" peerDependencies: react: ">=16.8" - checksum: 620969d85763b65aca5f9b601c31eb476a8f7602cfccfb3c0f9dc60ff3b863e04dd64360ada255e15606771513de33b25e4631607d702605b26630f61381b3d4 + checksum: da5718eda625738cc7dac8fb502d0f8f2039435eb71203565a72c32e0f5769e7b8ddac074e650066636e7f4b29b45524f751cb18a2b430856d98879bbb10d274 languageName: node linkType: hard @@ -13012,6 +13604,15 @@ __metadata: languageName: node linkType: hard +"ws@npm:^6.2.3": + version: 6.2.3 + resolution: "ws@npm:6.2.3" + dependencies: + async-limiter: ~1.0.0 + checksum: bbc96ff5628832d80669a88fd117487bf070492dfaa50df77fa442a2b119792e772f4365521e0a8e025c0d51173c54fa91adab165c11b8e0674685fdd36844a5 + languageName: node + linkType: hard + "ws@npm:^7, ws@npm:^7.5.1": version: 7.5.9 resolution: "ws@npm:7.5.9" @@ -13141,7 +13742,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.5.1, yargs@npm:^17.6.2": +"yargs@npm:^17.5.1, yargs@npm:^17.6.2, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: @@ -13162,3 +13763,10 @@ __metadata: checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 languageName: node linkType: hard + +"zod@npm:^3.23.8": + version: 3.23.8 + resolution: "zod@npm:3.23.8" + checksum: 15949ff82118f59c893dacd9d3c766d02b6fa2e71cf474d5aa888570c469dbf5446ac5ad562bb035bf7ac9650da94f290655c194f4a6de3e766f43febd432c5c + languageName: node + linkType: hard