diff --git a/.changeset/purple-drinks-allow.md b/.changeset/purple-drinks-allow.md new file mode 100644 index 0000000..3679aac --- /dev/null +++ b/.changeset/purple-drinks-allow.md @@ -0,0 +1,5 @@ +--- +'@journeyapps/react-native-quick-sqlite': minor +--- + +Improved behaviour for closing a database connection. This should prevent some crash issues. diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index edd476c..f4076a9 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -58,6 +58,9 @@ jobs: cd tests yarn install --frozen-lockfile + - name: Initialize Android Folder + run: mkdir -p ~/.android/avd + - name: create AVD and generate snapshot for caching if: steps.avd-cache.outputs.cache-hit != 'true' uses: reactivecircus/android-emulator-runner@v2.28.0 diff --git a/cpp/ConnectionPool.cpp b/cpp/ConnectionPool.cpp index fff9e6f..a6b9d1e 100644 --- a/cpp/ConnectionPool.cpp +++ b/cpp/ConnectionPool.cpp @@ -19,6 +19,7 @@ ConnectionPool::ConnectionPool(std::string dbName, std::string docPath, onContextCallback = nullptr; isConcurrencyEnabled = maxReads > 0; + isClosed = false; readConnections = new ConnectionState *[maxReads]; // Open the read connections @@ -94,7 +95,14 @@ ConnectionPool::queueInContext(ConnectionLockId contextId, }; } - state->queueWork(task); + try { + state->queueWork(task); + } catch (const std::exception &e) { + return SQLiteOPResult{ + .errorMessage = e.what(), + .type = SQLiteError, + }; + } return SQLiteOPResult{ .type = SQLiteOk, @@ -162,6 +170,14 @@ void ConnectionPool::closeContext(ConnectionLockId contextId) { } void ConnectionPool::closeAll() { + isClosed = true; + // Stop any callbacks + sqlite3_commit_hook(writeConnection.connection, + NULL, NULL); + sqlite3_rollback_hook(writeConnection.connection, + NULL, NULL); + sqlite3_update_hook(writeConnection.connection, + NULL, NULL); writeConnection.close(); for (int i = 0; i < maxReads; i++) { readConnections[i]->close(); diff --git a/cpp/ConnectionPool.h b/cpp/ConnectionPool.h index 31df22b..173a762 100644 --- a/cpp/ConnectionPool.h +++ b/cpp/ConnectionPool.h @@ -75,6 +75,8 @@ class ConnectionPool { bool isConcurrencyEnabled; public: + bool isClosed; + ConnectionPool(std::string dbName, std::string docPath, unsigned int numReadConnections); ~ConnectionPool(); diff --git a/cpp/ConnectionState.cpp b/cpp/ConnectionState.cpp index 2a64dca..dcf29b1 100644 --- a/cpp/ConnectionState.cpp +++ b/cpp/ConnectionState.cpp @@ -10,23 +10,17 @@ SQLiteOPResult genericSqliteOpenDb(string const dbName, string const docPath, ConnectionState::ConnectionState(const std::string dbName, const std::string docPath, int SQLFlags) { auto result = genericSqliteOpenDb(dbName, docPath, &connection, SQLFlags); - - this->clearLock(); - threadDone = false; - thread = new std::thread(&ConnectionState::doWork, this); + if (result.type != SQLiteOk) { + throw std::runtime_error("Failed to open SQLite database: " + result.errorMessage); + } + thread = std::thread(&ConnectionState::doWork, this); + this->clearLock(); } ConnectionState::~ConnectionState() { - // So threads know it's time to shut down - threadDone = true; - - // Wake up all the threads, so they can finish and be joined - workQueueConditionVariable.notify_all(); - if (thread->joinable()) { - thread->join(); + if (!isClosed) { + close(); } - - delete thread; } void ConnectionState::clearLock() { @@ -64,21 +58,41 @@ std::future ConnectionState::refreshSchema() { } void ConnectionState::close() { + { + std::unique_lock g(workQueueMutex); + // prevent any new work from being queued + isClosed = true; + } + + // Wait for the work queue to empty waitFinished(); - // So that the thread can stop (if not already) - threadDone = true; + + { + // Now signal the thread to stop and notify it + std::unique_lock g(workQueueMutex); + threadDone = true; + workQueueConditionVariable.notify_all(); + } + + // Join the worker thread + if (thread.joinable()) { + thread.join(); + } + + // Safely close the SQLite connection sqlite3_close_v2(connection); } void ConnectionState::queueWork(std::function task) { - // Grab the mutex - std::lock_guard g(workQueueMutex); - - // Push the request to the queue - workQueue.push(task); + { + std::unique_lock g(workQueueMutex); + if (isClosed) { + throw std::runtime_error("Connection is not open. Connection has been closed before queueing work."); + } + workQueue.push(task); + } - // Notify one thread that there are requests to process - workQueueConditionVariable.notify_all(); + workQueueConditionVariable.notify_all(); } void ConnectionState::doWork() { @@ -104,9 +118,9 @@ void ConnectionState::doWork() { workQueue.pop(); } - ++threadBusy; + threadBusy = true; task(connection); - --threadBusy; + threadBusy = false; // Need to notify in order for waitFinished to be updated when // the queue is empty and not busy { @@ -118,11 +132,8 @@ void ConnectionState::doWork() { void ConnectionState::waitFinished() { std::unique_lock g(workQueueMutex); - if (workQueue.empty()) { - return; - } workQueueConditionVariable.wait( - g, [&] { return workQueue.empty() && (threadBusy == 0); }); + g, [&] { return workQueue.empty() && !threadBusy; }); } SQLiteOPResult genericSqliteOpenDb(string const dbName, string const docPath, diff --git a/cpp/ConnectionState.h b/cpp/ConnectionState.h index f4d459f..23b47a8 100644 --- a/cpp/ConnectionState.h +++ b/cpp/ConnectionState.h @@ -25,14 +25,16 @@ class ConnectionState { // Mutex to protect workQueue std::mutex workQueueMutex; // Store thread in order to stop it gracefully - std::thread *thread; + std::thread thread; // This condition variable is used for the threads to wait until there is work // to do std::condition_variable_any workQueueConditionVariable; - unsigned int threadBusy; - bool threadDone; + std::atomic threadBusy{false}; + std::atomic threadDone{false}; public: + std::atomic isClosed{false}; + ConnectionState(const std::string dbName, const std::string docPath, int SQLFlags); ~ConnectionState(); diff --git a/cpp/bindings.cpp b/cpp/bindings.cpp index aa24d29..247b90b 100644 --- a/cpp/bindings.cpp +++ b/cpp/bindings.cpp @@ -77,17 +77,30 @@ void transactionFinalizerHandler(const TransactionCallbackPayload *payload) { * This function triggers an async invocation to call watch callbacks, * avoiding holding SQLite up. */ - invoker->invokeAsync([payload] { + + // Make a copy of the payload data, this avoids a potential race condition + // where the async invocation might occur after closing a connection + auto dbName = std::make_shared(*payload->dbName); + int event = payload->event; + invoker->invokeAsync([dbName, event] { try { + + ConnectionPool* connection = getConnection(*dbName); + if (connection == nullptr || connection->isClosed) { + return; + } + auto global = runtime->global(); jsi::Function handlerFunction = global.getPropertyAsFunction( *runtime, "triggerTransactionFinalizerHook"); - auto jsiDbName = jsi::String::createFromAscii(*runtime, *payload->dbName); - auto jsiEventType = jsi::Value((int)payload->event); + auto jsiDbName = jsi::String::createFromAscii(*runtime, *dbName); + auto jsiEventType = jsi::Value(event); handlerFunction.call(*runtime, move(jsiDbName), move(jsiEventType)); } catch (jsi::JSINativeException e) { std::cout << e.what() << std::endl; + } catch (const std::exception& e) { + std::cout << "Standard Exception: " << e.what() << std::endl; } catch (...) { std::cout << "Unknown error" << std::endl; } @@ -384,7 +397,14 @@ void osp::install(jsi::Runtime &rt, } }; - sqliteQueueInContext(dbName, contextLockId, task); + auto response = sqliteQueueInContext(dbName, contextLockId, task); + if (response.type == SQLiteError) { + auto errorCtr = rt.global().getPropertyAsFunction(rt, "Error"); + auto error = errorCtr.callAsConstructor( + rt, jsi::String::createFromUtf8( + rt, response.errorMessage)); + reject->asObject(rt).asFunction(rt).call(rt, error); + } return {}; })); diff --git a/cpp/sqliteBridge.cpp b/cpp/sqliteBridge.cpp index 3f39eb7..18e1518 100644 --- a/cpp/sqliteBridge.cpp +++ b/cpp/sqliteBridge.cpp @@ -32,6 +32,16 @@ SQLiteOPResult generateNotOpenResult(std::string const &dbName) { }; } +ConnectionPool *getConnection(std::string const dbName) { + if (dbMap.count(dbName) == 0) { + // Connection is already closed + return nullptr; + } + + return dbMap[dbName]; +} + + /** * Opens SQL database with default settings */ @@ -50,10 +60,18 @@ sqliteOpenDb(string const dbName, string const docPath, }; } - dbMap[dbName] = new ConnectionPool(dbName, docPath, numReadConnections); - dbMap[dbName]->setOnContextAvailable(contextAvailableCallback); - dbMap[dbName]->setTableUpdateHandler(updateTableCallback); - dbMap[dbName]->setTransactionFinalizerHandler(onTransactionFinalizedCallback); + try { + // Open the database + dbMap[dbName] = new ConnectionPool(dbName, docPath, numReadConnections); + dbMap[dbName]->setOnContextAvailable(contextAvailableCallback); + dbMap[dbName]->setTableUpdateHandler(updateTableCallback); + dbMap[dbName]->setTransactionFinalizerHandler(onTransactionFinalizedCallback); + } catch (const std::exception &e) { + return SQLiteOPResult{ + .type = SQLiteError, + .errorMessage = e.what(), + }; + } return SQLiteOPResult{ .type = SQLiteOk, @@ -126,13 +144,6 @@ SQLiteOPResult sqliteRequestLock(std::string const dbName, ConnectionPool *connection = dbMap[dbName]; - if (connection == nullptr) { - return SQLiteOPResult{ - .type = SQLiteOk, - - }; - } - switch (lockType) { case ConcurrentLockType::ReadLock: connection->readLock(contextId); @@ -147,6 +158,7 @@ SQLiteOPResult sqliteRequestLock(std::string const dbName, return SQLiteOPResult{ .type = SQLiteOk, + }; } diff --git a/cpp/sqliteBridge.h b/cpp/sqliteBridge.h index 2020931..c918620 100644 --- a/cpp/sqliteBridge.h +++ b/cpp/sqliteBridge.h @@ -40,6 +40,8 @@ SQLiteOPResult sqliteCloseDb(string const dbName); void sqliteCloseAll(); +ConnectionPool *getConnection(std::string const dbName); + SQLiteOPResult sqliteRemoveDb(string const dbName, string const docPath); /** diff --git a/src/DBListenerManager.ts b/src/DBListenerManager.ts index c888c4e..1492332 100644 --- a/src/DBListenerManager.ts +++ b/src/DBListenerManager.ts @@ -39,6 +39,8 @@ export interface DBListener extends BaseListener { * is started, committed or rolled back. */ writeTransaction: (event: WriteTransactionEvent) => void; + + closed: () => void; } export class DBListenerManager extends BaseObserver {} diff --git a/src/setup-open.ts b/src/setup-open.ts index 229907f..6ff3414 100644 --- a/src/setup-open.ts +++ b/src/setup-open.ts @@ -1,20 +1,20 @@ import { - ISQLite, ConcurrentLockType, - QuickSQLiteConnection, ContextLockID, + ISQLite, LockContext, LockOptions, - TransactionContext, - UpdateCallback, - SQLBatchTuple, OpenOptions, - QueryResult + QueryResult, + QuickSQLiteConnection, + SQLBatchTuple, + TransactionContext, + UpdateCallback } from './types'; -import { enhanceQueryResult } from './utils'; import { DBListenerManagerInternal } from './DBListenerManager'; import { LockHooks } from './lock-hooks'; +import { enhanceQueryResult } from './utils'; type LockCallbackRecord = { callback: (context: LockContext) => Promise; @@ -60,6 +60,9 @@ global.onLockContextIsAvailable = async (dbName: string, lockId: ContextLockID) setImmediate(async () => { try { const record = LockCallbacks[lockId]; + // clear record after fetching, the hash should only contain pending requests + delete LockCallbacks[lockId]; + if (record?.timeout) { clearTimeout(record.timeout); } @@ -116,12 +119,23 @@ export function setupOpen(QuickSQLite: ISQLite) { // Wrap the callback in a promise that will resolve to the callback result return new Promise((resolve, reject) => { // Add callback to the queue for timing + const closedListener = listenerManager.registerListener({ + closed: () => { + closedListener?.(); + // Remove callback from the queue + delete LockCallbacks[id]; + // Reject the lock request if the connection is closed + reject(new Error('Connection is closed')); + } + }); + const record = (LockCallbacks[id] = { callback: async (context: LockContext) => { try { + // Remove the close listener + closedListener?.(); await hooks?.lockAcquired?.(); const res = await callback(context); - closeContextLock(dbName, id); resolve(res); } catch (ex) { @@ -134,6 +148,7 @@ export function setupOpen(QuickSQLite: ISQLite) { } as LockCallbackRecord); try { + // throws if lock could not be requested QuickSQLite.requestLock(dbName, id, type); const timeout = options?.timeoutMs; if (timeout) { @@ -144,6 +159,7 @@ export function setupOpen(QuickSQLite: ISQLite) { }, timeout); } } catch (ex) { + closedListener?.(); // Remove callback from the queue delete LockCallbacks[id]; reject(ex); @@ -224,7 +240,11 @@ export function setupOpen(QuickSQLite: ISQLite) { // Return the concurrent connection object return { - close: () => QuickSQLite.close(dbName), + close: () => { + QuickSQLite.close(dbName); + // Close any pending listeners + listenerManager.iterateListeners((l) => l.closed?.()); + }, refreshSchema: () => QuickSQLite.refreshSchema(dbName), execute: (sql: string, args?: any[]) => writeLock((context) => context.execute(sql, args)), readLock, diff --git a/tests/android/build.gradle b/tests/android/build.gradle index e34231b..a462e3a 100644 --- a/tests/android/build.gradle +++ b/tests/android/build.gradle @@ -39,3 +39,4 @@ allprojects { maven { url 'https://www.jitpack.io' } } } + diff --git a/tests/babel.config.js b/tests/babel.config.js index 06c033a..5bb1483 100644 --- a/tests/babel.config.js +++ b/tests/babel.config.js @@ -3,6 +3,7 @@ module.exports = function (api) { return { presets: ['babel-preset-expo'], plugins: [ + '@babel/plugin-transform-class-static-block', [ 'module-resolver', { diff --git a/tests/ios/Podfile b/tests/ios/Podfile index af81ed8..2bb15b7 100644 --- a/tests/ios/Podfile +++ b/tests/ios/Podfile @@ -7,7 +7,7 @@ podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0' ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] -platform :ios, podfile_properties['ios.deploymentTarget'] || '16.0' +platform :ios, podfile_properties['ios.deploymentTarget'] || '15.1' install! 'cocoapods', :deterministic_uuids => false @@ -41,13 +41,15 @@ target 'tests' do :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes', # An absolute path to your application root. :app_path => "#{Pod::Config.instance.installation_root}/..", + :privacy_file_aggregation_enabled => podfile_properties['apple.privacyManifestAggregationEnabled'] != 'false', ) post_install do |installer| react_native_post_install( installer, config[:reactNativePath], - :mac_catalyst_enabled => false + :mac_catalyst_enabled => false, + :ccache_enabled => podfile_properties['apple.ccacheEnabled'] == 'true', ) # This is necessary for Xcode 14, because it signs resource bundles by default @@ -61,12 +63,4 @@ target 'tests' do end end end - - post_integrate do |installer| - begin - expo_patch_react_imports!(installer) - rescue => e - Pod::UI.warn e - end - end end diff --git a/tests/ios/Podfile.lock b/tests/ios/Podfile.lock index ef10708..c7203f1 100644 --- a/tests/ios/Podfile.lock +++ b/tests/ios/Podfile.lock @@ -1,19 +1,19 @@ PODS: - boost (1.84.0) - DoubleConversion (1.1.6) - - EXConstants (17.0.3): + - EXConstants (17.0.4): - ExpoModulesCore - - Expo (52.0.7): + - Expo (52.0.27): - ExpoModulesCore - - ExpoAsset (11.0.1): + - ExpoAsset (11.0.2): - ExpoModulesCore - - ExpoFileSystem (18.0.3): + - ExpoFileSystem (18.0.7): - ExpoModulesCore - - ExpoFont (13.0.1): + - ExpoFont (13.0.3): - ExpoModulesCore - - ExpoKeepAwake (14.0.1): + - ExpoKeepAwake (14.0.2): - ExpoModulesCore - - ExpoModulesCore (2.0.3): + - ExpoModulesCore (2.1.4): - DoubleConversion - glog - hermes-engine @@ -36,15 +36,15 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - ExpoSplashScreen (0.29.10): + - ExpoSplashScreen (0.29.21): - ExpoModulesCore - - FBLazyVector (0.76.2) + - FBLazyVector (0.76.6) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.76.2): - - hermes-engine/Pre-built (= 0.76.2) - - hermes-engine/Pre-built (0.76.2) - - powersync-sqlite-core (0.3.8) + - hermes-engine (0.76.6): + - hermes-engine/Pre-built (= 0.76.6) + - hermes-engine/Pre-built (0.76.6) + - powersync-sqlite-core (0.3.9) - RCT-Folly (2024.01.01.00): - boost - DoubleConversion @@ -61,32 +61,32 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.76.2) - - RCTRequired (0.76.2) - - RCTTypeSafety (0.76.2): - - FBLazyVector (= 0.76.2) - - RCTRequired (= 0.76.2) - - React-Core (= 0.76.2) - - React (0.76.2): - - React-Core (= 0.76.2) - - React-Core/DevSupport (= 0.76.2) - - React-Core/RCTWebSocket (= 0.76.2) - - React-RCTActionSheet (= 0.76.2) - - React-RCTAnimation (= 0.76.2) - - React-RCTBlob (= 0.76.2) - - React-RCTImage (= 0.76.2) - - React-RCTLinking (= 0.76.2) - - React-RCTNetwork (= 0.76.2) - - React-RCTSettings (= 0.76.2) - - React-RCTText (= 0.76.2) - - React-RCTVibration (= 0.76.2) - - React-callinvoker (0.76.2) - - React-Core (0.76.2): + - RCTDeprecation (0.76.6) + - RCTRequired (0.76.6) + - RCTTypeSafety (0.76.6): + - FBLazyVector (= 0.76.6) + - RCTRequired (= 0.76.6) + - React-Core (= 0.76.6) + - React (0.76.6): + - React-Core (= 0.76.6) + - React-Core/DevSupport (= 0.76.6) + - React-Core/RCTWebSocket (= 0.76.6) + - React-RCTActionSheet (= 0.76.6) + - React-RCTAnimation (= 0.76.6) + - React-RCTBlob (= 0.76.6) + - React-RCTImage (= 0.76.6) + - React-RCTLinking (= 0.76.6) + - React-RCTNetwork (= 0.76.6) + - React-RCTSettings (= 0.76.6) + - React-RCTText (= 0.76.6) + - React-RCTVibration (= 0.76.6) + - React-callinvoker (0.76.6) + - React-Core (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.76.2) + - React-Core/Default (= 0.76.6) - React-cxxreact - React-featureflags - React-hermes @@ -98,7 +98,7 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/CoreModulesHeaders (0.76.2): + - React-Core/CoreModulesHeaders (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -115,7 +115,7 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/Default (0.76.2): + - React-Core/Default (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -131,13 +131,13 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/DevSupport (0.76.2): + - React-Core/DevSupport (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.76.2) - - React-Core/RCTWebSocket (= 0.76.2) + - React-Core/Default (= 0.76.6) + - React-Core/RCTWebSocket (= 0.76.6) - React-cxxreact - React-featureflags - React-hermes @@ -149,7 +149,7 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.76.2): + - React-Core/RCTActionSheetHeaders (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -166,7 +166,7 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTAnimationHeaders (0.76.2): + - React-Core/RCTAnimationHeaders (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -183,7 +183,7 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTBlobHeaders (0.76.2): + - React-Core/RCTBlobHeaders (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -200,7 +200,7 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTImageHeaders (0.76.2): + - React-Core/RCTImageHeaders (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -217,7 +217,7 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTLinkingHeaders (0.76.2): + - React-Core/RCTLinkingHeaders (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -234,7 +234,7 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTNetworkHeaders (0.76.2): + - React-Core/RCTNetworkHeaders (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -251,7 +251,7 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTSettingsHeaders (0.76.2): + - React-Core/RCTSettingsHeaders (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -268,7 +268,7 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTTextHeaders (0.76.2): + - React-Core/RCTTextHeaders (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -285,7 +285,7 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTVibrationHeaders (0.76.2): + - React-Core/RCTVibrationHeaders (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -302,12 +302,12 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-Core/RCTWebSocket (0.76.2): + - React-Core/RCTWebSocket (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.76.2) + - React-Core/Default (= 0.76.6) - React-cxxreact - React-featureflags - React-hermes @@ -319,37 +319,37 @@ PODS: - React-utils - SocketRocket (= 0.7.1) - Yoga - - React-CoreModules (0.76.2): + - React-CoreModules (0.76.6): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.76.2) - - React-Core/CoreModulesHeaders (= 0.76.2) - - React-jsi (= 0.76.2) + - RCTTypeSafety (= 0.76.6) + - React-Core/CoreModulesHeaders (= 0.76.6) + - React-jsi (= 0.76.6) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.76.2) + - React-RCTImage (= 0.76.6) - ReactCodegen - ReactCommon - SocketRocket (= 0.7.1) - - React-cxxreact (0.76.2): + - React-cxxreact (0.76.6): - boost - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.76.2) - - React-debug (= 0.76.2) - - React-jsi (= 0.76.2) + - React-callinvoker (= 0.76.6) + - React-debug (= 0.76.6) + - React-jsi (= 0.76.6) - React-jsinspector - - React-logger (= 0.76.2) - - React-perflogger (= 0.76.2) - - React-runtimeexecutor (= 0.76.2) - - React-timing (= 0.76.2) - - React-debug (0.76.2) - - React-defaultsnativemodule (0.76.2): + - React-logger (= 0.76.6) + - React-perflogger (= 0.76.6) + - React-runtimeexecutor (= 0.76.6) + - React-timing (= 0.76.6) + - React-debug (0.76.6) + - React-defaultsnativemodule (0.76.6): - DoubleConversion - glog - hermes-engine @@ -374,7 +374,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-domnativemodule (0.76.2): + - React-domnativemodule (0.76.6): - DoubleConversion - glog - hermes-engine @@ -396,7 +396,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-Fabric (0.76.2): + - React-Fabric (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -407,21 +407,21 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.76.2) - - React-Fabric/attributedstring (= 0.76.2) - - React-Fabric/componentregistry (= 0.76.2) - - React-Fabric/componentregistrynative (= 0.76.2) - - React-Fabric/components (= 0.76.2) - - React-Fabric/core (= 0.76.2) - - React-Fabric/dom (= 0.76.2) - - React-Fabric/imagemanager (= 0.76.2) - - React-Fabric/leakchecker (= 0.76.2) - - React-Fabric/mounting (= 0.76.2) - - React-Fabric/observers (= 0.76.2) - - React-Fabric/scheduler (= 0.76.2) - - React-Fabric/telemetry (= 0.76.2) - - React-Fabric/templateprocessor (= 0.76.2) - - React-Fabric/uimanager (= 0.76.2) + - React-Fabric/animations (= 0.76.6) + - React-Fabric/attributedstring (= 0.76.6) + - React-Fabric/componentregistry (= 0.76.6) + - React-Fabric/componentregistrynative (= 0.76.6) + - React-Fabric/components (= 0.76.6) + - React-Fabric/core (= 0.76.6) + - React-Fabric/dom (= 0.76.6) + - React-Fabric/imagemanager (= 0.76.6) + - React-Fabric/leakchecker (= 0.76.6) + - React-Fabric/mounting (= 0.76.6) + - React-Fabric/observers (= 0.76.6) + - React-Fabric/scheduler (= 0.76.6) + - React-Fabric/telemetry (= 0.76.6) + - React-Fabric/templateprocessor (= 0.76.6) + - React-Fabric/uimanager (= 0.76.6) - React-featureflags - React-graphics - React-jsi @@ -431,7 +431,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.76.2): + - React-Fabric/animations (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -451,7 +451,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.76.2): + - React-Fabric/attributedstring (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -471,7 +471,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.76.2): + - React-Fabric/componentregistry (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -491,7 +491,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.76.2): + - React-Fabric/componentregistrynative (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -511,7 +511,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.76.2): + - React-Fabric/components (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -522,9 +522,9 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/legacyviewmanagerinterop (= 0.76.2) - - React-Fabric/components/root (= 0.76.2) - - React-Fabric/components/view (= 0.76.2) + - React-Fabric/components/legacyviewmanagerinterop (= 0.76.6) + - React-Fabric/components/root (= 0.76.6) + - React-Fabric/components/view (= 0.76.6) - React-featureflags - React-graphics - React-jsi @@ -534,7 +534,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.76.2): + - React-Fabric/components/legacyviewmanagerinterop (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -554,7 +554,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.76.2): + - React-Fabric/components/root (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -574,7 +574,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.76.2): + - React-Fabric/components/view (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -595,7 +595,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.76.2): + - React-Fabric/core (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -615,7 +615,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/dom (0.76.2): + - React-Fabric/dom (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -635,7 +635,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.76.2): + - React-Fabric/imagemanager (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -655,7 +655,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.76.2): + - React-Fabric/leakchecker (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -675,7 +675,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.76.2): + - React-Fabric/mounting (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -695,7 +695,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/observers (0.76.2): + - React-Fabric/observers (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -706,7 +706,7 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/observers/events (= 0.76.2) + - React-Fabric/observers/events (= 0.76.6) - React-featureflags - React-graphics - React-jsi @@ -716,7 +716,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/observers/events (0.76.2): + - React-Fabric/observers/events (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -736,7 +736,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.76.2): + - React-Fabric/scheduler (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -758,7 +758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.76.2): + - React-Fabric/telemetry (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -778,7 +778,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.76.2): + - React-Fabric/templateprocessor (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -798,7 +798,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.76.2): + - React-Fabric/uimanager (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -809,7 +809,7 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/uimanager/consistency (= 0.76.2) + - React-Fabric/uimanager/consistency (= 0.76.6) - React-featureflags - React-graphics - React-jsi @@ -820,7 +820,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager/consistency (0.76.2): + - React-Fabric/uimanager/consistency (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -841,7 +841,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricComponents (0.76.2): + - React-FabricComponents (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -853,8 +853,8 @@ PODS: - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components (= 0.76.2) - - React-FabricComponents/textlayoutmanager (= 0.76.2) + - React-FabricComponents/components (= 0.76.6) + - React-FabricComponents/textlayoutmanager (= 0.76.6) - React-featureflags - React-graphics - React-jsi @@ -866,7 +866,7 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components (0.76.2): + - React-FabricComponents/components (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -878,15 +878,15 @@ PODS: - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components/inputaccessory (= 0.76.2) - - React-FabricComponents/components/iostextinput (= 0.76.2) - - React-FabricComponents/components/modal (= 0.76.2) - - React-FabricComponents/components/rncore (= 0.76.2) - - React-FabricComponents/components/safeareaview (= 0.76.2) - - React-FabricComponents/components/scrollview (= 0.76.2) - - React-FabricComponents/components/text (= 0.76.2) - - React-FabricComponents/components/textinput (= 0.76.2) - - React-FabricComponents/components/unimplementedview (= 0.76.2) + - React-FabricComponents/components/inputaccessory (= 0.76.6) + - React-FabricComponents/components/iostextinput (= 0.76.6) + - React-FabricComponents/components/modal (= 0.76.6) + - React-FabricComponents/components/rncore (= 0.76.6) + - React-FabricComponents/components/safeareaview (= 0.76.6) + - React-FabricComponents/components/scrollview (= 0.76.6) + - React-FabricComponents/components/text (= 0.76.6) + - React-FabricComponents/components/textinput (= 0.76.6) + - React-FabricComponents/components/unimplementedview (= 0.76.6) - React-featureflags - React-graphics - React-jsi @@ -898,7 +898,7 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/inputaccessory (0.76.2): + - React-FabricComponents/components/inputaccessory (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -921,7 +921,7 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/iostextinput (0.76.2): + - React-FabricComponents/components/iostextinput (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -944,7 +944,7 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/modal (0.76.2): + - React-FabricComponents/components/modal (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -967,7 +967,7 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/rncore (0.76.2): + - React-FabricComponents/components/rncore (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -990,7 +990,7 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/safeareaview (0.76.2): + - React-FabricComponents/components/safeareaview (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -1013,7 +1013,7 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/scrollview (0.76.2): + - React-FabricComponents/components/scrollview (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -1036,7 +1036,7 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/text (0.76.2): + - React-FabricComponents/components/text (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -1059,7 +1059,7 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/textinput (0.76.2): + - React-FabricComponents/components/textinput (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -1082,7 +1082,7 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/components/unimplementedview (0.76.2): + - React-FabricComponents/components/unimplementedview (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -1105,7 +1105,7 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricComponents/textlayoutmanager (0.76.2): + - React-FabricComponents/textlayoutmanager (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -1128,26 +1128,26 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/core - Yoga - - React-FabricImage (0.76.2): + - React-FabricImage (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.76.2) - - RCTTypeSafety (= 0.76.2) + - RCTRequired (= 0.76.6) + - RCTTypeSafety (= 0.76.6) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.76.2) + - React-jsiexecutor (= 0.76.6) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.76.2) - - React-featureflagsnativemodule (0.76.2): + - React-featureflags (0.76.6) + - React-featureflagsnativemodule (0.76.6): - DoubleConversion - glog - hermes-engine @@ -1168,7 +1168,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-graphics (0.76.2): + - React-graphics (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -1176,19 +1176,19 @@ PODS: - React-jsi - React-jsiexecutor - React-utils - - React-hermes (0.76.2): + - React-hermes (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.76.2) + - React-cxxreact (= 0.76.6) - React-jsi - - React-jsiexecutor (= 0.76.2) + - React-jsiexecutor (= 0.76.6) - React-jsinspector - - React-perflogger (= 0.76.2) + - React-perflogger (= 0.76.6) - React-runtimeexecutor - - React-idlecallbacksnativemodule (0.76.2): + - React-idlecallbacksnativemodule (0.76.6): - DoubleConversion - glog - hermes-engine @@ -1210,7 +1210,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - React-ImageManager (0.76.2): + - React-ImageManager (0.76.6): - glog - RCT-Folly/Fabric - React-Core/Default @@ -1219,47 +1219,47 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.76.2): + - React-jserrorhandler (0.76.6): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-cxxreact - React-debug - React-jsi - - React-jsi (0.76.2): + - React-jsi (0.76.6): - boost - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.76.2): + - React-jsiexecutor (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.76.2) - - React-jsi (= 0.76.2) + - React-cxxreact (= 0.76.6) + - React-jsi (= 0.76.6) - React-jsinspector - - React-perflogger (= 0.76.2) - - React-jsinspector (0.76.2): + - React-perflogger (= 0.76.6) + - React-jsinspector (0.76.6): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-perflogger (= 0.76.2) - - React-runtimeexecutor (= 0.76.2) - - React-jsitracing (0.76.2): + - React-perflogger (= 0.76.6) + - React-runtimeexecutor (= 0.76.6) + - React-jsitracing (0.76.6): - React-jsi - - React-logger (0.76.2): + - React-logger (0.76.6): - glog - - React-Mapbuffer (0.76.2): + - React-Mapbuffer (0.76.6): - glog - React-debug - - React-microtasksnativemodule (0.76.2): + - React-microtasksnativemodule (0.76.6): - DoubleConversion - glog - hermes-engine @@ -1280,7 +1280,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-quick-sqlite (2.2.1): + - react-native-quick-sqlite (2.3.0): - DoubleConversion - glog - hermes-engine @@ -1304,10 +1304,10 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-safe-area-context (4.14.0): + - react-native-safe-area-context (4.12.0): - React-Core - - React-nativeconfig (0.76.2) - - React-NativeModulesApple (0.76.2): + - React-nativeconfig (0.76.6) + - React-NativeModulesApple (0.76.6): - glog - hermes-engine - React-callinvoker @@ -1318,16 +1318,16 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.76.2): + - React-perflogger (0.76.6): - DoubleConversion - RCT-Folly (= 2024.01.01.00) - - React-performancetimeline (0.76.2): + - React-performancetimeline (0.76.6): - RCT-Folly (= 2024.01.01.00) - React-cxxreact - React-timing - - React-RCTActionSheet (0.76.2): - - React-Core/RCTActionSheetHeaders (= 0.76.2) - - React-RCTAnimation (0.76.2): + - React-RCTActionSheet (0.76.6): + - React-Core/RCTActionSheetHeaders (= 0.76.6) + - React-RCTAnimation (0.76.6): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Core/RCTAnimationHeaders @@ -1335,7 +1335,7 @@ PODS: - React-NativeModulesApple - ReactCodegen - ReactCommon - - React-RCTAppDelegate (0.76.2): + - React-RCTAppDelegate (0.76.6): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1360,7 +1360,7 @@ PODS: - React-utils - ReactCodegen - ReactCommon - - React-RCTBlob (0.76.2): + - React-RCTBlob (0.76.6): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1373,7 +1373,7 @@ PODS: - React-RCTNetwork - ReactCodegen - ReactCommon - - React-RCTFabric (0.76.2): + - React-RCTFabric (0.76.6): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1396,7 +1396,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.76.2): + - React-RCTImage (0.76.6): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Core/RCTImageHeaders @@ -1405,14 +1405,14 @@ PODS: - React-RCTNetwork - ReactCodegen - ReactCommon - - React-RCTLinking (0.76.2): - - React-Core/RCTLinkingHeaders (= 0.76.2) - - React-jsi (= 0.76.2) + - React-RCTLinking (0.76.6): + - React-Core/RCTLinkingHeaders (= 0.76.6) + - React-jsi (= 0.76.6) - React-NativeModulesApple - ReactCodegen - ReactCommon - - ReactCommon/turbomodule/core (= 0.76.2) - - React-RCTNetwork (0.76.2): + - ReactCommon/turbomodule/core (= 0.76.6) + - React-RCTNetwork (0.76.6): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Core/RCTNetworkHeaders @@ -1420,7 +1420,7 @@ PODS: - React-NativeModulesApple - ReactCodegen - ReactCommon - - React-RCTSettings (0.76.2): + - React-RCTSettings (0.76.6): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Core/RCTSettingsHeaders @@ -1428,24 +1428,24 @@ PODS: - React-NativeModulesApple - ReactCodegen - ReactCommon - - React-RCTText (0.76.2): - - React-Core/RCTTextHeaders (= 0.76.2) + - React-RCTText (0.76.6): + - React-Core/RCTTextHeaders (= 0.76.6) - Yoga - - React-RCTVibration (0.76.2): + - React-RCTVibration (0.76.6): - RCT-Folly (= 2024.01.01.00) - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCodegen - ReactCommon - - React-rendererconsistency (0.76.2) - - React-rendererdebug (0.76.2): + - React-rendererconsistency (0.76.6) + - React-rendererdebug (0.76.6): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.76.2) - - React-RuntimeApple (0.76.2): + - React-rncore (0.76.6) + - React-RuntimeApple (0.76.6): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1464,7 +1464,7 @@ PODS: - React-RuntimeHermes - React-runtimescheduler - React-utils - - React-RuntimeCore (0.76.2): + - React-RuntimeCore (0.76.6): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1478,9 +1478,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.76.2): - - React-jsi (= 0.76.2) - - React-RuntimeHermes (0.76.2): + - React-runtimeexecutor (0.76.6): + - React-jsi (= 0.76.6) + - React-RuntimeHermes (0.76.6): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1491,7 +1491,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.76.2): + - React-runtimescheduler (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1506,14 +1506,14 @@ PODS: - React-runtimeexecutor - React-timing - React-utils - - React-timing (0.76.2) - - React-utils (0.76.2): + - React-timing (0.76.6) + - React-utils (0.76.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.76.2) - - ReactCodegen (0.76.2): + - React-jsi (= 0.76.6) + - ReactCodegen (0.76.6): - DoubleConversion - glog - hermes-engine @@ -1533,46 +1533,46 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - ReactCommon (0.76.2): - - ReactCommon/turbomodule (= 0.76.2) - - ReactCommon/turbomodule (0.76.2): + - ReactCommon (0.76.6): + - ReactCommon/turbomodule (= 0.76.6) + - ReactCommon/turbomodule (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.76.2) - - React-cxxreact (= 0.76.2) - - React-jsi (= 0.76.2) - - React-logger (= 0.76.2) - - React-perflogger (= 0.76.2) - - ReactCommon/turbomodule/bridging (= 0.76.2) - - ReactCommon/turbomodule/core (= 0.76.2) - - ReactCommon/turbomodule/bridging (0.76.2): + - React-callinvoker (= 0.76.6) + - React-cxxreact (= 0.76.6) + - React-jsi (= 0.76.6) + - React-logger (= 0.76.6) + - React-perflogger (= 0.76.6) + - ReactCommon/turbomodule/bridging (= 0.76.6) + - ReactCommon/turbomodule/core (= 0.76.6) + - ReactCommon/turbomodule/bridging (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.76.2) - - React-cxxreact (= 0.76.2) - - React-jsi (= 0.76.2) - - React-logger (= 0.76.2) - - React-perflogger (= 0.76.2) - - ReactCommon/turbomodule/core (0.76.2): + - React-callinvoker (= 0.76.6) + - React-cxxreact (= 0.76.6) + - React-jsi (= 0.76.6) + - React-logger (= 0.76.6) + - React-perflogger (= 0.76.6) + - ReactCommon/turbomodule/core (0.76.6): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.76.2) - - React-cxxreact (= 0.76.2) - - React-debug (= 0.76.2) - - React-featureflags (= 0.76.2) - - React-jsi (= 0.76.2) - - React-logger (= 0.76.2) - - React-perflogger (= 0.76.2) - - React-utils (= 0.76.2) + - React-callinvoker (= 0.76.6) + - React-cxxreact (= 0.76.6) + - React-debug (= 0.76.6) + - React-featureflags (= 0.76.6) + - React-jsi (= 0.76.6) + - React-logger (= 0.76.6) + - React-perflogger (= 0.76.6) + - React-utils (= 0.76.6) - SocketRocket (0.7.1) - Yoga (0.0.0) @@ -1810,80 +1810,80 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: 1dca942403ed9342f98334bf4c3621f011aa7946 DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385 - EXConstants: dd2fe64c6cdb1383b694c309a63028a8e9f2be6d - Expo: 46cbe74ce0d0f4a4d7b726e90693eb8dfcec6de0 - ExpoAsset: 8138f2a9ec55ae1ad7c3871448379f7d97692d15 - ExpoFileSystem: cc31b7a48031ab565f9eb5c2b61aa08d774a271a - ExpoFont: 7522d869d84ee2ee8093ee997fef5b86f85d856b - ExpoKeepAwake: 783e68647b969b210a786047c3daa7b753dcac1f - ExpoModulesCore: 2d1df04dc27f91d8b383c0ec7f1d121e3d9b7f68 - ExpoSplashScreen: cb78ad96510786e97b35c1d9014b705cb196b8a3 - FBLazyVector: bc70dcb22ad30ce734a7cce7210791dc737e230f + EXConstants: cc788e18fb962b77999c16f6b90e551542b1bcf4 + Expo: 7021c4880d0bbd02781e88e213b6786c1200ebdf + ExpoAsset: 6cc988c426b5fc997859cc0f8f6728d1376bf53f + ExpoFileSystem: a0a5c44d3d3e8a2aa54fe7c70c7690df03cf4dd8 + ExpoFont: 8b14db1afebf62e9774613a082e402985f4e747c + ExpoKeepAwake: 1f74cdf53ab3b3aeb7110f18eb053c92e7c3e710 + ExpoModulesCore: 52b2f1c87f218a8a6ad2b0cb9d3d238bce3529fb + ExpoSplashScreen: 83f585abeb0506103f9309628634dbbcd9bc5573 + FBLazyVector: be509404b5de73a64a74284edcaf73a5d1e128b1 fmt: 10c6e61f4be25dc963c36bd73fc7b1705fe975be glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a - hermes-engine: 3852e37f6158a2fcfad23e31215ed495da3a6a40 - powersync-sqlite-core: 3b1cc184e277776aaf22e221fd0336575c7173c4 + hermes-engine: 1949ca944b195a8bde7cbf6316b9068e19cf53c6 + powersync-sqlite-core: 7515d321eb8e3c08b5259cdadb9d19b1876fe13a RCT-Folly: bf5c0376ffe4dd2cf438dcf86db385df9fdce648 - RCTDeprecation: d575d28132f93e5deef4849d5afffb4ac4e63226 - RCTRequired: e2e5df1df76aac8685aabfebca389e6bec64792b - RCTTypeSafety: 30e36ceafa26979860e13fb3f234fb61692924c2 - React: 10ad41b51f981992714011b6a4e081234c28dc2e - React-callinvoker: 58b51494f8b2cca07a27fc6f69273239c30a1e70 - React-Core: 54860c16fb5873a6f00dd44d8979bbb648b34c7c - React-CoreModules: 443101f113a7b5d51b93e061574dcadf7850f8cc - React-cxxreact: 5407ecb854a755de34c0e6b03965d3a51c28c933 - React-debug: 252c723eb205cc508aa9690a16dff46293c30ed8 - React-defaultsnativemodule: 0d983d9db88d87aa069016e8efce2008aa7922ed - React-domnativemodule: c59883e41a571db75c530221d40a86c4f0b150ff - React-Fabric: 58696d9eaee305bb5a5af26071966dcfb941f9eb - React-FabricComponents: a037b977430eceae4bac539934497bacc8de3971 - React-FabricImage: 2658c3e383195f69e7c83e4f75519bee17c3169a - React-featureflags: 7dc483869b3a940dcd92c7942c5e3492ad6afe68 - React-featureflagsnativemodule: 4632286176fb4ec110e392bff37e1b958971719b - React-graphics: 066863eb87b142f0603fed08c71bac452238ac3e - React-hermes: 8f31f252aff98a4cb711ccf6644cccfe35d8edd1 - React-idlecallbacksnativemodule: bb67b2e497d025e9e1e2a06e4208c1e66c1c2683 - React-ImageManager: 36240f8ab7181551574ca443da507272dbbf7014 - React-jserrorhandler: 1aa045c492222751dc476bcb973f787e82f952b9 - React-jsi: b96853ac12c1dab5fe3ea131f959fda0bbaf1151 - React-jsiexecutor: e38748a0e9d899f63dec562f93ac06c7acbc813d - React-jsinspector: 91b3c73d2afb7627af7872cedb0b74a0f00f57d1 - React-jsitracing: a340047c9fd31a36b222569c402e472e20557805 - React-logger: 81d58ca6f1d93fca9a770bda6cc1c4fbfcc99c9c - React-Mapbuffer: 726951e68f4bb1c2513d322f2548798b2a3d628d - React-microtasksnativemodule: bc55596cbf40957f5099bc495f1a06f459d0be88 - react-native-quick-sqlite: de5eef2b2092b045d5c546018afd5b6b93843a1b - react-native-safe-area-context: 4532f1a0c5d34a46b9324ccaaedcb5582a302b7d - React-nativeconfig: 470fce6d871c02dc5eff250a362d56391b7f52d6 - React-NativeModulesApple: 6297fc3136c1fd42884795c51d7207de6312b606 - React-perflogger: f2c94413cfad44817c96cab33753831e73f0d0dd - React-performancetimeline: d6e493713e6aab3cc8b7c1c07e97160e22dd79cc - React-RCTActionSheet: 2eb26cbf384f3d3b2cb2e23be850a956d83f77ab - React-RCTAnimation: 59463699a92edc6705ce5306bb789d6a0ca4df0b - React-RCTAppDelegate: c4ec243c440e4eaec813a07c26626e9b11d6f9ec - React-RCTBlob: 0883f5363069ad30f628c970fcb413a619e42804 - React-RCTFabric: abc9810407f5f45b0e1945d96ac86d1564d5a438 - React-RCTImage: 78884b7ea6ef4f7bb9655614bf09a40054f282ce - React-RCTLinking: b9beba7465fd9a1ed7a88a4e7fc403d26e17ab95 - React-RCTNetwork: 701d9c050077596b15a11b6b573ed95c309d2315 - React-RCTSettings: e700a82e3e923c10060b8f65297f9d321b93d8eb - React-RCTText: e782ce1c3f9d915daf50d97157f8c226e8f3d206 - React-RCTVibration: 2a19c56be78cb7afce9f4f3471aacfb063f32a00 - React-rendererconsistency: b389e324712bf0869529823216e922836ed9b737 - React-rendererdebug: 9f5629032c0937c62b21dcaf96b374a149bf8a44 - React-rncore: 2cf6b2348ee5d5431c4735180364b207ecf47123 - React-RuntimeApple: 84d648b9a87c34041d6628dde50d1acf54e5bf89 - React-RuntimeCore: 79290b2eb17a25c1b23c4d5dde13d43c20467eef - React-runtimeexecutor: 69e27948ee2127400297c7de50b809a7cd127a15 - React-RuntimeHermes: 5fe2082f98187410c1815c532f72348fbe1d0517 - React-runtimescheduler: 95b7087f459699756c1b7feb3f4637066c337b62 - React-timing: 97673939f96f79031d2a5a0a92285618475149ec - React-utils: ed6cb7ba089ac0856aa104df12691e99abbf14e1 - ReactCodegen: 93b271af49774429f34d7fd561197020d86436e2 - ReactCommon: 208cb02e3c0bb8a727b3e1a1782202bcfa5d9631 + RCTDeprecation: 063fc281b30b7dc944c98fe53a7e266dab1a8706 + RCTRequired: 8eda2a5a745f6081157a4f34baac40b65fe02b31 + RCTTypeSafety: 0f96bf6c99efc33eb43352212703854933f22930 + React: 1d3d5bada479030961d513fb11e42659b30e97ff + React-callinvoker: 682c610b9e9d3b93bd8d0075eacb2e6aa304d3e0 + React-Core: 10420b32e62acf6b3aa0a570e45566001175c777 + React-CoreModules: aad977a7dbff83aa707c4045e5db81446a511cca + React-cxxreact: 1bee1b97e7d537f1a33d9eb68c9426c1fc1a4e3c + React-debug: 4ae2e95c2d392cca29939a3a2f2b4320ddff3e59 + React-defaultsnativemodule: 0454c65789fdbd0f27ce15e32e06b6705f43f29f + React-domnativemodule: 65861da3f8e055c080e40a6e4c23c73d1d6b9cb6 + React-Fabric: fc0898bb601b03ed41ab0df3e7b1a4acd05a6cff + React-FabricComponents: 13e78253b210d112b3ffddca5b7323db7f254358 + React-FabricImage: a86ff938570a06c2a9fbf00ff0b00195f0bd4aba + React-featureflags: 5670e0dcdc17ba2515963d117dacc13d5b69c431 + React-featureflagsnativemodule: 1da2688854b2f6c03c99712b8ca07bc94dcda0e1 + React-graphics: 04eed50a115e750e4644c1e955f32bec57f6a235 + React-hermes: add932964f5ef024c86352dcc0dc427e6309642e + React-idlecallbacksnativemodule: 6c199bf5dbba7e9fedb032c06ff90ef723eb564d + React-ImageManager: 3239badd14cc602baf836b5d7151ffa90393deae + React-jserrorhandler: 81ac36638e02c33a9df0bdbeec464d2e699ac8a9 + React-jsi: 690f3742db66cab8d5219bcfbc19fee112c6bb0c + React-jsiexecutor: a060f7e989da21e2478f652d7799e3b5ae5db262 + React-jsinspector: 0eb6ea6f6b1e42edeab4bcad092d37ef748e337a + React-jsitracing: 737a69a469e2bc821cf8ae11977bded522393719 + React-logger: 162c09cc432b02d4a0db31b1d98f6df5243a2679 + React-Mapbuffer: f760d2229640be48cb3c2d4832b5bbc3018123fc + React-microtasksnativemodule: c7beb09cf9c61d18b24b51db99ac026796035bb3 + react-native-quick-sqlite: 3fda3ac881a9cc52d32c4553f6c894c0efda4110 + react-native-safe-area-context: 142fade490cbebbe428640b8cbdb09daf17e8191 + React-nativeconfig: 539ff4de6ce3b694e8e751080568c281c84903ce + React-NativeModulesApple: 771cc40b086281b820fe455fedebbe4341fd0c90 + React-perflogger: 4e80a5b8d61dfb38024e7d5b8efaf9ce1037d31f + React-performancetimeline: 1dcacc31d81f790f43a2d434ec95b0f864582329 + React-RCTActionSheet: ed5a845eae98fe455b9a1d71f057d626e2f3f1c5 + React-RCTAnimation: 0cda303ef8ca5a2d0ee9e425f188cc9fc1d2e20f + React-RCTAppDelegate: e2cb4b46075bd676ce5c1efbbb470eb837112d66 + React-RCTBlob: dab83a3c22210e5c7a8267834c68e6cf94bc1ce2 + React-RCTFabric: 3d7a7c010a3f0daf3222649e6da9d71111e80795 + React-RCTImage: b9c3d2cff3b8214322022cdf8afb92ff978bb92e + React-RCTLinking: e58c4fa216f9ac87ed3d4a0cce03905df67adec0 + React-RCTNetwork: 9f206fa039e107f51ddfac133df79105643ea2bd + React-RCTSettings: c7663cfcb3531cd438b8f73e98cd2d982a4bbd72 + React-RCTText: cfee29316f1049f016cbd81328a89a8a07410bba + React-RCTVibration: 20f5efc1b05cd3f5f7ea03489dd3766c890fb493 + React-rendererconsistency: ccd50d5ee6544b26cd11fff5ad1112c5058a0064 + React-rendererdebug: d8f43065459c2095f27a173121f03dcd1d1b08e5 + React-rncore: bfe554cb773978e8b94898866964c9579cb0c70c + React-RuntimeApple: 89c319b1610d4ca8895642cf0eae1188bf864270 + React-RuntimeCore: 30399cbd2368f7e031692875275984fa42142601 + React-runtimeexecutor: 26a9d14619ec1359470df391be9abb7c80a21b2b + React-RuntimeHermes: c78f07b7a599c1c9a889189c02436600e72c8b27 + React-runtimescheduler: 9f6b0b85154ed8a17a899cd1bab258a26c8db2cd + React-timing: c9c7c0fe2fdfc433ef208889b6191dfb45457d68 + React-utils: e6697b03f21c7ac57b075d848cda7882662cabf7 + ReactCodegen: 484b223748d7489d7036db1cbf79896d297e33a7 + ReactCommon: 832cdd669aeecd430d9ca1975d15676b38d0b263 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 - Yoga: 96872ee462cfc43866ad013c8160d4ff6b85709b + Yoga: 2a5ae8f7db3c675ff5a781fb5d99c5f7a5d2fc11 -PODFILE CHECKSUM: d6c8a5c5ff2d3984a5826e0d3631fd656816f915 +PODFILE CHECKSUM: b9f24a2b09fff6bf41242acb4b7ecd0976b989ff COCOAPODS: 1.16.2 diff --git a/tests/ios/Podfile.properties.json b/tests/ios/Podfile.properties.json index 4889e53..259ae81 100644 --- a/tests/ios/Podfile.properties.json +++ b/tests/ios/Podfile.properties.json @@ -1,6 +1,7 @@ { "expo.jsEngine": "hermes", "EX_DEV_CLIENT_NETWORK_INSPECTOR": "true", + "newArchEnabled": "false", "apple.extraPods": "[]", "apple.ccacheEnabled": "false", "apple.privacyManifestAggregationEnabled": "true" diff --git a/tests/ios/tests.xcodeproj/project.pbxproj b/tests/ios/tests.xcodeproj/project.pbxproj index 1954bec..fe0feed 100644 --- a/tests/ios/tests.xcodeproj/project.pbxproj +++ b/tests/ios/tests.xcodeproj/project.pbxproj @@ -3,38 +3,38 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 46; objects = { /* Begin PBXBuildFile section */ 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 161D6446FE3B46F7A93AD2CE /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5718FB8C76DB4F80B3D10AEC /* noop-file.swift */; }; 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; - 71102FB40391F3222705CF02 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = FCC534F86BB32E2CDDAEAF35 /* PrivacyInfo.xcprivacy */; }; + 7B3742574E2447C28C438392 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B65439C7BF741A5B3AF5A11 /* noop-file.swift */; }; + 96905EF65AED1B983A6B3ABC /* libPods-tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-tests.a */; }; B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; }; BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; - D09AE9EF904670B6D34339A4 /* libPods-tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 59E68FC5FE61A426B3FC6E2A /* libPods-tests.a */; }; + C964DD54F4F9093164A279CA /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = A6DD9767EC9696F2286F04CD /* PrivacyInfo.xcprivacy */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 033A8F74A4174617883C8953 /* tests-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "tests-Bridging-Header.h"; path = "tests/tests-Bridging-Header.h"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* tests.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = tests.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = tests/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = tests/AppDelegate.mm; sourceTree = ""; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = tests/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = tests/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = tests/main.m; sourceTree = ""; }; - 5718FB8C76DB4F80B3D10AEC /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "tests/noop-file.swift"; sourceTree = ""; }; - 59E68FC5FE61A426B3FC6E2A /* libPods-tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1CBEEE230747425D9910A8A9 /* tests-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "tests-Bridging-Header.h"; path = "tests/tests-Bridging-Header.h"; sourceTree = ""; }; + 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6B65439C7BF741A5B3AF5A11 /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "tests/noop-file.swift"; sourceTree = ""; }; + 6C2E3173556A471DD304B334 /* Pods-tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tests.debug.xcconfig"; path = "Target Support Files/Pods-tests/Pods-tests.debug.xcconfig"; sourceTree = ""; }; + 7A4D352CD337FB3A3BF06240 /* Pods-tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tests.release.xcconfig"; path = "Target Support Files/Pods-tests/Pods-tests.release.xcconfig"; sourceTree = ""; }; + A6DD9767EC9696F2286F04CD /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = tests/PrivacyInfo.xcprivacy; sourceTree = ""; }; AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = tests/SplashScreen.storyboard; sourceTree = ""; }; BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; - C707F1156DEE62CE1427D5B5 /* Pods-tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tests.release.xcconfig"; path = "Target Support Files/Pods-tests/Pods-tests.release.xcconfig"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - EF0A38288E7B48542522C1C3 /* Pods-tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tests.debug.xcconfig"; path = "Target Support Files/Pods-tests/Pods-tests.debug.xcconfig"; sourceTree = ""; }; FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-tests/ExpoModulesProvider.swift"; sourceTree = ""; }; - FCC534F86BB32E2CDDAEAF35 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = tests/PrivacyInfo.xcprivacy; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -42,7 +42,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D09AE9EF904670B6D34339A4 /* libPods-tests.a in Frameworks */, + 96905EF65AED1B983A6B3ABC /* libPods-tests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -59,9 +59,9 @@ 13B07FB61A68108700A75B9A /* Info.plist */, 13B07FB71A68108700A75B9A /* main.m */, AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */, - 5718FB8C76DB4F80B3D10AEC /* noop-file.swift */, - 033A8F74A4174617883C8953 /* tests-Bridging-Header.h */, - FCC534F86BB32E2CDDAEAF35 /* PrivacyInfo.xcprivacy */, + 6B65439C7BF741A5B3AF5A11 /* noop-file.swift */, + 1CBEEE230747425D9910A8A9 /* tests-Bridging-Header.h */, + A6DD9767EC9696F2286F04CD /* PrivacyInfo.xcprivacy */, ); name = tests; sourceTree = ""; @@ -70,7 +70,7 @@ isa = PBXGroup; children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 59E68FC5FE61A426B3FC6E2A /* libPods-tests.a */, + 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-tests.a */, ); name = Frameworks; sourceTree = ""; @@ -125,8 +125,8 @@ D65327D7A22EEC0BE12398D9 /* Pods */ = { isa = PBXGroup; children = ( - EF0A38288E7B48542522C1C3 /* Pods-tests.debug.xcconfig */, - C707F1156DEE62CE1427D5B5 /* Pods-tests.release.xcconfig */, + 6C2E3173556A471DD304B334 /* Pods-tests.debug.xcconfig */, + 7A4D352CD337FB3A3BF06240 /* Pods-tests.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -146,14 +146,14 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "tests" */; buildPhases = ( - 075F87B431445178114D2A1B /* [CP] Check Pods Manifest.lock */, - EB3B84FA2AC5C23A64934338 /* [Expo] Configure project */, + 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */, + C4E4CC547F40ECB897841923 /* [Expo] Configure project */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 741D5B2A21C56BDEB6E31FEF /* [CP] Embed Pods Frameworks */, - 48E5562816132547F3A7DAF4 /* [CP] Copy Pods Resources */, + 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */, + 050FA6C40ED16DD138EAEF34 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -203,7 +203,7 @@ BB2F792D24A3F905000567C9 /* Expo.plist in Resources */, 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */, - 71102FB40391F3222705CF02 /* PrivacyInfo.xcprivacy in Resources */, + C964DD54F4F9093164A279CA /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -223,9 +223,29 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios absolute | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli')\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n"; + shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios absolute | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n# Source .xcode.env.updates if it exists to allow\n# SKIP_BUNDLING to be unset if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.updates\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.updates\"\nfi\n# Source local changes to allow overrides\n# if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n"; }; - 075F87B431445178114D2A1B /* [CP] Check Pods Manifest.lock */ = { + 050FA6C40ED16DD138EAEF34 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-tests/Pods-tests-frameworks.sh", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/powersync-sqlite-core/powersync-sqlite-core.framework/powersync-sqlite-core", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/powersync-sqlite-core.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-tests/Pods-tests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -247,7 +267,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 48E5562816132547F3A7DAF4 /* [CP] Copy Pods Resources */ = { + 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -279,27 +299,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-tests/Pods-tests-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 741D5B2A21C56BDEB6E31FEF /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-tests/Pods-tests-frameworks.sh", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/powersync-sqlite-core/powersync-sqlite-core.framework/powersync-sqlite-core", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/powersync-sqlite-core.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-tests/Pods-tests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - EB3B84FA2AC5C23A64934338 /* [Expo] Configure project */ = { + C4E4CC547F40ECB897841923 /* [Expo] Configure project */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; @@ -328,7 +328,7 @@ 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, 13B07FC11A68108700A75B9A /* main.m in Sources */, B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */, - 161D6446FE3B46F7A93AD2CE /* noop-file.swift in Sources */, + 7B3742574E2447C28C438392 /* noop-file.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -337,24 +337,20 @@ /* Begin XCBuildConfiguration section */ 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EF0A38288E7B48542522C1C3 /* Pods-tests.debug.xcconfig */; + baseConfigurationReference = 6C2E3173556A471DD304B334 /* Pods-tests.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = tests/tests.entitlements; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ""; ENABLE_BITCODE = NO; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", "FB_SONARKIT_ENABLED=1", ); INFOPLIST_FILE = tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MARKETING_VERSION = 1.0; OTHER_LDFLAGS = ( "$(inherited)", @@ -374,19 +370,15 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C707F1156DEE62CE1427D5B5 /* Pods-tests.release.xcconfig */; + baseConfigurationReference = 7A4D352CD337FB3A3BF06240 /* Pods-tests.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = tests/tests.entitlements; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MARKETING_VERSION = 1.0; OTHER_LDFLAGS = ( "$(inherited)", @@ -435,7 +427,6 @@ COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -452,20 +443,17 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.1; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "$(inherited)"; - OTHER_CPLUSPLUSFLAGS = "$(inherited)"; - OTHER_LDFLAGS = "$(inherited) "; + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; - SWIFT_VERSION = 5.0; USE_HERMES = true; }; name = Debug; @@ -502,7 +490,6 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -512,18 +499,15 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 15.1; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "$(inherited)"; - OTHER_CPLUSPLUSFLAGS = "$(inherited)"; - OTHER_LDFLAGS = "$(inherited) "; + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; - SWIFT_VERSION = 5.0; USE_HERMES = true; VALIDATE_PRODUCT = YES; }; diff --git a/tests/ios/tests/Images.xcassets/SplashScreenBackground.colorset/Contents.json b/tests/ios/tests/Images.xcassets/SplashScreenBackground.colorset/Contents.json new file mode 100644 index 0000000..15f02ab --- /dev/null +++ b/tests/ios/tests/Images.xcassets/SplashScreenBackground.colorset/Contents.json @@ -0,0 +1,20 @@ +{ + "colors": [ + { + "color": { + "components": { + "alpha": "1.000", + "blue": "1.00000000000000", + "green": "1.00000000000000", + "red": "1.00000000000000" + }, + "color-space": "srgb" + }, + "idiom": "universal" + } + ], + "info": { + "version": 1, + "author": "expo" + } +} \ No newline at end of file diff --git a/tests/ios/tests/Images.xcassets/SplashScreenBackground.imageset/Contents.json b/tests/ios/tests/Images.xcassets/SplashScreenBackground.imageset/Contents.json deleted file mode 100644 index 3cf8489..0000000 --- a/tests/ios/tests/Images.xcassets/SplashScreenBackground.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images": [ - { - "idiom": "universal", - "filename": "image.png", - "scale": "1x" - }, - { - "idiom": "universal", - "scale": "2x" - }, - { - "idiom": "universal", - "scale": "3x" - } - ], - "info": { - "version": 1, - "author": "expo" - } -} \ No newline at end of file diff --git a/tests/ios/tests/Images.xcassets/SplashScreenBackground.imageset/image.png b/tests/ios/tests/Images.xcassets/SplashScreenBackground.imageset/image.png deleted file mode 100644 index 33ddf20..0000000 Binary files a/tests/ios/tests/Images.xcassets/SplashScreenBackground.imageset/image.png and /dev/null differ diff --git a/tests/ios/tests/Images.xcassets/SplashScreen.imageset/Contents.json b/tests/ios/tests/Images.xcassets/SplashScreenLogo.imageset/Contents.json similarity index 81% rename from tests/ios/tests/Images.xcassets/SplashScreen.imageset/Contents.json rename to tests/ios/tests/Images.xcassets/SplashScreenLogo.imageset/Contents.json index 3cf8489..f65c008 100644 --- a/tests/ios/tests/Images.xcassets/SplashScreen.imageset/Contents.json +++ b/tests/ios/tests/Images.xcassets/SplashScreenLogo.imageset/Contents.json @@ -7,10 +7,12 @@ }, { "idiom": "universal", + "filename": "image@2x.png", "scale": "2x" }, { "idiom": "universal", + "filename": "image@3x.png", "scale": "3x" } ], diff --git a/tests/ios/tests/Images.xcassets/SplashScreen.imageset/image.png b/tests/ios/tests/Images.xcassets/SplashScreenLogo.imageset/image.png similarity index 100% rename from tests/ios/tests/Images.xcassets/SplashScreen.imageset/image.png rename to tests/ios/tests/Images.xcassets/SplashScreenLogo.imageset/image.png diff --git a/tests/ios/tests/Images.xcassets/SplashScreenLogo.imageset/image@2x.png b/tests/ios/tests/Images.xcassets/SplashScreenLogo.imageset/image@2x.png new file mode 100644 index 0000000..c52c2c6 Binary files /dev/null and b/tests/ios/tests/Images.xcassets/SplashScreenLogo.imageset/image@2x.png differ diff --git a/tests/ios/tests/Images.xcassets/SplashScreenLogo.imageset/image@3x.png b/tests/ios/tests/Images.xcassets/SplashScreenLogo.imageset/image@3x.png new file mode 100644 index 0000000..c52c2c6 Binary files /dev/null and b/tests/ios/tests/Images.xcassets/SplashScreenLogo.imageset/image@3x.png differ diff --git a/tests/ios/tests/Info.plist b/tests/ios/tests/Info.plist index f6a468c..43866c7 100644 --- a/tests/ios/tests/Info.plist +++ b/tests/ios/tests/Info.plist @@ -33,6 +33,8 @@ CFBundleVersion 1 + LSMinimumSystemVersion + 12.0 LSRequiresIPhoneOS NSAppTransportSecurity @@ -46,7 +48,7 @@ SplashScreen UIRequiredDeviceCapabilities - armv7 + arm64 UIRequiresFullScreen diff --git a/tests/ios/tests/SplashScreen.storyboard b/tests/ios/tests/SplashScreen.storyboard index ed03a52..8a6fcd4 100644 --- a/tests/ios/tests/SplashScreen.storyboard +++ b/tests/ios/tests/SplashScreen.storyboard @@ -1,9 +1,10 @@ - - + + - + + @@ -12,40 +13,32 @@ - + - - - - + + - - - - - - - - - + - + - - + + + + \ No newline at end of file diff --git a/tests/ios/tests/Supporting/Expo.plist b/tests/ios/tests/Supporting/Expo.plist index 540b746..750be02 100644 --- a/tests/ios/tests/Supporting/Expo.plist +++ b/tests/ios/tests/Supporting/Expo.plist @@ -8,7 +8,5 @@ EXUpdatesLaunchWaitMs 0 - EXUpdatesSDKVersion - 50.0.0 \ No newline at end of file diff --git a/tests/ios/tests/tests-Bridging-Header.h b/tests/ios/tests/tests-Bridging-Header.h index c6db3ed..e11d920 100644 --- a/tests/ios/tests/tests-Bridging-Header.h +++ b/tests/ios/tests/tests-Bridging-Header.h @@ -1,4 +1,3 @@ -#import // // Use this file to import your target's public headers that you would like to expose to Swift. // diff --git a/tests/ios/tests/tests.entitlements b/tests/ios/tests/tests.entitlements index 018a6e2..f683276 100644 --- a/tests/ios/tests/tests.entitlements +++ b/tests/ios/tests/tests.entitlements @@ -1,8 +1,5 @@ - - aps-environment - development - + \ No newline at end of file diff --git a/tests/package.json b/tests/package.json index 053b641..450cc66 100644 --- a/tests/package.json +++ b/tests/package.json @@ -13,20 +13,21 @@ "@craftzdog/react-native-buffer": "^6.0.5", "base-64": "^1.0.0", "base64-arraybuffer": "^1.0.2", - "chai": "^4.3.7", + "chai": "^5.1.2", "chance": "^1.1.9", "events": "^3.3.0", - "expo": "^52.0.0", - "expo-build-properties": "~0.13.1", - "expo-splash-screen": "~0.29.10", - "expo-status-bar": "~2.0.0", + "expo": "~52.0.26", + "expo-build-properties": "~0.13.2", + "expo-splash-screen": "~0.29.21", + "expo-status-bar": "~2.0.1", "lodash": "^4.17.21", "mocha": "^10.1.0", "nativewind": "^2.0.11", + "p-defer": "^4.0.1", "react": "18.3.1", - "react-native": "0.76.2", + "react-native": "0.76.6", "react-native-quick-sqlite": "link:..", - "react-native-safe-area-context": "4.14.0", + "react-native-safe-area-context": "4.12.0", "reflect-metadata": "^0.1.13", "stream-browserify": "^3.0.0", "tailwindcss": "^3.2.4", @@ -35,8 +36,10 @@ }, "devDependencies": { "@babel/core": "^7.20.0", + "@babel/plugin-transform-class-static-block": "^7.26.0", "@react-native-community/cli": "^15.1.2", - "@types/chai": "^4.3.4", + "@types/chai": "^5.0.1", + "@types/chai-as-promised": "^8.0.1", "@types/chance": "^1.1.3", "@types/express": "^5.0.0", "@types/lodash": "^4.17.1", @@ -44,6 +47,7 @@ "@types/react": "~18.3.12", "babel-plugin-module-resolver": "^4.1.0", "body-parser": "^1.20.2", + "chai-as-promised": "^8.0.1", "chalk": "4.1.2", "commander": "^11.1.0", "express": "^4.21.1", diff --git a/tests/tests/sqlite/rawQueries.spec.ts b/tests/tests/sqlite/rawQueries.spec.ts index 5d7eaba..3c48d46 100644 --- a/tests/tests/sqlite/rawQueries.spec.ts +++ b/tests/tests/sqlite/rawQueries.spec.ts @@ -1,3 +1,5 @@ +import { expect, use } from 'chai'; +import chaiAsPromised from 'chai-as-promised'; import Chance from 'chance'; import { BatchedUpdateNotification, @@ -10,11 +12,10 @@ import { UpdateNotification } from 'react-native-quick-sqlite'; import { beforeEach, describe, it } from '../mocha/MochaRNAdapter'; -import chai from 'chai'; -import { randomIntFromInterval, numberName } from './utils'; +import { numberName, randomIntFromInterval } from './utils'; -const { expect } = chai; const chance = new Chance(); +use(chaiAsPromised); // Need to store the db on the global state since this variable will be cleared on hot reload, // Attempting to open an already open DB results in an error. @@ -70,7 +71,6 @@ export function registerBaseTests() { await db.execute('DROP TABLE IF EXISTS User; '); await db.execute('CREATE TABLE User ( id INT PRIMARY KEY, name TEXT NOT NULL, age INT, networth REAL) STRICT;'); - await db.execute('CREATE TABLE IF NOT EXISTS t1(id INTEGER PRIMARY KEY, a INTEGER, b INTEGER, c TEXT)'); } catch (e) { console.warn('error on before each', e); @@ -649,5 +649,115 @@ export function registerBaseTests() { } } }); + + it('Should handle multiple closes', async () => { + const dbName = 'test-close'; + + // populate test data + const db = open(dbName); + await db.execute('CREATE TABLE IF NOT EXISTS t1(id INTEGER PRIMARY KEY, c TEXT)'); + await db.execute('DELETE FROM t1'); + // // Bulk insert 50000 rows without using a transaction + const bulkInsertCommands: SQLBatchTuple[] = []; + for (let i = 0; i < 50000; i++) { + bulkInsertCommands.push(['INSERT INTO t1(id, c) VALUES(?, ?)', [i + 1, `value${i + 1}`]]); + } + await db.executeBatch(bulkInsertCommands); + db.close(); + + for (let i = 1; i < 100; i++) { + const db = open(dbName, { + numReadConnections: NUM_READ_CONNECTIONS + }); + + // ensure a regular query works + const pExecute = await db.execute(`SELECT * FROM t1 `); + expect(pExecute.rows?.length).to.equal(50000); + + // Queue a bunch of write locks, these will fail due to the db being closed + // before they are accepted. + const tests = [ + db.execute(`SELECT * FROM t1 `), + db.execute(`SELECT * FROM t1 `), + db.execute(`SELECT * FROM t1 `), + db.execute(`SELECT * FROM t1 `) + ]; + + db.close(); + + const results = await Promise.allSettled(tests); + expect(results.map((r) => r.status)).deep.equal(Array(tests.length).fill('rejected')); + } + }); + + it('Should wait for locks before close', async () => { + const dbName = 'test-lock-close'; + + // populate test data + const db = open(dbName); + await db.execute('CREATE TABLE IF NOT EXISTS t1(id INTEGER PRIMARY KEY, c TEXT)'); + await db.execute('DELETE FROM t1'); + // // Bulk insert 50000 rows without using a transaction + const bulkInsertCommands: SQLBatchTuple[] = []; + for (let i = 0; i < 50000; i++) { + bulkInsertCommands.push(['INSERT INTO t1(id, c) VALUES(?, ?)', [i + 1, `value${i + 1}`]]); + } + await db.executeBatch(bulkInsertCommands); + db.close(); + + for (let i = 1; i < 10; i++) { + const db = open(dbName, { + numReadConnections: NUM_READ_CONNECTIONS + }); + + const promises: Promise[] = []; + // ensure a regular query + db.writeLock(async (tx) => { + await tx.execute(`SELECT * FROM t1 `); + // Don't await these + promises.push( + tx.execute(`SELECT * FROM t1 `), + tx.execute(`SELECT * FROM t1 `), + tx.execute(`SELECT * FROM t1 `), + tx.execute(`SELECT * FROM t1 `) + ); + }); + + db.close(); + + const results = await Promise.all(promises); + expect(results.map((r) => r.rows?.length)).deep.equal(Array(promises.length).fill(50000)); + } + }); + + it('Should close correctly with transaction hooks', async () => { + const dbName = 'test-transaction-close'; + + // populate test data + const db = open(dbName); + await db.execute('CREATE TABLE IF NOT EXISTS t1(id INTEGER PRIMARY KEY, c TEXT)'); + await db.execute('DELETE FROM t1'); + db.close(); + + for (let i = 1; i < 10; i++) { + const db = open(dbName, { + numReadConnections: NUM_READ_CONNECTIONS + }); + + await db.execute('DELETE FROM t1'); + + // ensure a regular query + await db.writeTransaction(async (tx) => { + await tx.execute('INSERT INTO t1(id, c) VALUES(?, ?)', [1, `value${i + 1}`]); + // Don't await these + for (let i = 0; i < 100; i++) { + tx.execute('INSERT INTO t1(id, c) VALUES(?, ?)', [i + 2, `value${i + 1}`]); + } + }); + + // This should not crash + db.close(); + } + }); }); } diff --git a/tests/tsconfig.json b/tests/tsconfig.json index 0e6371f..13d12de 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -1,4 +1,6 @@ { - "compilerOptions": {}, + "compilerOptions": { + "typeRoots": ["node_modules/@types"] + }, "extends": "expo/tsconfig.base" } diff --git a/tests/yarn.lock b/tests/yarn.lock index efaa595..9b4c099 100644 --- a/tests/yarn.lock +++ b/tests/yarn.lock @@ -479,6 +479,14 @@ "@babel/helper-create-class-features-plugin" "^7.25.9" "@babel/helper-plugin-utils" "^7.25.9" +"@babel/plugin-transform-class-static-block@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0" + integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-plugin-utils" "^7.25.9" + "@babel/plugin-transform-classes@^7.25.4": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52" @@ -798,7 +806,20 @@ "@babel/parser" "^7.25.9" "@babel/types" "^7.25.9" -"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3", "@babel/traverse@^7.25.3", "@babel/traverse@^7.25.9": +"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.9.tgz#a50f8fe49e7f69f53de5bea7e413cd35c5e13c84" + integrity sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/generator" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/template" "^7.25.9" + "@babel/types" "^7.25.9" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/traverse@^7.25.3", "@babel/traverse@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.9.tgz#a50f8fe49e7f69f53de5bea7e413cd35c5e13c84" integrity sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw== @@ -843,29 +864,29 @@ dependencies: uuid "^8.0.0" -"@expo/cli@0.21.5": - version "0.21.5" - resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.21.5.tgz#5b69244c77a83a9025cdd611719c3d79ad5c740d" - integrity sha512-hd0pC5ntZxon7IijOsqp5wPOMGtaQNvTPOc74EQc+WS+Cldd7cMNSKKVUI2X7Lrn2Zcje9ne/WgGCnMTjdcVgA== +"@expo/cli@0.22.10": + version "0.22.10" + resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.22.10.tgz#28c05ab3f825ce1fb3d6387c059cb19aa4639ec8" + integrity sha512-MA4TOtf6x8ixVaQbUINgest/DsrWcMVGMmjXYtnhUfwQGvZtJC+aI+xMBM7ow2OqY2B/xfoRcgqkvWkl36yxkA== dependencies: "@0no-co/graphql.web" "^1.0.8" "@babel/runtime" "^7.20.0" "@expo/code-signing-certificates" "^0.0.5" - "@expo/config" "~10.0.4" - "@expo/config-plugins" "~9.0.3" + "@expo/config" "~10.0.8" + "@expo/config-plugins" "~9.0.14" "@expo/devcert" "^1.1.2" - "@expo/env" "~0.4.0" - "@expo/image-utils" "^0.6.0" - "@expo/json-file" "^9.0.0" - "@expo/metro-config" "~0.19.0" - "@expo/osascript" "^2.0.31" - "@expo/package-manager" "^1.5.0" - "@expo/plist" "^0.2.0" - "@expo/prebuild-config" "^8.0.16" + "@expo/env" "~0.4.1" + "@expo/image-utils" "^0.6.4" + "@expo/json-file" "^9.0.1" + "@expo/metro-config" "~0.19.9" + "@expo/osascript" "^2.1.5" + "@expo/package-manager" "^1.7.1" + "@expo/plist" "^0.2.1" + "@expo/prebuild-config" "^8.0.25" "@expo/rudder-sdk-node" "^1.1.1" "@expo/spawn-async" "^1.7.2" "@expo/xcpretty" "^4.3.0" - "@react-native/dev-middleware" "0.76.2" + "@react-native/dev-middleware" "0.76.6" "@urql/core" "^5.0.6" "@urql/exchange-retry" "^1.3.0" accepts "^1.3.8" @@ -904,7 +925,7 @@ requireg "^0.2.2" resolve "^1.22.2" resolve-from "^5.0.0" - resolve.exports "^2.0.2" + resolve.exports "^2.0.3" semver "^7.6.0" send "^0.19.0" slugify "^1.3.4" @@ -928,14 +949,14 @@ node-forge "^1.2.1" nullthrows "^1.1.1" -"@expo/config-plugins@9.0.9", "@expo/config-plugins@~9.0.0", "@expo/config-plugins@~9.0.3": - version "9.0.9" - resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-9.0.9.tgz#3765c310c112e200c6715365d6023f6a05b001ed" - integrity sha512-pbgbY3SwCMwkijhfe163J05BrTx4MqzeaV+nVgUMs7vRcjHY1tfM57Pdv6SPtgeDvZ8fvdXFXXzkJva+a7C9Bw== +"@expo/config-plugins@~9.0.14": + version "9.0.14" + resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-9.0.14.tgz#c57cc86c238b276823ff66d96e4722366d57b12c" + integrity sha512-Lx1ebV95rTFKKQmbu4wMPLz65rKn7mqSpfANdCx+KwRxuLY2JQls8V4h3lQjG6dW8NWf9qV5QaEFAgNB6VMyOQ== dependencies: - "@expo/config-types" "^52.0.0" - "@expo/json-file" "~9.0.0" - "@expo/plist" "^0.2.0" + "@expo/config-types" "^52.0.3" + "@expo/json-file" "~9.0.1" + "@expo/plist" "^0.2.1" "@expo/sdk-runtime-versions" "^1.0.0" chalk "^4.1.2" debug "^4.3.5" @@ -948,20 +969,20 @@ xcode "^3.0.1" xml2js "0.6.0" -"@expo/config-types@^52.0.0": - version "52.0.1" - resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-52.0.1.tgz#327af1b72a3a9d4556f41e083e0e284dd8198b96" - integrity sha512-vD8ZetyKV7U29lR6+NJohYeoLYTH+eNYXJeNiSOrWCz0witJYY11meMmEnpEaVbN89EfC6uauSUOa6wihtbyPQ== +"@expo/config-types@^52.0.3": + version "52.0.3" + resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-52.0.3.tgz#511f2f868172c93abeac7183beeb921dc72d6e1e" + integrity sha512-muxvuARmbysH5OGaiBRlh1Y6vfdmL56JtpXxB+y2Hfhu0ezG1U4FjZYBIacthckZPvnDCcP3xIu1R+eTo7/QFA== -"@expo/config@~10.0.4": - version "10.0.4" - resolved "https://registry.yarnpkg.com/@expo/config/-/config-10.0.4.tgz#a58ec3baef123e77584fbae769484bae2ee74f37" - integrity sha512-pkvdPqKTaP6+Qvc8aTmDLQ9Dfwp98P1GO37MFKwsF5XormfN/9/eN8HfIRoM6d3uSIVKCcWW3X2yAEbNmOyfXw== +"@expo/config@~10.0.8": + version "10.0.8" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-10.0.8.tgz#c94cf98328d2ec38c9da80ec68d252539cd6eb2d" + integrity sha512-RaKwi8e6PbkMilRexdsxObLMdQwxhY6mlgel+l/eW+IfIw8HEydSU0ERlzYUjlGJxHLHUXe4rC2vw8FEvaowyQ== dependencies: "@babel/code-frame" "~7.10.4" - "@expo/config-plugins" "~9.0.0" - "@expo/config-types" "^52.0.0" - "@expo/json-file" "^9.0.0" + "@expo/config-plugins" "~9.0.14" + "@expo/config-types" "^52.0.3" + "@expo/json-file" "^9.0.1" deepmerge "^4.3.1" getenv "^1.0.0" glob "^10.4.2" @@ -990,10 +1011,10 @@ tmp "^0.0.33" tslib "^2.4.0" -"@expo/env@~0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@expo/env/-/env-0.4.0.tgz#1ff3a15084566d12ca92cb67e5b0a9796a9f0aa7" - integrity sha512-g2JYFqck3xKIwJyK+8LxZ2ENZPWtRgjFWpeht9abnKgzXVXBeSNECFBkg+WQjQocSIdxXhEWM6hz4ZAe7Tc4ng== +"@expo/env@~0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@expo/env/-/env-0.4.1.tgz#8691f6c7df08e66af767ff607e1eac2010487fdc" + integrity sha512-oDtbO3i9yXD1nx93acWiPTWGljJ3vABn35x1NAbqtQ2JL6mFOcRcArt1dwi4imZyLnG4VCcjabT9irj+LgYntw== dependencies: chalk "^4.0.0" debug "^4.3.4" @@ -1001,10 +1022,10 @@ dotenv-expand "~11.0.6" getenv "^1.0.0" -"@expo/fingerprint@0.11.2": - version "0.11.2" - resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.11.2.tgz#94de978e94e2e2773c6a5554d53d04f7a7c710d2" - integrity sha512-WPibADqymGSKkNNnrGfw4dRipz7F8DwMSv7zb6T9oTGtdRiObrUpGmtBXmvo6z9MqWkNRprEJNxPjvkkvMvwhQ== +"@expo/fingerprint@0.11.7": + version "0.11.7" + resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.11.7.tgz#cd326b48e18f979b4428e75c84a4c3a66a0cd985" + integrity sha512-2rfYVS4nqWmOPQk+AL5GPfPSawbqqmI5mL++bxAhWADt+d+fjoQYfIrGtjZxQ30f9o/a1PrRPVSuh2j09+diVg== dependencies: "@expo/spawn-async" "^1.7.2" arg "^5.0.2" @@ -1017,10 +1038,10 @@ resolve-from "^5.0.0" semver "^7.6.0" -"@expo/image-utils@^0.6.0": - version "0.6.3" - resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.6.3.tgz#89c744460beefc686989b969121357bbd5520c8a" - integrity sha512-v/JbCKBrHeudxn1gN1TgfPE/pWJSlLPrl29uXJBgrJFQVkViQvUHQNDhaS+UEa9wYI5HHh7XYmtzAehyG4L+GA== +"@expo/image-utils@^0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.6.4.tgz#fc0c18de576c2bb0328d0ff9d067c5ba68c83d28" + integrity sha512-L++1PBzSvf5iYc6UHJ8Db8GcYNkfLDw+a+zqEFBQ3xqRXP/muxb/O7wuiMFlXrj/cfkx4e0U+z1a4ceV0A7S7Q== dependencies: "@expo/spawn-async" "^1.7.2" chalk "^4.0.0" @@ -1033,27 +1054,27 @@ temp-dir "~2.0.0" unique-string "~2.0.0" -"@expo/json-file@^9.0.0", "@expo/json-file@~9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-9.0.0.tgz#e3688c9b108cfd7e819f1354a9458ba6e93fc943" - integrity sha512-M+55xFVrFzDcgMDf+52lPDLjKB5xwRfStWlv/b/Vu2OLgxGZLWpxoPYjlRoHqxjPbCQIi2ZCbobK+0KuNhsELg== +"@expo/json-file@^9.0.1", "@expo/json-file@~9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-9.0.1.tgz#ff60654caf1fa3c33f9b17dcd1e9691eb854a318" + integrity sha512-ZVPhbbEBEwafPCJ0+kI25O2Iivt3XKHEKAADCml1q2cmOIbQnKgLyn8DpOJXqWEyRQr/VWS+hflBh8DU2YFSqg== dependencies: "@babel/code-frame" "~7.10.4" json5 "^2.2.3" write-file-atomic "^2.3.0" -"@expo/metro-config@0.19.4", "@expo/metro-config@~0.19.0": - version "0.19.4" - resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.19.4.tgz#940b6fad7809a92a8ffdb1bbe87aa805f5822c6b" - integrity sha512-2SWwYN8MZvMIRawWEr+1RBYncitPwu2VMACRYig+wBycJ9fsPb6BMVmBYi+3MHDUlJHNy/Bqfw++jn1eqBFETQ== +"@expo/metro-config@0.19.9", "@expo/metro-config@~0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.19.9.tgz#f020a2523cecf90e4f2a833386a88e07f6d004f8" + integrity sha512-JAsLWhFQqwLH0KsI4OMbPXsKFji5KJEmsi+/02Sz1GCT17YrjRmv1fZ91regUS/FUH2Y/PDAE/+2ulrTgMeG7A== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.5" "@babel/parser" "^7.20.0" "@babel/types" "^7.20.0" - "@expo/config" "~10.0.4" - "@expo/env" "~0.4.0" - "@expo/json-file" "~9.0.0" + "@expo/config" "~10.0.8" + "@expo/env" "~0.4.1" + "@expo/json-file" "~9.0.1" "@expo/spawn-async" "^1.7.2" chalk "^4.1.0" debug "^4.3.2" @@ -1066,20 +1087,20 @@ postcss "~8.4.32" resolve-from "^5.0.0" -"@expo/osascript@^2.0.31": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@expo/osascript/-/osascript-2.1.4.tgz#4918d16ba09d8b01cb393bc5997055e61d31246f" - integrity sha512-LcPjxJ5FOFpqPORm+5MRLV0CuYWMthJYV6eerF+lQVXKlvgSn3EOqaHC3Vf3H+vmB0f6G4kdvvFtg40vG4bIhA== +"@expo/osascript@^2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@expo/osascript/-/osascript-2.1.5.tgz#655c3913e592efbb5db41273b76920911c60809e" + integrity sha512-Cp7YF7msGiTAIbFdzNovwHBfecdMLVL5XzSqq4xQz72ALFCQ3uSIUXRph1QV2r61ugH7Yem0gY8yi7RcDlI4qg== dependencies: "@expo/spawn-async" "^1.7.2" exec-async "^2.2.0" -"@expo/package-manager@^1.5.0": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-1.6.1.tgz#ab845238dec10bb48bca2b90e060dfe8c1525602" - integrity sha512-4rT46wP/94Ll+CWXtFKok1Lbo9XncSUtErFOo/9/3FVughGbIfdG4SKZOAWIpr9wxwEfkyhHfAP9q71ONlWODw== +"@expo/package-manager@^1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-1.7.1.tgz#13eb686bc949a395d992fb2575f8a1930a6aebf3" + integrity sha512-DKbELrTOdl7U3KT0C07Aka9P+sUP3LL+1UTKf1KmLx2x2gPH1IC+c68N7iQlwNt+yA37qIw6/vKoqyTGu5EL9g== dependencies: - "@expo/json-file" "^9.0.0" + "@expo/json-file" "^9.0.1" "@expo/spawn-async" "^1.7.2" ansi-regex "^5.0.0" chalk "^4.0.0" @@ -1092,26 +1113,26 @@ split "^1.0.1" sudo-prompt "9.1.1" -"@expo/plist@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@expo/plist/-/plist-0.2.0.tgz#beb014c0bfd56a993086c0972ec1ca3ef3f9d36c" - integrity sha512-F/IZJQaf8OIVnVA6XWUeMPC3OH6MV00Wxf0WC0JhTQht2QgjyHUa3U5Gs3vRtDq8tXNsZneOQRDVwpaOnd4zTQ== +"@expo/plist@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@expo/plist/-/plist-0.2.1.tgz#a315e1964ee9eece5c56040d460db5de7af85889" + integrity sha512-9TaXGuNxa0LQwHQn4rYiU6YaERv6dPnQgsdKWq2rKKTr6LWOtGNQCi/yOk/HBLeZSxBm59APT5/6x60uRvr0Mg== dependencies: "@xmldom/xmldom" "~0.7.7" base64-js "^1.2.3" xmlbuilder "^14.0.0" -"@expo/prebuild-config@^8.0.16": - version "8.0.17" - resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-8.0.17.tgz#a2ac262e070b58bc071afefa7fe627c7b2ad7bb4" - integrity sha512-HM+XpDox3fAZuXZXvy55VRcBbsZSDijGf8jI8i/pexgWvtsnt1ouelPXRuE1pXDicMX+lZO83QV+XkyLmBEXYQ== - dependencies: - "@expo/config" "~10.0.4" - "@expo/config-plugins" "~9.0.0" - "@expo/config-types" "^52.0.0" - "@expo/image-utils" "^0.6.0" - "@expo/json-file" "^9.0.0" - "@react-native/normalize-colors" "0.76.2" +"@expo/prebuild-config@^8.0.25": + version "8.0.25" + resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-8.0.25.tgz#c802303030377e73b6c405ef3200a8c751f7631a" + integrity sha512-xYHV8eiydZEDedf2AGaOFRFwcGlaSzrqQH94dwX42urNCU03FO0RUb7yPp4nkb7WNFg5Ov6PDsV7ES+YwzNgYQ== + dependencies: + "@expo/config" "~10.0.8" + "@expo/config-plugins" "~9.0.14" + "@expo/config-types" "^52.0.3" + "@expo/image-utils" "^0.6.4" + "@expo/json-file" "^9.0.1" + "@react-native/normalize-colors" "0.76.6" debug "^4.3.1" fs-extra "^9.0.0" resolve-from "^5.0.0" @@ -1519,22 +1540,22 @@ prompts "^2.4.2" semver "^7.5.2" -"@react-native/assets-registry@0.76.2": - version "0.76.2" - resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.76.2.tgz#c3cf689b336e008bec3a80976ae6a92aa34d616b" - integrity sha512-0CTWv/FqJzU1vsyx2JpCkyLSUOePU7DdKgFvtHdwOxFpOw3aBecszqZDGJADYV9WSZQlq6RV0HmIaWycGYCOMA== +"@react-native/assets-registry@0.76.6": + version "0.76.6" + resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.76.6.tgz#649af8a19cbabcea321dbcfb1a1ae04bb298d958" + integrity sha512-YI8HoReYiIwdFQs+k9Q9qpFTnsyYikZxgs/UVtVbhKixXDQF6F9LLvj2naOx4cfV+RGybNKxwmDl1vUok/dRFQ== -"@react-native/babel-plugin-codegen@0.76.2": - version "0.76.2" - resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.76.2.tgz#9a18112abbc9e4b8f6bcb2f45521f009c462984a" - integrity sha512-a1IfRho/ZUVbvzSu3JWkxsvqyEI7IXApPQikhGWw4e24QYsIYHdlIULs3rb0840lqpO1dbbuudfO7lmkpkbkMg== +"@react-native/babel-plugin-codegen@0.76.6": + version "0.76.6" + resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.76.6.tgz#0c249966ab43ac2200aadd051abcec4691c9a845" + integrity sha512-yFC9I/aDBOBz3ZMlqKn2NY/mDUtCksUNZ7AQmBiTAeVTUP0ujEjE0hTOx5Qd+kok7A7hwZEX87HdSgjiJZfr5g== dependencies: - "@react-native/codegen" "0.76.2" + "@react-native/codegen" "0.76.6" -"@react-native/babel-preset@0.76.2": - version "0.76.2" - resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.76.2.tgz#3c4555012c612f8a849d407b3c91e63afe085c66" - integrity sha512-/kbxZqy70mGONv23uZg7lm7ZCE4dO5dgMzVPz6QsveXIRHQBRLsSC+9w2iZEnYWpLayoWFmTbq8ZG+4W32D3bA== +"@react-native/babel-preset@0.76.6": + version "0.76.6" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.76.6.tgz#f84fd12ceb2961946c599714d379bf900e140952" + integrity sha512-ojlVWY6S/VE/nb9hIRetPMTsW9ZmGb2R3dnToEXAtQQDz41eHMHXbkw/k2h0THp6qhas25ruNvn3N5n2o+lBzg== dependencies: "@babel/core" "^7.25.2" "@babel/plugin-proposal-export-default-from" "^7.24.7" @@ -1577,15 +1598,15 @@ "@babel/plugin-transform-typescript" "^7.25.2" "@babel/plugin-transform-unicode-regex" "^7.24.7" "@babel/template" "^7.25.0" - "@react-native/babel-plugin-codegen" "0.76.2" + "@react-native/babel-plugin-codegen" "0.76.6" babel-plugin-syntax-hermes-parser "^0.25.1" babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" -"@react-native/codegen@0.76.2": - version "0.76.2" - resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.76.2.tgz#b770d3522275717c4c2894a1f519749d5fd16733" - integrity sha512-rIgdI5mHHnNTzAeDYH+ivKMIcv6vr04Ol+TmX77n1HjJkzMhQqSHWcX+Pq9oiu7l2zKkymadrw6OPD8VPgre8g== +"@react-native/codegen@0.76.6": + version "0.76.6" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.76.6.tgz#1c6822c59ac25a1ce608562481caf25e535f091f" + integrity sha512-BABb3e5G/+hyQYEYi0AODWh2km2d8ERoASZr6Hv90pVXdUHRYR+yxCatX7vSd9rnDUYndqRTzD0hZWAucPNAKg== dependencies: "@babel/parser" "^7.25.3" glob "^7.1.1" @@ -1596,13 +1617,13 @@ nullthrows "^1.1.1" yargs "^17.6.2" -"@react-native/community-cli-plugin@0.76.2": - version "0.76.2" - resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.76.2.tgz#c12b42918eb5f8f85a08cf4d1f40ca1158dfc2ca" - integrity sha512-ZRL8oTGSMwXqTsVkRL9AVW8C/AZRnxCcFfhestsx//SrQt3J/hbtDOHTIGkkt5AEA0zEvb/UAAyIAN/wuN4llw== +"@react-native/community-cli-plugin@0.76.6": + version "0.76.6" + resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.76.6.tgz#3cdd87405c9e0ace5a5df29d206dea22a14e6334" + integrity sha512-nETlc/+U5cESVluzzgN0OcVfcoMijGBaDWzOaJhoYUodcuqnqtu75XsSEc7yzlYjwNQG+vF83mu9CQGezruNMA== dependencies: - "@react-native/dev-middleware" "0.76.2" - "@react-native/metro-babel-transformer" "0.76.2" + "@react-native/dev-middleware" "0.76.6" + "@react-native/metro-babel-transformer" "0.76.6" chalk "^4.0.0" execa "^5.1.1" invariant "^2.2.4" @@ -1613,18 +1634,18 @@ readline "^1.3.0" semver "^7.1.3" -"@react-native/debugger-frontend@0.76.2": - version "0.76.2" - resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.76.2.tgz#6fed871e1c87f2b5992c56625b7088f3cf477af4" - integrity sha512-FIcz24Oya2wIO7rZD3dxVyK8t5ZD6Fojl9o7lrjnTWqMedcevRTtdSOIAf4ypksYH/x7HypovE2Zp8U65Xv0Mw== +"@react-native/debugger-frontend@0.76.6": + version "0.76.6" + resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.76.6.tgz#e8eae252f9a3d4b2a811748cf2a504242de2ce0f" + integrity sha512-kP97xMQjiANi5/lmf8MakS7d8FTJl+BqYHQMqyvNiY+eeWyKnhqW2GL2v3eEUBAuyPBgJGivuuO4RvjZujduJg== -"@react-native/dev-middleware@0.76.2": - version "0.76.2" - resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.76.2.tgz#f73dd4032e6acaeb30a672c778420e3d4eb9e76f" - integrity sha512-qiowXpxofLk0lpIZps7fyyp9NiKlqBwh0R0yVub5l4EJcqjLonjsznYAHbusnPW9kb9MQSdovGPNv5b8RadJww== +"@react-native/dev-middleware@0.76.6": + version "0.76.6" + resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.76.6.tgz#c10c1587444abbc7e9f92491a4a79d4464dc3ecd" + integrity sha512-1bAyd2/X48Nzb45s5l2omM75vy764odx/UnDs4sJfFCuK+cupU4nRPgl0XWIqgdM/2+fbQ3E4QsVS/WIKTFxvQ== dependencies: "@isaacs/ttlcache" "^1.4.1" - "@react-native/debugger-frontend" "0.76.2" + "@react-native/debugger-frontend" "0.76.6" chrome-launcher "^0.15.2" chromium-edge-launcher "^0.2.0" connect "^3.6.5" @@ -1635,35 +1656,35 @@ serve-static "^1.13.1" ws "^6.2.3" -"@react-native/gradle-plugin@0.76.2": - version "0.76.2" - resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.76.2.tgz#a06be606fadf9896f4302684aa5c1f2ae95f912b" - integrity sha512-KC5/uAeLoeD1dOjymx6gnNFHGGLB22xNYjrjrJNK5r0bw2O2KXp4rpB5VCT/2H5B48cVC0xPB7RIKOFrDHr5bQ== +"@react-native/gradle-plugin@0.76.6": + version "0.76.6" + resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.76.6.tgz#50786e65da9baa6b78b504602bf8481be173e3fc" + integrity sha512-sDzpf4eiynryoS6bpYCweGoxSmWgCSx9lzBoxIIW+S6siyGiTaffzZHWCm8mIn9UZsSPlEO37q62ggnR9Zu/OA== -"@react-native/js-polyfills@0.76.2": - version "0.76.2" - resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.76.2.tgz#2ae509d2cafba8291baf3f8b54a761e08d6fa97d" - integrity sha512-OXunyNn33fa7gQ6iU5rQcYZQsO7OkJIAr/TgVdoHxpOB4i+ZGsfv6df3JKriBVT1ZZm6ZTlKyIa4QpLq3p0dmw== +"@react-native/js-polyfills@0.76.6": + version "0.76.6" + resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.76.6.tgz#83b65f3ca5f531abfcc6debb2b47c18b32d4bd47" + integrity sha512-cDD7FynxWYxHkErZzAJtzPGhJ13JdOgL+R0riTh0hCovOfIUz9ItffdLQv2nx48lnvMTQ+HZXMnGOZnsFCNzQw== -"@react-native/metro-babel-transformer@0.76.2": - version "0.76.2" - resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.76.2.tgz#7645512527cae774f6c34d60718870178e9833df" - integrity sha512-OIYhmWfN+HDyQLzoEg+2P0h7OopYk4djggg0M+k5e1a+g2dFNJILO/BsDobM8uLA8hAzClAJyJLZbPo5jeqdMA== +"@react-native/metro-babel-transformer@0.76.6": + version "0.76.6" + resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.76.6.tgz#ec77a5459b288db81dba53dc24747c71eb3c041f" + integrity sha512-xSBi9jPliThu5HRSJvluqUlDOLLEmf34zY/U7RDDjEbZqC0ufPcPS7c5XsSg0GDPiXc7lgjBVesPZsKFkoIBgA== dependencies: "@babel/core" "^7.25.2" - "@react-native/babel-preset" "0.76.2" + "@react-native/babel-preset" "0.76.6" hermes-parser "0.23.1" nullthrows "^1.1.1" -"@react-native/normalize-colors@0.76.2": - version "0.76.2" - resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.76.2.tgz#015fa1d454ec605153c8af05666185026e682e66" - integrity sha512-ICoOpaTLPsFQjNLSM00NgQr6wal300cZZonHVSDXKntX+BfkLeuCHRtr/Mn+klTtW+/1v2/2FRm9dXjvyGf9Dw== +"@react-native/normalize-colors@0.76.6": + version "0.76.6" + resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.76.6.tgz#c2688aee5a824ad5331bb2b01791b024cd6643ea" + integrity sha512-1n4udXH2Cla31iA/8eLRdhFHpYUYK1NKWCn4m1Sr9L4SarWKAYuRFliK1fcLvPPALCFoFlWvn8I0ekdUOHMzDQ== -"@react-native/virtualized-lists@0.76.2": - version "0.76.2" - resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.76.2.tgz#2b9f720323d828cdd0f1ef5d26f700cfd44b5e89" - integrity sha512-FzXvkHgKvJGf0pSuLy6878cxJ6mxWKgZsH9s2kO4LWJocI8Bi3ViDx7IGAWYuvN+Fnue5TKaqGPhfD+4XrKtYQ== +"@react-native/virtualized-lists@0.76.6": + version "0.76.6" + resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.76.6.tgz#ae08b1efd49060c253da889a1a37ffbef9388743" + integrity sha512-0HUWVwJbRq1BWFOu11eOWGTSmK9nMHhoMPyoI27wyWcl/nqUx7HOxMbRVq0DsTCyATSMPeF+vZ6o1REapcNWKw== dependencies: invariant "^2.2.4" nullthrows "^1.1.1" @@ -1758,10 +1779,19 @@ "@types/connect" "*" "@types/node" "*" -"@types/chai@^4.3.4": - version "4.3.20" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.20.tgz#cb291577ed342ca92600430841a00329ba05cecc" - integrity sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ== +"@types/chai-as-promised@^8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-8.0.1.tgz#afd958500955a79053ef6531d677b4edd5c25925" + integrity sha512-dAlDhLjJlABwAVYObo9TPWYTRg9NaQM5CXeaeJYcYAkvzUf0JRLIiog88ao2Wqy/20WUnhbbUZcgvngEbJ3YXQ== + dependencies: + "@types/chai" "*" + +"@types/chai@*", "@types/chai@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.0.1.tgz#2c3705555cf11f5f59c836a84c44afcfe4e5689d" + integrity sha512-5T8ajsg3M/FOncpLYW7sdOcD6yf4+722sze/tc4KQV0P8Z2rAr3SAuHCIkYmYpt8VbcQlnz8SxlOlPQYefe4cA== + dependencies: + "@types/deep-eql" "*" "@types/chance@^1.1.3": version "1.1.6" @@ -1775,6 +1805,11 @@ dependencies: "@types/node" "*" +"@types/deep-eql@*": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/deep-eql/-/deep-eql-4.0.2.tgz#334311971d3a07121e7eb91b684a605e7eea9cbd" + integrity sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw== + "@types/express-serve-static-core@^5.0.0": version "5.0.1" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.1.tgz#3c9997ae9d00bc236e45c6374e84f2596458d9db" @@ -2108,10 +2143,10 @@ asap@~2.0.3, asap@~2.0.6: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== +assertion-error@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" + integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== ast-types@0.15.2: version "0.15.2" @@ -2268,10 +2303,10 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" -babel-preset-expo@~12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-12.0.1.tgz#933b6fc00e2634977e6e270f6b2c775b98c64099" - integrity sha512-9T2o+aeKnHOtQhk/undQbibJv02bdCgfs68ZwgAdueljDBcs2oVfq41qG9XThYwa6Dn7CdfnoEUsIyFqBwjcVw== +babel-preset-expo@~12.0.6: + version "12.0.6" + resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-12.0.6.tgz#2f39fe421d5ba9a0ce74dcd918a458c62c6601da" + integrity sha512-az3H7gDVo0wxNBAFES8h5vLLWE8NPGkD9g5P962hDEOqZUdyPacb9MOzicypeLmcq9zQWr6E3iVtEHoNagCTTQ== dependencies: "@babel/plugin-proposal-decorators" "^7.12.9" "@babel/plugin-transform-export-namespace-from" "^7.22.11" @@ -2279,7 +2314,7 @@ babel-preset-expo@~12.0.1: "@babel/plugin-transform-parameters" "^7.22.15" "@babel/preset-react" "^7.22.15" "@babel/preset-typescript" "^7.23.0" - "@react-native/babel-preset" "0.76.2" + "@react-native/babel-preset" "0.76.6" babel-plugin-react-native-web "~0.19.13" react-refresh "^0.14.2" @@ -2549,18 +2584,23 @@ caniuse-lite@^1.0.30001669: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz#5380ede637a33b9f9f1fc6045ea99bd142f3da5e" integrity sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA== -chai@^4.3.7: - version "4.5.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.5.0.tgz#707e49923afdd9b13a8b0b47d33d732d13812fd8" - integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== +chai-as-promised@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-8.0.1.tgz#8913b2fd685b3f5637d25f627518e3ac9614d8e1" + integrity sha512-OIEJtOL8xxJSH8JJWbIoRjybbzR52iFuDHuF8eb+nTPD6tgXLjRqsgnUGqQfFODxYvq5QdirT0pN9dZ0+Gz6rA== dependencies: - assertion-error "^1.1.0" - check-error "^1.0.3" - deep-eql "^4.1.3" - get-func-name "^2.0.2" - loupe "^2.3.6" - pathval "^1.1.1" - type-detect "^4.1.0" + check-error "^2.0.0" + +chai@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/chai/-/chai-5.1.2.tgz#3afbc340b994ae3610ca519a6c70ace77ad4378d" + integrity sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw== + dependencies: + assertion-error "^2.0.1" + check-error "^2.1.1" + deep-eql "^5.0.1" + loupe "^3.1.0" + pathval "^2.0.0" chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" @@ -2589,12 +2629,10 @@ charenc@0.0.2: resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== -check-error@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" - integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== - dependencies: - get-func-name "^2.0.2" +check-error@^2.0.0, check-error@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" + integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== chokidar@^3.5.3, chokidar@^3.6.0: version "3.6.0" @@ -3002,12 +3040,10 @@ decamelize@^4.0.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -deep-eql@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" - integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== - dependencies: - type-detect "^4.0.0" +deep-eql@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" + integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== deep-extend@^0.6.0: version "0.6.0" @@ -3295,55 +3331,55 @@ execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -expo-asset@~11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-11.0.1.tgz#8608f5ea4639698553725b6690dd621f6f70f206" - integrity sha512-WatvD7JVC89EsllXFYcS/rji3ajVzE2B/USo0TqedsETixwyVCQfrrvCdCPQyuKghrxVNEj8bQ/Qbea/RZLYjg== +expo-asset@~11.0.2: + version "11.0.2" + resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-11.0.2.tgz#17d956ab65079e2e205500b6a1ca92c7bb422e5c" + integrity sha512-We3Td5WsNsNQyXoheLnuwic6JCOt/pqXqIIyWaZ3z/PeHrA+SwoQdI18MjDhkudLK08tbIVyDSUW8IJHXa04eg== dependencies: - "@expo/image-utils" "^0.6.0" - expo-constants "~17.0.0" + "@expo/image-utils" "^0.6.4" + expo-constants "~17.0.4" invariant "^2.2.4" md5-file "^3.2.3" -expo-build-properties@~0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.13.1.tgz#e40645b34debed5eab53a273c89543aaef58bc57" - integrity sha512-7tDlAM0PPkXC0B00C6/FG19sMzwxZNyiDfn22AWVbBxWxZE1/3RqxPgT3MlPVNfvy+wJw7jt/qbAb0S06wFYVg== +expo-build-properties@~0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.13.2.tgz#c9cef927fc8236551d940da4fd8dc1332e2d052d" + integrity sha512-ML2GwBgn0Bo4yPgnSGb7h3XVxCigS/KFdid3xPC2HldEioTP3UewB/2Qa4WBsam9Fb7lAuRyVHAfRoA3swpDzg== dependencies: ajv "^8.11.0" semver "^7.6.0" -expo-constants@~17.0.0, expo-constants@~17.0.3: - version "17.0.3" - resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-17.0.3.tgz#a05b38e0417d59759ece1642b4d483889e04dbda" - integrity sha512-lnbcX2sAu8SucHXEXxSkhiEpqH+jGrf+TF+MO6sHWIESjwOUVVYlT8qYdjR9xbxWmqFtrI4KV44FkeJf2DaFjQ== +expo-constants@~17.0.4: + version "17.0.4" + resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-17.0.4.tgz#d0b653dc9a36fc0b25887c99a46d9806bdfe462d" + integrity sha512-5c0VlZycmDyQUCMCr3Na3cpHAsVJJ+5o6KkkD4rmATQZ0++Xp/S2gpnjWyEo2riRmO91vxoyHwmAySXuktJddQ== dependencies: - "@expo/config" "~10.0.4" - "@expo/env" "~0.4.0" + "@expo/config" "~10.0.8" + "@expo/env" "~0.4.1" -expo-file-system@~18.0.3: - version "18.0.3" - resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-18.0.3.tgz#907f058f4f2e2bbbdb970280edf9be735e85c0de" - integrity sha512-HKe0dGW3FWYFi1F3THVnTRueTG7j0onmEpUJKRB4UbjeHD2723cn/EutcG216wvrJeebe8w3+00F8Z4xk+9Jrw== +expo-file-system@~18.0.7: + version "18.0.7" + resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-18.0.7.tgz#218792dc0aeb7e0976a7f8f412a5d7de09b39610" + integrity sha512-6PpbQfogMXdzOsJzlJayy5qf40IfIHhudtAOzr32RlRYL4Hkmk3YcR9jG0PWQ0rklJfAhbAdP63yOcN+wDgzaA== dependencies: web-streams-polyfill "^3.3.2" -expo-font@~13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-13.0.1.tgz#3a7eed7a4238a352fc74a425fd8c020c5f122382" - integrity sha512-8JE47B+6cLeKWr5ql8gU6YsPHjhrz1vMrTqYMm72No/8iW8Sb/uL4Oc0dpmbjq3hLLXBY0xPBQOgU7FQ6Y04Vg== +expo-font@~13.0.3: + version "13.0.3" + resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-13.0.3.tgz#7660ec4e3f5df0782bfa563fea7170c7ce2865ab" + integrity sha512-9IdYz+A+b3KvuCYP7DUUXF4VMZjPU+IsvAnLSVJ2TfP6zUD2JjZFx3jeo/cxWRkYk/aLj5+53Te7elTAScNl4Q== dependencies: fontfaceobserver "^2.1.0" -expo-keep-awake@~14.0.1: - version "14.0.1" - resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-14.0.1.tgz#77c38feefa95c494aa167e6df5a6eacd17af2358" - integrity sha512-c5mGCAIk2YM+Vsdy90BlEJ4ZX+KG5Au9EkJUIxXWlpnuKmDAJ3N+5nEZ7EUO1ZTheqoSBeAo4jJ8rTWPU+JXdw== +expo-keep-awake@~14.0.2: + version "14.0.2" + resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-14.0.2.tgz#124a729df43c87994631f51d5b1b5093d58e6c80" + integrity sha512-71XAMnoWjKZrN8J7Q3+u0l9Ytp4OfhNAYz8BCWF1/9aFUw09J3I7Z5DuI3MUsVMa/KWi+XhG+eDUFP8cVA19Uw== -expo-modules-autolinking@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-2.0.2.tgz#cf946317e22e120dfe97440f225c8033c6bced42" - integrity sha512-n3jC7VoJLfOLGk8NWhEAvM5zSjbLh1kMUSo76nJupx5/vASxDdzihppYebrKrNXPHq5mcw8Jr+r7YB+8xHx7QQ== +expo-modules-autolinking@2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-2.0.7.tgz#fc40ba7505f42f971253ea20a927693f2c123a56" + integrity sha512-rkGc6a/90AC3q8wSy4V+iIpq6Fd0KXmQICKrvfmSWwrMgJmLfwP4QTrvLYPYOOMjFwNJcTaohcH8vzW/wYKrMg== dependencies: "@expo/spawn-async" "^1.7.2" chalk "^4.1.0" @@ -3354,45 +3390,45 @@ expo-modules-autolinking@2.0.2: require-from-string "^2.0.2" resolve-from "^5.0.0" -expo-modules-core@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-2.0.3.tgz#9e2750159891c3c3baa28bd2532bbb1147fc09f6" - integrity sha512-S/Ozg6NhLkMc7k+qSLzOtjCexuimkYXHM/PCZtbn53nkuNYyaLpfVfrsJsRWxLIMe8ftbm6cDrKlN5mJ6lNODg== +expo-modules-core@2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-2.1.4.tgz#f710555c6e0ede0776e8b72a7e2b50d7873542a0" + integrity sha512-gfsbTPSaocgcQQDy4Z4ztg1hcOofwODctAA+yoNcrUQr/hRaDc6ndIJQwGPjoGXnEbXVxFfzGGSAkNiqK1I7lQ== dependencies: invariant "^2.2.4" -expo-splash-screen@~0.29.10: - version "0.29.10" - resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.29.10.tgz#8c1f3b636b95df89305f54092ac94506751fb544" - integrity sha512-MYeBFitJvSGPCCLZMWJ1yTEJlXn549dIt35w8Fo/ErcbNaNmUI2Ew7pwIOGMTsPLPsB4I9Zm9LegPTWfcKFOrA== +expo-splash-screen@~0.29.21: + version "0.29.21" + resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.29.21.tgz#f97677130ad11ba238ce31acc4280edaf4f1de88" + integrity sha512-7uZ+qvIuNcvrvrLIklW+Wbt6llPuCj6LKYjrMu+GOX8s///laldS4TGiMAbqcE7fmfCzQ8ffgfY7xhxRourhcA== dependencies: - "@expo/prebuild-config" "^8.0.16" + "@expo/prebuild-config" "^8.0.25" -expo-status-bar@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-2.0.0.tgz#dd99adc2ace12a24c92718cd0f97b93347103393" - integrity sha512-vxxdpvpNDMTEc5uTiIrbTvySKKUsOACmfl8OZuUdjNle05oGqwtq3v5YObwym/njSByjoyuZX8UpXBZnxvarwQ== +expo-status-bar@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-2.0.1.tgz#fc07726346dc30fbb68aadb0d7890b34fba42eee" + integrity sha512-AkIPX7jWHRPp83UBZ1iXtVvyr0g+DgBVvIXTtlmPtmUsm8Vq9Bb5IGj86PW8osuFlgoTVAg7HI/+Ok7yEYwiRg== -expo@^52.0.0: - version "52.0.7" - resolved "https://registry.yarnpkg.com/expo/-/expo-52.0.7.tgz#8e734de7b314657bf09812c0f66987523d0ed582" - integrity sha512-AXN+FmYF8jR+IUJCuETO9iuMZ2DdGpL175kvHveBM/cS4MQsF7oe1MTnCRLyXQ92BDUZlqjWqWTX1sY3ysPoZw== +expo@~52.0.26: + version "52.0.27" + resolved "https://registry.yarnpkg.com/expo/-/expo-52.0.27.tgz#9eeceda4990ee5a78a66d3f2c26122118ba9454c" + integrity sha512-PxIS8JRTegUNYq4vNeP0eCqm7p17oGNYjJ/9x207zkwVlklywD9LYIckGojXEY5JPW/DwhbhtO6E2hMgdQQugg== dependencies: "@babel/runtime" "^7.20.0" - "@expo/cli" "0.21.5" - "@expo/config" "~10.0.4" - "@expo/config-plugins" "9.0.9" - "@expo/fingerprint" "0.11.2" - "@expo/metro-config" "0.19.4" + "@expo/cli" "0.22.10" + "@expo/config" "~10.0.8" + "@expo/config-plugins" "~9.0.14" + "@expo/fingerprint" "0.11.7" + "@expo/metro-config" "0.19.9" "@expo/vector-icons" "^14.0.0" - babel-preset-expo "~12.0.1" - expo-asset "~11.0.1" - expo-constants "~17.0.3" - expo-file-system "~18.0.3" - expo-font "~13.0.1" - expo-keep-awake "~14.0.1" - expo-modules-autolinking "2.0.2" - expo-modules-core "2.0.3" + babel-preset-expo "~12.0.6" + expo-asset "~11.0.2" + expo-constants "~17.0.4" + expo-file-system "~18.0.7" + expo-font "~13.0.3" + expo-keep-awake "~14.0.2" + expo-modules-autolinking "2.0.7" + expo-modules-core "2.1.4" fbemitter "^3.0.0" web-streams-polyfill "^3.3.2" whatwg-url-without-unicode "8.0.0-3" @@ -3721,11 +3757,6 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.1, get-func-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" - integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== - get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" @@ -4629,12 +4660,10 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -loupe@^2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" - integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== - dependencies: - get-func-name "^2.0.1" +loupe@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.2.tgz#c86e0696804a02218f2206124c45d8b15291a240" + integrity sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg== lru-cache@^10.0.1, lru-cache@^10.2.0: version "10.4.3" @@ -5337,6 +5366,11 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== +p-defer@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-4.0.1.tgz#d12c6d41420785ed0d162dbd86b71ba490f7f99e" + integrity sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A== + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -5504,10 +5538,10 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== +pathval@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" + integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== picocolors@^1.0.0, picocolors@^1.1.0, picocolors@^1.1.1: version "1.1.1" @@ -5837,24 +5871,24 @@ react-native-quick-base64@^2.0.5: version "0.0.0" uid "" -react-native-safe-area-context@4.14.0: - version "4.14.0" - resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.14.0.tgz#138f4b2e180cb7517c78bd5f4d4cf91325ba0b1a" - integrity sha512-/SyYpCulWQOnnXhRq6wepkhoyQMowHm1ptDyRz20s+YS/R9mbd+mK+jFyFCyXFJn8jp7vFl43VUCgspuOiEbwA== +react-native-safe-area-context@4.12.0: + version "4.12.0" + resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.12.0.tgz#17868522a55bbc6757418c94a1b4abdda6b045d9" + integrity sha512-ukk5PxcF4p3yu6qMZcmeiZgowhb5AsKRnil54YFUUAXVIS7PJcMHGGC+q44fCiBg44/1AJk5njGMez1m9H0BVQ== -react-native@0.76.2: - version "0.76.2" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.76.2.tgz#966c7c61bd089002540ce668d9fbe544f2f9ea96" - integrity sha512-mkEBKGOmJxhfq8IOsvmk0QuTzlBt9vS+uo0gwbqfUmEDqoC359v80zhUf94WimYBrBkpRQWFbEu5iqMDHrYzlQ== +react-native@0.76.6: + version "0.76.6" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.76.6.tgz#65f56f43ef1f4ec0fb0c132adba4f278a7e28cfa" + integrity sha512-AsRi+ud6v6ADH7ZtSOY42kRB4nbM0KtSu450pGO4pDudl4AEK/AF96ai88snb2/VJJSGGa/49QyJVFXxz/qoFg== dependencies: "@jest/create-cache-key-function" "^29.6.3" - "@react-native/assets-registry" "0.76.2" - "@react-native/codegen" "0.76.2" - "@react-native/community-cli-plugin" "0.76.2" - "@react-native/gradle-plugin" "0.76.2" - "@react-native/js-polyfills" "0.76.2" - "@react-native/normalize-colors" "0.76.2" - "@react-native/virtualized-lists" "0.76.2" + "@react-native/assets-registry" "0.76.6" + "@react-native/codegen" "0.76.6" + "@react-native/community-cli-plugin" "0.76.6" + "@react-native/gradle-plugin" "0.76.6" + "@react-native/js-polyfills" "0.76.6" + "@react-native/normalize-colors" "0.76.6" + "@react-native/virtualized-lists" "0.76.6" abort-controller "^3.0.0" anser "^1.4.9" ansi-regex "^5.0.0" @@ -6066,10 +6100,10 @@ resolve-workspace-root@^2.0.0: resolved "https://registry.yarnpkg.com/resolve-workspace-root/-/resolve-workspace-root-2.0.0.tgz#a0098daa0067cd0efa6eb525c57c8fb4a61e78f8" integrity sha512-IsaBUZETJD5WsI11Wt8PKHwaIe45or6pwNc8yflvLJ4DWtImK9kuLoH5kUva/2Mmx/RdIyr4aONNSa2v9LTJsw== -resolve.exports@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" - integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== +resolve.exports@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.3.tgz#41955e6f1b4013b7586f873749a635dea07ebe3f" + integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A== resolve@^1.1.7, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.22.2, resolve@^1.22.8: version "1.22.8" @@ -6447,7 +6481,16 @@ stream-buffers@2.2.x, stream-buffers@~2.2.0: resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" integrity sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -6479,7 +6522,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -6493,6 +6536,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -6763,11 +6813,6 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-detect@^4.0.0, type-detect@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" - integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== - type-fest@^0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" @@ -7051,7 +7096,7 @@ workerpool@^6.5.1: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -7069,6 +7114,15 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"