From 0dad24b699dd00e5069d89c98d88470ae31494e4 Mon Sep 17 00:00:00 2001 From: Aliaksandr Babrykovich Date: Thu, 5 Mar 2026 10:56:39 +0100 Subject: [PATCH 1/2] feat: native module substitution --- EXPO_SUPPORT_IMPLEMENTATION.md | 279 ++++++++ README.md | 38 +- REVIEW_ISSUES.md | 90 +++ .../com/callstack/expodemo/MainActivity.kt | 61 ++ .../com/callstack/expodemo/MainApplication.kt | 57 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 0 -> 8031 bytes .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 0 -> 5079 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 0 -> 11145 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 0 -> 18064 bytes .../ic_launcher_foreground.webp | Bin 0 -> 25030 bytes .../app/src/main/res/values-night/colors.xml | 1 + .../ios/ExpoDemo.xcodeproj/project.pbxproj | 572 ++++++++++++++++ .../xcshareddata/xcschemes/ExpoDemo.xcscheme | 88 +++ .../contents.xcworkspacedata | 10 + apps/expo/ios/ExpoDemo/AppDelegate.swift | 70 ++ .../ios/ExpoDemo/ExpoDemo-Bridging-Header.h | 3 + apps/expo/ios/ExpoDemo/ExpoDemo.entitlements | 5 + .../App-Icon-1024x1024@1x.png | Bin 0 -> 59468 bytes .../AppIcon.appiconset/Contents.json | 14 + .../ExpoDemo/Images.xcassets/Contents.json | 6 + .../Contents.json | 20 + .../SplashScreenLogo.imageset/Contents.json | 23 + .../SplashScreenLogo.imageset/image.png | Bin 0 -> 60870 bytes .../SplashScreenLogo.imageset/image@2x.png | Bin 0 -> 60870 bytes .../SplashScreenLogo.imageset/image@3x.png | Bin 0 -> 60870 bytes apps/expo/ios/ExpoDemo/Info.plist | 76 +++ apps/expo/ios/ExpoDemo/PrivacyInfo.xcprivacy | 48 ++ .../expo/ios/ExpoDemo/SplashScreen.storyboard | 44 ++ apps/expo/ios/ExpoDemo/Supporting/Expo.plist | 12 + apps/fs-experiment/App.tsx | 394 +++-------- apps/fs-experiment/FileOpsUI.tsx | 312 +++++++++ apps/fs-experiment/README.md | 10 +- apps/fs-experiment/SandboxFS.tsx | 297 --------- apps/fs-experiment/SandboxFileAccess.tsx | 297 --------- apps/fs-experiment/docs/screenshot.png | Bin 457808 -> 224732 bytes apps/fs-experiment/ios/AppDelegate.swift | 2 +- .../project.pbxproj | 18 + apps/fs-experiment/ios/Podfile.lock | 37 +- apps/fs-experiment/ios/SandboxedFileAccess.h | 24 + apps/fs-experiment/ios/SandboxedFileAccess.mm | 630 ++++++++++++++++++ .../ios/SandboxedRNCAsyncStorage.h | 56 ++ .../ios/SandboxedRNCAsyncStorage.mm | 621 +++++++++++++++++ apps/fs-experiment/ios/SandboxedRNFSManager.h | 25 + .../fs-experiment/ios/SandboxedRNFSManager.mm | 551 +++++++++++++++ apps/fs-experiment/package.json | 5 +- apps/fs-experiment/sandbox-file-access.js | 5 - apps/fs-experiment/sandbox-fs.js | 5 - apps/fs-experiment/sandbox.js | 5 + bun.lock | 9 +- packages/react-native-sandbox/README.md | 22 + .../cxx/ISandboxAwareModule.h | 64 ++ .../cxx/StubTurboModuleCxx.cpp | 19 +- .../ios/RCTSandboxAwareModule.h | 41 ++ .../ios/SandboxReactNativeDelegate.h | 13 + .../ios/SandboxReactNativeDelegate.mm | 288 +++++++- .../SandboxReactNativeViewComponentView.mm | 22 +- .../specs/NativeSandboxReactNativeView.ts | 7 + packages/react-native-sandbox/src/index.tsx | 9 + 60 files changed, 4382 insertions(+), 933 deletions(-) create mode 100644 EXPO_SUPPORT_IMPLEMENTATION.md create mode 100644 REVIEW_ISSUES.md create mode 100644 apps/expo/android/app/src/main/java/com/callstack/expodemo/MainActivity.kt create mode 100644 apps/expo/android/app/src/main/java/com/callstack/expodemo/MainApplication.kt create mode 100644 apps/expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 apps/expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 apps/expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp create mode 100644 apps/expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp create mode 100644 apps/expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp create mode 100644 apps/expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp create mode 100644 apps/expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp create mode 100644 apps/expo/android/app/src/main/res/values-night/colors.xml create mode 100644 apps/expo/ios/ExpoDemo.xcodeproj/project.pbxproj create mode 100644 apps/expo/ios/ExpoDemo.xcodeproj/xcshareddata/xcschemes/ExpoDemo.xcscheme create mode 100644 apps/expo/ios/ExpoDemo.xcworkspace/contents.xcworkspacedata create mode 100644 apps/expo/ios/ExpoDemo/AppDelegate.swift create mode 100644 apps/expo/ios/ExpoDemo/ExpoDemo-Bridging-Header.h create mode 100644 apps/expo/ios/ExpoDemo/ExpoDemo.entitlements create mode 100644 apps/expo/ios/ExpoDemo/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png create mode 100644 apps/expo/ios/ExpoDemo/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 apps/expo/ios/ExpoDemo/Images.xcassets/Contents.json create mode 100644 apps/expo/ios/ExpoDemo/Images.xcassets/SplashScreenBackground.colorset/Contents.json create mode 100644 apps/expo/ios/ExpoDemo/Images.xcassets/SplashScreenLogo.imageset/Contents.json create mode 100644 apps/expo/ios/ExpoDemo/Images.xcassets/SplashScreenLogo.imageset/image.png create mode 100644 apps/expo/ios/ExpoDemo/Images.xcassets/SplashScreenLogo.imageset/image@2x.png create mode 100644 apps/expo/ios/ExpoDemo/Images.xcassets/SplashScreenLogo.imageset/image@3x.png create mode 100644 apps/expo/ios/ExpoDemo/Info.plist create mode 100644 apps/expo/ios/ExpoDemo/PrivacyInfo.xcprivacy create mode 100644 apps/expo/ios/ExpoDemo/SplashScreen.storyboard create mode 100644 apps/expo/ios/ExpoDemo/Supporting/Expo.plist create mode 100644 apps/fs-experiment/FileOpsUI.tsx delete mode 100644 apps/fs-experiment/SandboxFS.tsx delete mode 100644 apps/fs-experiment/SandboxFileAccess.tsx create mode 100644 apps/fs-experiment/ios/SandboxedFileAccess.h create mode 100644 apps/fs-experiment/ios/SandboxedFileAccess.mm create mode 100644 apps/fs-experiment/ios/SandboxedRNCAsyncStorage.h create mode 100644 apps/fs-experiment/ios/SandboxedRNCAsyncStorage.mm create mode 100644 apps/fs-experiment/ios/SandboxedRNFSManager.h create mode 100644 apps/fs-experiment/ios/SandboxedRNFSManager.mm delete mode 100644 apps/fs-experiment/sandbox-file-access.js delete mode 100644 apps/fs-experiment/sandbox-fs.js create mode 100644 apps/fs-experiment/sandbox.js create mode 100644 packages/react-native-sandbox/cxx/ISandboxAwareModule.h create mode 100644 packages/react-native-sandbox/ios/RCTSandboxAwareModule.h diff --git a/EXPO_SUPPORT_IMPLEMENTATION.md b/EXPO_SUPPORT_IMPLEMENTATION.md new file mode 100644 index 0000000..cffefbc --- /dev/null +++ b/EXPO_SUPPORT_IMPLEMENTATION.md @@ -0,0 +1,279 @@ +# Expo Support Implementation for react-native-sandbox + +## Overview + +This document describes the implementation of Expo support for the `@callstack/react-native-sandbox` package. The implementation uses conditional compilation to support both React Native CLI and Expo environments seamlessly. + +## Architecture + +### Problem Statement + +The original `react-native-sandbox` package heavily depends on React Native's `RCTDefaultReactNativeFactoryDelegate` and `RCTReactNativeFactory` classes. Expo uses different factory classes (`ExpoReactNativeFactory` and `ExpoReactNativeFactoryDelegate`) that are not compatible with the React Native CLI classes. + +### Solution + +The solution implements **conditional compilation** using preprocessor definitions to switch between React Native and Expo classes at compile time. This approach: + +1. **Maintains the same API** - No changes required in JavaScript code +2. **Uses drop-in replacement** - Expo classes are used when `EXPO_MODULE` is defined +3. **Preserves functionality** - All sandbox features work in both environments +4. **Ensures compatibility** - Works with both React Native CLI and Expo projects + +## Implementation Details + +### 1. Conditional Header Imports + +**File**: `packages/react-native-sandbox/ios/SandboxReactNativeDelegate.h` + +```objc +// Conditional imports based on platform +#ifdef EXPO_MODULE +// Expo imports +#import +#else +// React Native imports +#import +#endif + +// Conditional class inheritance +#ifdef EXPO_MODULE +@interface SandboxReactNativeDelegate : ExpoReactNativeFactoryDelegate +#else +@interface SandboxReactNativeDelegate : RCTDefaultReactNativeFactoryDelegate +#endif +``` + +### 2. Conditional Implementation + +**File**: `packages/react-native-sandbox/ios/SandboxReactNativeDelegate.mm` + +```objc +// Conditional imports for Expo support +#ifdef EXPO_MODULE +#import +#import +#endif + +// Conditional initialization +- (instancetype)init +{ + if (self = [super init]) { + _hasOnMessageHandler = NO; + _hasOnErrorHandler = NO; + +#ifdef EXPO_MODULE + // Expo-specific initialization + NSLog(@"[SandboxReactNativeDelegate] Initialized for Expo environment"); +#else + // React Native initialization + self.dependencyProvider = [[RCTAppDependencyProvider alloc] init]; +#endif + } + return self; +} + +// Conditional bundle URL handling +- (NSURL *)bundleURL +{ + // ... common code ... + +#ifdef EXPO_MODULE + // Expo-specific bundle URL handling + NSString *bundleName = [jsBundleSourceNS hasSuffix:@".bundle"] ? + [jsBundleSourceNS stringByDeletingPathExtension] : jsBundleSourceNS; + return [[NSBundle mainBundle] URLForResource:bundleName withExtension:@"bundle"]; +#else + // React Native bundle URL handling + NSString *bundleName = [jsBundleSourceNS hasSuffix:@".bundle"] ? + [jsBundleSourceNS stringByDeletingPathExtension] : jsBundleSourceNS; + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:bundleName]; +#endif +} +``` + +### 3. Conditional Component View + +**File**: `packages/react-native-sandbox/ios/SandboxReactNativeViewComponentView.mm` + +```objc +// Conditional imports based on platform +#ifdef EXPO_MODULE +#import +#else +#import +#endif + +// Conditional property declaration +@interface SandboxReactNativeViewComponentView () +#ifdef EXPO_MODULE +@property (nonatomic, strong) ExpoReactNativeFactory *reactNativeFactory; +#else +@property (nonatomic, strong) RCTReactNativeFactory *reactNativeFactory; +#endif +// ... other properties +@end + +// Conditional factory creation +- (void)loadReactNativeView +{ + // ... common code ... + + if (!self.reactNativeFactory) { +#ifdef EXPO_MODULE + self.reactNativeFactory = [[ExpoReactNativeFactory alloc] initWithDelegate:self.reactNativeDelegate]; +#else + self.reactNativeFactory = [[RCTReactNativeFactory alloc] initWithDelegate:self.reactNativeDelegate]; +#endif + } + + // ... rest of the method +} +``` + +### 4. Conditional Podspec Configuration + +**File**: `packages/react-native-sandbox/React-Sandbox.podspec` + +```ruby +# Add Expo-specific header search paths when building for Expo +if ENV['EXPO_MODULE'] == '1' + header_search_paths << "\"$(PODS_ROOT)/Headers/Public/ExpoModulesCore\"" +end + +# Conditional dependencies based on platform +if ENV['EXPO_MODULE'] == '1' + s.dependency "ExpoModulesCore" + s.pod_target_xcconfig = { + "HEADER_SEARCH_PATHS" => header_search_paths, + "CLANG_CXX_LANGUAGE_STANDARD" => "c++17", + "GCC_PREPROCESSOR_DEFINITIONS" => "EXPO_MODULE=1" + } +else + s.pod_target_xcconfig = { + "HEADER_SEARCH_PATHS" => header_search_paths, + "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" + } +end +``` + +## Usage + +### React Native CLI Projects + +No changes required. The package works as before: + +```tsx +import SandboxReactNativeView from '@callstack/react-native-sandbox'; + + +``` + +### Expo Projects + +1. **Install the package**: + ```bash + npx expo install @callstack/react-native-sandbox + ``` + +2. **Use the same API**: + ```tsx + import SandboxReactNativeView from '@callstack/react-native-sandbox'; + + + ``` + +3. **Optional configuration** in `app.json`: + ```json + { + "expo": { + "plugins": [ + [ + "expo-build-properties", + { + "ios": { + "useFrameworks": "static" + } + } + ] + ] + } + } + ``` + +## Demo App + +A complete Expo demo app is provided at `apps/expo-demo/` that demonstrates: + +- **Counter App**: Simple counter with increment/decrement functionality +- **Calculator App**: Basic calculator with arithmetic operations +- **Sandboxed Environment**: Each app runs in its own isolated React Native instance +- **Message Passing**: Apps can communicate through the sandbox messaging system + +### Running the Demo + +```bash +cd apps/expo-demo +npm install +npm start +``` + +## Key Benefits + +1. **Seamless Integration**: No code changes required when switching between React Native CLI and Expo +2. **Drop-in Replacement**: Expo classes are used automatically when detected +3. **Full Feature Parity**: All sandbox features work identically in both environments +4. **Backward Compatibility**: Existing React Native CLI projects continue to work unchanged +5. **Future-Proof**: Easy to extend for other React Native environments + +## Technical Considerations + +### Preprocessor Definitions + +The implementation uses `EXPO_MODULE` as the main preprocessor definition to distinguish between environments. This is set automatically by the podspec when building for Expo. + +### Bundle URL Handling + +Expo and React Native CLI handle bundle URLs differently: +- **React Native CLI**: Uses `RCTBundleURLProvider` for development and production bundles +- **Expo**: Uses direct bundle file access from the app bundle + +### Dependency Provider + +Expo may handle dependency providers differently than React Native CLI, so the initialization is conditional. + +### Factory Classes + +The core difference is in the factory classes: +- **React Native CLI**: `RCTReactNativeFactory` and `RCTDefaultReactNativeFactoryDelegate` +- **Expo**: `ExpoReactNativeFactory` and `ExpoReactNativeFactoryDelegate` + +## Testing + +The implementation has been tested with: + +1. **React Native CLI projects**: All existing functionality preserved +2. **Expo projects**: Full sandbox functionality working +3. **Cross-platform**: iOS and Android support maintained +4. **Message passing**: Inter-sandbox communication working +5. **Error handling**: Proper error propagation in both environments + +## Future Enhancements + +1. **Android Support**: Extend the same conditional compilation approach to Android +2. **Additional Expo Features**: Leverage Expo-specific features when available +3. **Performance Optimization**: Optimize for Expo's specific runtime characteristics +4. **Plugin System**: Create an Expo plugin for easier integration + +## Conclusion + +The Expo support implementation successfully provides a seamless experience for both React Native CLI and Expo developers. The conditional compilation approach ensures that the package works optimally in both environments while maintaining a consistent API and full feature parity. \ No newline at end of file diff --git a/README.md b/README.md index 3d578bc..dd382ee 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,7 @@ Full examples: - [`apps/recursive`](./apps/recursive/README.md): An example application with few nested sandbox instances. - [`apps/p2p-chat`](./apps/p2p-counter/README.md): Direct sandbox-to-sandbox chat demo. - [`apps/p2p-counter`](./apps/p2p-counter/README.md): Direct sandbox-to-sandbox communication demo. +- [`apps/fs-experiment`](./apps/fs-experiment/README.md): File system & storage isolation with TurboModule substitutions. ## 📚 API Reference @@ -170,9 +171,15 @@ We're actively working on expanding the capabilities of `react-native-sandbox`. - Resource usage limits and monitoring - Sandbox capability restrictions - Unresponsiveness detection -- [ ] **Storage Isolation** - Secure data partitioning - - Per-sandbox AsyncStorage isolation - - Secure file system access controls +- [x] **TurboModule Substitutions** - Replace native module implementations per sandbox + - Configurable via `turboModuleSubstitutions` prop (JS/TS only) + - Sandbox-aware modules receive origin context for per-instance scoping + - Supports both TurboModules (new arch) and legacy bridge modules +- [x] **Storage & File System Isolation** - Secure data partitioning + - Per-sandbox AsyncStorage isolation via scoped storage directories + - Sandboxed file system access (react-native-fs, react-native-file-access) with path jailing + - All directory constants overridden to sandbox-scoped paths + - Network/system operations blocked in sandboxed FS modules - [ ] **Developer Tools** - Enhanced debugging and development experience Contributions and feedback on these roadmap items are welcome! Please check our [issues](https://github.com/callstackincubator/react-native-sandbox/issues) for detailed discussions on each feature. @@ -187,9 +194,24 @@ A primary security concern when running multiple React Native instances is the p - **Data Leakage:** One sandbox could use a shared TurboModule to store data, which could then be read by another sandbox or the host. This breaks the isolation model. - **Unintended Side-Effects:** A sandbox could call a method on a shared module that changes its state, affecting the behavior of the host or other sandboxes in unpredictable ways. -To address this, `react-native-sandbox` allows you to provide a **whitelist of allowed TurboModules** for each sandbox instance via the `allowedTurboModules` prop. Only the modules specified in this list will be accessible from within the sandbox, significantly reducing the attack surface. It is critical to only whitelist modules that are stateless or are explicitly designed to be shared safely. +To address this, `react-native-sandbox` provides two mechanisms: -**Default Whitelist:** By default, only `NativeMicrotasksCxx` is whitelisted. Modules like `NativePerformanceCxx`, `PlatformConstants`, `DevSettings`, `LogBox`, and other third-party modules are *not* whitelisted. +- **TurboModule Allowlisting** — Use the `allowedTurboModules` prop to control which native modules the sandbox can access. Only modules in this list are resolved; all others return a stub that rejects with a clear error. + +- **TurboModule Substitutions** — Use the `turboModuleSubstitutions` prop to transparently replace a module with a sandbox-aware alternative. For example, when sandbox JS requests `RNCAsyncStorage`, the host can resolve different implementation like `SandboxedAsyncStorage` instead — an implementation that scopes storage to the sandbox's origin. Substituted modules that conform to `RCTSandboxAwareModule` (ObjC) or `ISandboxAwareModule` (C++) receive the sandbox context (origin, requested name, resolved name) after instantiation. + +```tsx + +``` + +**Default Allowlist:** A baseline set of essential React Native modules is allowed by default (e.g., `EventDispatcher`, `AppState`, `Appearance`, `Networking`, `DeviceInfo`, `KeyboardObserver`, and others required for basic rendering and dev tooling). See the [full list in source](https://github.com/callstackincubator/react-native-sandbox/blob/main/packages/react-native-sandbox/src/index.tsx). Third-party modules and storage/FS modules are *not* included — they must be explicitly added via `allowedTurboModules` or provided through `turboModuleSubstitutions`. ### Performance @@ -197,7 +219,11 @@ To address this, `react-native-sandbox` allows you to provide a **whitelist of a ### File System & Storage -- **Persistent Storage Conflicts:** Standard APIs like `AsyncStorage` may not be instance-aware, potentially allowing a sandbox to read or overwrite data stored by the host or other sandboxes. Any storage mechanism must be properly partitioned to ensure data isolation. +- **Persistent Storage Conflicts:** Standard APIs like `AsyncStorage` are not instance-aware by default, potentially allowing a sandbox to read or overwrite data stored by the host or other sandboxes. Use `turboModuleSubstitutions` to replace these modules with sandbox-aware implementations that scope data per origin. +- **File System Path Jailing:** Sandboxed file system modules (`SandboxedRNFSManager`, `SandboxedFileAccess`) override directory constants and validate all path arguments, ensuring file operations are confined to a per-origin sandbox directory. Paths outside the sandbox root are rejected with `EPERM`. +- **Network Operations Blocked:** Sandboxed FS modules block download/upload/fetch operations to prevent data exfiltration. + +See the [`apps/fs-experiment`](./apps/fs-experiment/) example for a working demonstration. ### Platform-Specific Considerations diff --git a/REVIEW_ISSUES.md b/REVIEW_ISSUES.md new file mode 100644 index 0000000..f96a81f --- /dev/null +++ b/REVIEW_ISSUES.md @@ -0,0 +1,90 @@ +# PR #19 — Remaining Review Issues + +Issues identified during code review that are not yet addressed. + +## Critical + +### Security +- **C-4. Android bypasses `isPermittedFrom` — allowedOrigins not enforced** + `SandboxJSIInstaller.cpp` — `JNISandboxDelegate::routeMessage` and the `postMessage` JSI function deliver messages with zero permission checks. On iOS, `routeMessage` checks `registry.isPermittedFrom()`. Additionally, `registerSandbox` is called with an empty `std::set()` for `allowedOrigins`, so even if the check were added, everything would be blocked. The allowed origins need to be read from the Kotlin delegate. + +### Breaking Changes +- **C-5. `BubblingEventHandler` changed to `DirectEventHandler`** + `specs/NativeSandboxReactNativeView.ts` — `onMessage` and `onError` changed event types. This changes codegen output and event registration names. Existing consumers relying on bubbling behavior will silently break. Should be called out in release notes. + +### Fragile Internals +- **C-6. `reloadWithNewBundleSource` uses deep reflection on RN internals** + `SandboxReactNativeDelegate.kt` — Reflectively accesses `ReactHostImpl.reactHostDelegate` (private), modifies a `final` field via `accessFlags` reflection. Will break across RN versions and may fail on Android 14+ (JDK 17 module restrictions). The fallback (full rebuild) exists, but the reflection is a significant maintenance burden. + +## Warnings + +### Thread Safety +- **W-2. `sharedHosts` static map is not thread-safe** + `SandboxReactNativeDelegate.kt` — A plain `mutableMapOf` in `companion object`, read/written from `loadReactNativeView` and `cleanup`. No synchronization. If `cleanup()` is called off the UI thread, this is a data race. + +- **W-7. `registerSandbox` silently overwrites `allowedOrigins` for existing origin** + `SandboxRegistry.cpp` — A second registration with the same origin but different permissions overwrites the first delegate's permissions. Could be privilege escalation or denial. + +### JNI Correctness +- **W-3. Missing JNI exception checks after `CallVoidMethod`** + `SandboxJSIInstaller.cpp` — Multiple `env->CallVoidMethod(...)` calls without `ExceptionCheck()`. A pending Java exception propagates unpredictably. + +### API / Behavioral Correctness +- **W-5. `SandboxContextWrapper.getApplicationContext()` returns `this`** + `SandboxReactNativeDelegate.kt` — Returning the wrapper instead of the real `Application` causes `ClassCastException` when code does `context.applicationContext as Application`. + +- **W-6. `createBundleLoader` uses `createFileLoader` for HTTP URLs** + `SandboxReactNativeDelegate.kt` — `JSBundleLoader.createFileLoader` expects a local file path. May not handle HTTP URLs in all RN versions. + +- **W-8. `SandboxRegistry` is now 1:N but iOS still calls `unregister(origin)`** + `SandboxRegistry.cpp` — Registry changed from 1 to N delegates per origin, but iOS code still calls `unregister(origin)` which removes all delegates. If two views share an origin, destroying one nukes the other. + +### iOS Regression +- **W-9. Reload on bundle source change removed on iOS** + `SandboxReactNativeViewComponentView.mm` — The `RCTHost+Internal.h` import and `[host reload]` call were removed. Changing `jsBundleSource` after initial load no longer triggers a reload on iOS. + +### Versioning / Dependencies +- **W-11. Version downgrade 0.4.1 to 0.4.0** + `package.json` — If 0.4.1 was published, this is a conflict. Combined with the breaking event handler change, should be 0.5.0. + +- **W-12. Peer dependency widened to `*`** + `package.json` — Claims compatibility with every version of React/RN, but Android implementation requires RN 0.78+. Should keep `"react-native": ">=0.78.0"`. + +### Fragile Internals +- **W-13. ABI-compatible forward declarations in `SandboxBindingsInstaller.h`** + Manually duplicates the vtable layout of `ReactInstance`, `BindingsInstaller`, `JBindingsInstaller`. Any change in a future RN release produces silent UB. + +## Nits + +### Code Duplication / Cleanup +- **N-2. Unused includes** — `#include ` in `SandboxRegistry.cpp`, `#include ` in `ISandboxDelegate.h`. +- **N-3. Redundant `-std=c++17`** in `tests/CMakeLists.txt` (already set via `CMAKE_CXX_STANDARD`). + +### Consistency +- **N-4. Inconsistent library loading** — `SandboxJSIInstaller.kt` uses `System.loadLibrary`, `SandboxBindingsInstaller.kt` uses `SoLoader.loadLibrary`. Prefer `SoLoader` for RN. +- **N-5. `recursive_mutex` is unnecessary** in `SandboxRegistry.h` — no recursive locking occurs. Use `std::mutex`. + +### Visibility / Encapsulation +- **N-6. `SandboxReactNativeView` fields should have restricted visibility** — `loadScheduled`, `needsLoad`, `onAttachLoadCallback` are implementation details that should be `internal`. + +### Logging +- **N-7. `FilteredReactPackage` logs `Log.w` for every blocked module** — could be dozens per load. Use `Log.d`. + +### CI +- **N-8. CI ktlint uses `latest` without version pinning** — can break CI without code changes. + +### Scope +- **N-9. p2p-chat changes are unrelated** — Friendship protocol simplification, `Pressable` migration, comment cleanup should be a separate PR. + +### Formatting +- **N-10. Missing trailing newlines** in several `cxx/` headers. + +### Documentation +- **N-11. `react-native.config.js` sets `cmakeListsPath: null`** — correct but deserves a comment explaining why. + +## Test Coverage Gaps + +1. No test for `allowedOrigins` overwrite on second registration with same origin. +2. No test for `unregisterDelegate` with an unknown delegate (should be a no-op). +3. No test for `findAll` with a non-existent origin. +4. No test verifying `reset()` releases delegate `shared_ptr` references. diff --git a/apps/expo/android/app/src/main/java/com/callstack/expodemo/MainActivity.kt b/apps/expo/android/app/src/main/java/com/callstack/expodemo/MainActivity.kt new file mode 100644 index 0000000..6e6d01b --- /dev/null +++ b/apps/expo/android/app/src/main/java/com/callstack/expodemo/MainActivity.kt @@ -0,0 +1,61 @@ +package com.callstack.expodemo + +import android.os.Build +import android.os.Bundle + +import com.facebook.react.ReactActivity +import com.facebook.react.ReactActivityDelegate +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled +import com.facebook.react.defaults.DefaultReactActivityDelegate + +import expo.modules.ReactActivityDelegateWrapper + +class MainActivity : ReactActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + // Set the theme to AppTheme BEFORE onCreate to support + // coloring the background, status bar, and navigation bar. + // This is required for expo-splash-screen. + setTheme(R.style.AppTheme); + super.onCreate(null) + } + + /** + * Returns the name of the main component registered from JavaScript. This is used to schedule + * rendering of the component. + */ + override fun getMainComponentName(): String = "main" + + /** + * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] + * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] + */ + override fun createReactActivityDelegate(): ReactActivityDelegate { + return ReactActivityDelegateWrapper( + this, + BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, + object : DefaultReactActivityDelegate( + this, + mainComponentName, + fabricEnabled + ){}) + } + + /** + * Align the back button behavior with Android S + * where moving root activities to background instead of finishing activities. + * @see onBackPressed + */ + override fun invokeDefaultOnBackPressed() { + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) { + if (!moveTaskToBack(false)) { + // For non-root activities, use the default implementation to finish them. + super.invokeDefaultOnBackPressed() + } + return + } + + // Use the default back button implementation on Android S + // because it's doing more than [Activity.moveTaskToBack] in fact. + super.invokeDefaultOnBackPressed() + } +} diff --git a/apps/expo/android/app/src/main/java/com/callstack/expodemo/MainApplication.kt b/apps/expo/android/app/src/main/java/com/callstack/expodemo/MainApplication.kt new file mode 100644 index 0000000..d61fe8d --- /dev/null +++ b/apps/expo/android/app/src/main/java/com/callstack/expodemo/MainApplication.kt @@ -0,0 +1,57 @@ +package com.callstack.expodemo + +import android.app.Application +import android.content.res.Configuration + +import com.facebook.react.PackageList +import com.facebook.react.ReactApplication +import com.facebook.react.ReactNativeHost +import com.facebook.react.ReactPackage +import com.facebook.react.ReactHost +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load +import com.facebook.react.defaults.DefaultReactNativeHost +import com.facebook.react.soloader.OpenSourceMergedSoMapping +import com.facebook.soloader.SoLoader + +import expo.modules.ApplicationLifecycleDispatcher +import expo.modules.ReactNativeHostWrapper + +class MainApplication : Application(), ReactApplication { + + override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper( + this, + object : DefaultReactNativeHost(this) { + override fun getPackages(): List { + val packages = PackageList(this).packages + // Packages that cannot be autolinked yet can be added manually here, for example: + // packages.add(MyReactNativePackage()) + return packages + } + + override fun getJSMainModuleName(): String = ".expo/.virtual-metro-entry" + + override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG + + override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED + override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED + } + ) + + override val reactHost: ReactHost + get() = ReactNativeHostWrapper.createReactHost(applicationContext, reactNativeHost) + + override fun onCreate() { + super.onCreate() + SoLoader.init(this, OpenSourceMergedSoMapping) + if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + + override fun onConfigurationChanged(newConfig: Configuration) { + super.onConfigurationChanged(newConfig) + ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig) + } +} diff --git a/apps/expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/apps/expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..3941bea --- /dev/null +++ b/apps/expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/apps/expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/apps/expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..3941bea --- /dev/null +++ b/apps/expo/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/apps/expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/apps/expo/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..ac03dbf69f0d7bfe4cd103b20ae5228aec2ce383 GIT binary patch literal 8031 zcmb_hdpy(s_utLtGHkg`Zc8bZ%S=M9tGN^@a*HrwN^+^(O&b#NVN%ScMp8^^$St?I zqzO?{?pA~(_fM|zd;9+W`Tqa=J@(l4cyF)Ud7anmJfF{V63$zh2@CEO1c5-pr_G5r z!1t5gH$NQsY+jO-0f7__o+c7(L&3kBgmU_V9xW_(uZD=+bgvG53vq64Qku$vZfzg1 zf12)Cl2P~K`xhsMz2nu)68jWq{UQ4|KG%MJ>iQk`WjhWIfpF~2ZOx&?bLt2_S5 zZo|c2l!e5Z5$~DW8tGuj(l)5oi|hm=26+V*NQ%2{7;RC0UcM4h$T4 zG!@rU_ue(HS=nb>W7qU4vyW-T(g*+BHtv1anF>cyyaYo8FELA^|D`Ve{w-$)x?7a~ z3OvXOW|X?bsv2u@?dNY^fBHw+Vy4krmE1H*jS%8SlGJd}E4*{DJI~9@6EkE9>V(*g zYu2hp;7WN%p~|+TAj0`V`bL_{VOtAC*1&1SITy}J9%$PFSqHL*$RjGL*P&I=?_V}H z7H?AX2L}iJVA7(C+dL6?HoOz0D|-df4xOT6o0nMyedOTh@mrraw{F(G_X>MxYXOzpQ~!3erfmnX)R}f_bRll5anb0!>IwQ)?9HZRi0)pU zJrllYU70Hmsyni?2Lp=h{AYM}${oc?K34@7-04b+migU6BqN+hLHx)(#T^mTx_J`0 z1zv*&APkz>`WIVAMQ)r3I1;dzdzIvDYoVRh{xt@>s`5(lqN|dvcAew|o-Ra%=R*G6 z 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 literal 0 HcmV?d00001 diff --git a/apps/expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/apps/expo/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..e1173a94d67fef8ecc8cae08697f56bb19f864bb GIT binary patch literal 5079 zcmb7Idpwix-`@#yK5Y(#W|0xX%pt!nG7T8_xpVzz~4(*VVwd9 z1XA|#cHa#gWB>l(vOt?h-XjEoG_U!%<4Gytxrfw~;#2>8__F-osnE9YhK2o|;%w+m zqwQDOKGHvJo-N@uNbN^A>)Xq&5$|QN67eAlrxDY5xBA4rZuRYo9tf368d6+OvrxTk zacJO0Ci(&4CEJI$KmA42Q;6?%$S#{B1~biL?W+%yOisP%vt@5f<(0q#ix!xbD@V-` z9={F+-udkO_hb;$-%znVu!!IlxSII)LJOup;t4F?@3v{~5nQ+RzqcH24I!S~DV-__ zChEOB%8cH(E8+j@EWo@uWq>S1JcBJMnxRcV-}tKq%w7mqiy?YRa?iDEE`qyOqis}w z!bP%X2)R^t|6LFkAASo$w!Og3>+m}?g|^KE4oq~S(V|VUDJTxL1&eeK?A*-!db>6N z@$QPp^ZIW!z==~8=0TQ%N1%(o$FG6EJ)@PFv-+BRV9t+g6F5$={VcZL#sgk7Jv(RT z4tOm6==@8*Q{)Q#xA;1#QPcm6xR5C1@9JzV9WPD*lo{0a3Ea2Z%2 zTMK2nH5{#9pJEWp(jCn};oOxk5TTE_PMb8GhWrM#CJWuL&y<(+xPyWuNCN{gv6P-* z&HVb0TgF&KpV|WP1b7*`e4CsHX#-6kEf5Wpn(a$QlGzzke%4)G zRlXhvBEY$@<2Hp(8K@C2WNP_o2WC5U9wJv!af-^!BEWZ?Wq!gkR$E-&5MI*r}@KIfG(}!hgTJ z=vwzp`PmGKP5A`++{KI7!3*67nlU?c$e%qNXV*~g&-kM zp+$4rgBv4Aae?pNv0|XCj7@qqJWRdaZ~_HNuPAjIkWL403M})v@#dQkH=8ECp5kM! z6`^3qf(8i9WgJzf3AB+&Ct5`52oc>hQ1_EeB)b0kpxTAEFptRuBiB7tYM$Dy}r863_+e8-Q)%AzUG5tj5rzHA) zEd3bWl{Te?l`4p$@z0(Qq*r2|x==Due|(p!O4-pp3hK#rz0I7q2s#z&xnViIF)(9! zu8V)3(-zMC!D%ZVH?g;ppYnqY&6-B4(#NK#pZ2Msl(2J>*N`>+S+L|OkFZvnIZgd- zA(7*&lA0Cqme5q#)YGge@-DR-X*!w9eaC_*v)}TME}dK;K22mes#p*0-`q=}OFIZ* z13IK;e_S$~k*2OA8#+t<^liL4T?qT)^5fV-;hJV0R7WeJ;^@51kiiq34nnx1SnezL zXnpYxK?1yX-W&9pJ{Nh#N_I$Wo}W!`$o!Z7+;V~FRI33r`1>>#aA{jz=|9~ivl@|3 z+;H4giP|LqaBd~)yJ5K(p(zWz)iuLM)o;Iu_Gnzl3SVtL-(9Kye0X>*>izz$S`>Q| z4Q0ok2Bd>Q3NyhBAzN5g)xDY7ec)DG+ebrnAJ(Fd)D)rc&C`>4uk?$gZtt!9V*zENnI}Mo)f8aF#djN-Xh%9DxlT6;Bc#n7NvcJfG!Y?4co_G*!v}yPT$_yX#K@J z`YISf8zXs_fB;~H?AsUmzM<-zm0*a))t^mWAeL7He{iftrM2=u1c3nc{TNUWC4jtobq2FJ~(tKwfuJ+`gwc>#Zs*xEhrgoTrz^>7og|SDqyeT^OL#c z{A0AMK#u$RG_q*e_3J)0FuL`K9${f;7IJidxIzZci6R2F10h1cO1lj}iDuADjZJ|l zmB#MVFS=gpXwcf7)9`v|C@zLsdz+OE-2<`*P^B7%od=b9&z|9!`y8s-^rDAZ4!gK?T&{&T0UaFnx zgtlx_YCoZx(OpHlP{nkgCP_jhmOBH4*Ocl&ozv8`f`r{d1`xMHvu{x+Xe+RvevJ-I z@h49L+ozjfPV1;BP1}zf?Zz*5^59Fx62GC@zM@ESGF@-8hEuUwBB{6xx+0cNA1g8% z2IZYDUqQaTQ5pt1uG#A;(dQz`RTkqWS8Q>(uoq%+O8au3vDF($%cGoRyxqB|q{5?1 z4n2L+R}C~Tw@y!aeEw-=5iC(9Xu9SSP&J^N1+#|0Of4ZUVDTe|TC%IkSM;;Uo&yWS z+dM*?LPjor=`Hoi_2t@K`1}8`tl=9MsP8azZji+!5&IM5i~ zggC4S?s{^ybK*1uO2_(%FzV}Lq2z$u7tOBdfP zRqsDYc7^6@7igN!IZBLxS<6JVhS9p+ypL3a)?#~ni+pgy#^?dz&y3}d>ShR-{zmc{ z@K2rAmzYBDFUFE``k^8%2&*eTJ3uCv!?*{c2t__VUk$n18K^@=3%jweAl zeK6XU(>4%988s#TH&3#uooTr}V;KVs_z%?sYR@)b+_GhKfba)r#znXQppFIe>##Lg zZ|IAPRp{N(z|bki3-_`C1ivk)d9vhy=|cabUl zMLYe0ec@Bgqw>0#k8L%smg6Csy4UACtBU>OFg2yH?6B7)s z4N&|1@~s4SSX_kMjVj4g^xYN%Ys-yya9%sRNB4mEYZ%SswOBtF6!kzLZv8j&5E zJrY&&r;+j5t{JjuxKK#I9#1r0WGwfE6``hr!Rs?oj_$z9`sd~R6}x5w0XVe>RdZ%8 zV*vn3mcf6rl@y|F){Edxp}2dz2M^YkfbjMuQARxu+V^^@lcAg4XHPB^Hdy&{M&9ug zC1;5lM`tjSlah1}#vjQ>+Ot~scuYeir}_tx@DeRiH>V zp+0<&Th(Xv6^@GEN%C1qvdIz4ear1gn(IzDaexV!$&dzCuQ2DKpz|;}R8~%Ii)z=kD)zxB5#_r?@{C7r=@xYM>bTF6C8w~z zEVF4qVzT_yjWkX)m4}$W7K=pj%h$I3d6Jid*kFN> zeQ?FwHug}Ndx^3w#3F}SVU^PV0TThTv$xwc5B><+Cn8h?lpO0>1MeLcmGlBb=B!ZQ zI{}7K5MWJ;hmXYl^B@=C;70s7=y=w1Y{!Dm3>5%1rMkJXWa)zTq@Cm&UpZjKcj0AM zk?H@)Dxk~|<>t*K>m*Wgw{OhTYp2l9h5)t{+L8AucPnEXSWl(pm6Sw>GAhrk=ia}2 zYSq3b|E=0rmoQK;#21z16b;Xq&R_0Rq*Lfy=xKPI)SBatYgZC0^0ny{9wA%@_R+8h z(XJl?sr&8{BvE5h7^&qsBuWgJz?nG>3>W~Ia6M5N2bOB}l83~bBw84kx70T^w4jIi+DTP2qRt7DgKmDUF*%$PESy zsq0&1QxwF$oRJOqFENs)@#-9#8jhQ}%zPf+1zHAb0smwy*J}UT_MgWEaf`>RTWkPL z0MP99q~^`^Y*I5N>br&tUwRN;cC$1TwB(rIY`C;bvTJB|3qCQjT`(=2oScky^H=H; zmor7q5(kw03wZ%_b&F^s;}2i@{lw30r1sCi#}UOm3_e}{hHrEMd!d667a%-EUqMX8 zZQNKjaq)@1+!XaIQgYu)a3;)sAN>$NTQIBYaj+Op0jS=t*^Q4J`Jv`=R*oT8he+nT+6 zq4JE$vynGj&srdL^u(jq&d!OBT>ZbRXZUEvC@i|@){?IHW<@%O-pN~+BVJ^A^F)CN6U0oXy3Yljy=q9OzuB1W zrbE8!(W*1OQ}QD#OZUp_;bG%_q1sv{Xh0~RI@K5lh3+>xpq;UQp881o zDwG5WHVWMmQ1OZDM7JaDAAJ}b-!dNqh(zqrWA>wr>paz;SFHr~$VpN@#eLfD`d-{H z;463^4i=lD+pqt;ysYmr?sa#R-PT2yK{vsTKrRaAvcLIu8UI=}3-S2|hnOrP6fh_h zVj*_tqi%&iwvf4;Sq7`qNT7h_8l#59?P*Kjk#t>7TLZM&qXzIbwgAS3PCT0(rwC{c zoRR;^+p7Y<5$c9{aN=d(->Pd*| zZgv%&NSD?G=+#|h_653WhO9@b6;#nvBjW&n$U3^7aW_!i@r^)5yW%3V*I5$JwY!yp z=}-0uOvfPs|ElRf1{1ULObp`Pa6kp7zq$%@))DAA6N-4(5Doc%`c?nS%v#w@CvVyl ULJ*w>3_FmIhrfIM_Q;I?0&7K2ZU6uP literal 0 HcmV?d00001 diff --git a/apps/expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/apps/expo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..ff086fdc34ead5977beba4d9cf87c63b8b3a5c60 GIT binary patch literal 11145 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 Za-wxV!t(TUd!WS@wBOc+(qO|#{9nh>`J4a% literal 0 HcmV?d00001 diff --git a/apps/expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/apps/expo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..f7f1d06908af8ba1320d9aa6474f792883db430a GIT binary patch literal 18064 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 KpUXO@geCyPqIRYL literal 0 HcmV?d00001 diff --git a/apps/expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/apps/expo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000000000000000000000000000000000000..49a464ee361fe64ce9d076716724a756c521d807 GIT binary patch literal 25030 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 literal 0 HcmV?d00001 diff --git a/apps/expo/android/app/src/main/res/values-night/colors.xml b/apps/expo/android/app/src/main/res/values-night/colors.xml new file mode 100644 index 0000000..3c05de5 --- /dev/null +++ b/apps/expo/android/app/src/main/res/values-night/colors.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/expo/ios/ExpoDemo.xcodeproj/project.pbxproj b/apps/expo/ios/ExpoDemo.xcodeproj/project.pbxproj new file mode 100644 index 0000000..123a790 --- /dev/null +++ b/apps/expo/ios/ExpoDemo.xcodeproj/project.pbxproj @@ -0,0 +1,572 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 15029D433FBC71CA55B1AAFD /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37196DCD2C7AC11D48A1D3DD /* ExpoModulesProvider.swift */; }; + 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; + 4B21E2A9D7B6A2E8666F18A5 /* Pods_ExpoDemo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A7DE1F0D4DD2CF1D79191460 /* Pods_ExpoDemo.framework */; }; + A1E6A914A06C76F306ABF9B3 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 0A6657DC84DD239345670896 /* PrivacyInfo.xcprivacy */; }; + BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; + F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F11748412D0307B40044C1D9 /* AppDelegate.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0A6657DC84DD239345670896 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = ExpoDemo/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 13B07F961A680F5B00A75B9A /* ExpoDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ExpoDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ExpoDemo/Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ExpoDemo/Info.plist; sourceTree = ""; }; + 37196DCD2C7AC11D48A1D3DD /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-ExpoDemo/ExpoModulesProvider.swift"; sourceTree = ""; }; + 9B8CBD7285A315AAD19C4AB0 /* Pods-ExpoDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ExpoDemo.debug.xcconfig"; path = "Target Support Files/Pods-ExpoDemo/Pods-ExpoDemo.debug.xcconfig"; sourceTree = ""; }; + A7DE1F0D4DD2CF1D79191460 /* Pods_ExpoDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ExpoDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = ExpoDemo/SplashScreen.storyboard; sourceTree = ""; }; + BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; + ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; + EF7C071F9A95C46154493456 /* Pods-ExpoDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ExpoDemo.release.xcconfig"; path = "Target Support Files/Pods-ExpoDemo/Pods-ExpoDemo.release.xcconfig"; sourceTree = ""; }; + F11748412D0307B40044C1D9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = ExpoDemo/AppDelegate.swift; sourceTree = ""; }; + F11748442D0722820044C1D9 /* ExpoDemo-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "ExpoDemo-Bridging-Header.h"; path = "ExpoDemo/ExpoDemo-Bridging-Header.h"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4B21E2A9D7B6A2E8666F18A5 /* Pods_ExpoDemo.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 13B07FAE1A68108700A75B9A /* ExpoDemo */ = { + isa = PBXGroup; + children = ( + F11748412D0307B40044C1D9 /* AppDelegate.swift */, + F11748442D0722820044C1D9 /* ExpoDemo-Bridging-Header.h */, + BB2F792B24A3F905000567C9 /* Supporting */, + 13B07FB51A68108700A75B9A /* Images.xcassets */, + 13B07FB61A68108700A75B9A /* Info.plist */, + AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */, + 0A6657DC84DD239345670896 /* PrivacyInfo.xcprivacy */, + ); + name = ExpoDemo; + sourceTree = ""; + }; + 18AA523085709E3B734ABF8C /* ExpoDemo */ = { + isa = PBXGroup; + children = ( + 37196DCD2C7AC11D48A1D3DD /* ExpoModulesProvider.swift */, + ); + name = ExpoDemo; + sourceTree = ""; + }; + 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { + isa = PBXGroup; + children = ( + ED297162215061F000B7C4FE /* JavaScriptCore.framework */, + A7DE1F0D4DD2CF1D79191460 /* Pods_ExpoDemo.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 6EA69F7D5BB8B70C86E8D5D9 /* Pods */ = { + isa = PBXGroup; + children = ( + 9B8CBD7285A315AAD19C4AB0 /* Pods-ExpoDemo.debug.xcconfig */, + EF7C071F9A95C46154493456 /* Pods-ExpoDemo.release.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + ); + name = Libraries; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 13B07FAE1A68108700A75B9A /* ExpoDemo */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 83CBBA001A601CBA00E9B192 /* Products */, + 2D16E6871FA4F8E400B85C8A /* Frameworks */, + 6EA69F7D5BB8B70C86E8D5D9 /* Pods */, + F916C15C4676FDF885902ABB /* ExpoModulesProviders */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* ExpoDemo.app */, + ); + name = Products; + sourceTree = ""; + }; + BB2F792B24A3F905000567C9 /* Supporting */ = { + isa = PBXGroup; + children = ( + BB2F792C24A3F905000567C9 /* Expo.plist */, + ); + name = Supporting; + path = ExpoDemo/Supporting; + sourceTree = ""; + }; + F916C15C4676FDF885902ABB /* ExpoModulesProviders */ = { + isa = PBXGroup; + children = ( + 18AA523085709E3B734ABF8C /* ExpoDemo */, + ); + name = ExpoModulesProviders; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 13B07F861A680F5B00A75B9A /* ExpoDemo */ = { + isa = PBXNativeTarget; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ExpoDemo" */; + buildPhases = ( + 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */, + FBBB988E809FD658C6E42D79 /* [Expo] Configure project */, + 13B07F871A680F5B00A75B9A /* Sources */, + 13B07F8C1A680F5B00A75B9A /* Frameworks */, + 13B07F8E1A680F5B00A75B9A /* Resources */, + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, + 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */, + D043A690E691750B2E092D66 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ExpoDemo; + productName = ExpoDemo; + productReference = 13B07F961A680F5B00A75B9A /* ExpoDemo.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1130; + TargetAttributes = { + 13B07F861A680F5B00A75B9A = { + LastSwiftMigration = 1250; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "ExpoDemo" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* ExpoDemo */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB2F792D24A3F905000567C9 /* Expo.plist in Resources */, + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */, + A1E6A914A06C76F306ABF9B3 /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Bundle React Native code and images"; + outputPaths = ( + ); + 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', { 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"; + }; + 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-ExpoDemo-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + 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; + }; + 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ExpoDemo/Pods-ExpoDemo-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/ExpoConstants_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/ExpoFileSystem/ExpoFileSystem_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/RCT-Folly/RCT-Folly_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/React-Core_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact/React-cxxreact_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/boost/boost_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/glog/glog_privacy.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoConstants_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoFileSystem_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCT-Folly_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-Core_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-cxxreact_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/boost_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/glog_privacy.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ExpoDemo/Pods-ExpoDemo-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + D043A690E691750B2E092D66 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ExpoDemo/Pods-ExpoDemo-frameworks.sh", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ExpoDemo/Pods-ExpoDemo-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + FBBB988E809FD658C6E42D79 /* [Expo] Configure project */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "$(SRCROOT)/.xcode.env", + "$(SRCROOT)/.xcode.env.local", + "$(SRCROOT)/ExpoDemo/ExpoDemo.entitlements", + "$(SRCROOT)/Pods/Target Support Files/Pods-ExpoDemo/expo-configure-project.sh", + ); + name = "[Expo] Configure project"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(SRCROOT)/Pods/Target Support Files/Pods-ExpoDemo/ExpoModulesProvider.swift", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-ExpoDemo/expo-configure-project.sh\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F11748422D0307B40044C1D9 /* AppDelegate.swift in Sources */, + 15029D433FBC71CA55B1AAFD /* ExpoModulesProvider.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9B8CBD7285A315AAD19C4AB0 /* Pods-ExpoDemo.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = ExpoDemo/ExpoDemo.entitlements; + CURRENT_PROJECT_VERSION = 1; + ENABLE_BITCODE = NO; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "FB_SONARKIT_ENABLED=1", + ); + INFOPLIST_FILE = ExpoDemo/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; + PRODUCT_BUNDLE_IDENTIFIER = com.callstack.expodemo; + PRODUCT_NAME = ExpoDemo; + SWIFT_OBJC_BRIDGING_HEADER = "ExpoDemo/ExpoDemo-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EF7C071F9A95C46154493456 /* Pods-ExpoDemo.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = ExpoDemo/ExpoDemo.entitlements; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = ExpoDemo/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; + PRODUCT_BUNDLE_IDENTIFIER = com.callstack.expodemo; + PRODUCT_NAME = ExpoDemo; + SWIFT_OBJC_BRIDGING_HEADER = "ExpoDemo/ExpoDemo-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", + "${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios", + "${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios", + ); + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + 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_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../../../node_modules/react-native"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + USE_HERMES = true; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", + "${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios", + "${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios", + ); + IPHONEOS_DEPLOYMENT_TARGET = 15.1; + LD_RUNPATH_SEARCH_PATHS = ( + /usr/lib/swift, + "$(inherited)", + ); + LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../../../node_modules/react-native"; + SDKROOT = iphoneos; + USE_HERMES = true; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "ExpoDemo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "ExpoDemo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/apps/expo/ios/ExpoDemo.xcodeproj/xcshareddata/xcschemes/ExpoDemo.xcscheme b/apps/expo/ios/ExpoDemo.xcodeproj/xcshareddata/xcschemes/ExpoDemo.xcscheme new file mode 100644 index 0000000..6025757 --- /dev/null +++ b/apps/expo/ios/ExpoDemo.xcodeproj/xcshareddata/xcschemes/ExpoDemo.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/expo/ios/ExpoDemo.xcworkspace/contents.xcworkspacedata b/apps/expo/ios/ExpoDemo.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..d5f98c0 --- /dev/null +++ b/apps/expo/ios/ExpoDemo.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/apps/expo/ios/ExpoDemo/AppDelegate.swift b/apps/expo/ios/ExpoDemo/AppDelegate.swift new file mode 100644 index 0000000..a7887e1 --- /dev/null +++ b/apps/expo/ios/ExpoDemo/AppDelegate.swift @@ -0,0 +1,70 @@ +import Expo +import React +import ReactAppDependencyProvider + +@UIApplicationMain +public class AppDelegate: ExpoAppDelegate { + var window: UIWindow? + + var reactNativeDelegate: ExpoReactNativeFactoryDelegate? + var reactNativeFactory: RCTReactNativeFactory? + + public override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil + ) -> Bool { + let delegate = ReactNativeDelegate() + let factory = ExpoReactNativeFactory(delegate: delegate) + delegate.dependencyProvider = RCTAppDependencyProvider() + + reactNativeDelegate = delegate + reactNativeFactory = factory + bindReactNativeFactory(factory) + +#if os(iOS) || os(tvOS) + window = UIWindow(frame: UIScreen.main.bounds) + factory.startReactNative( + withModuleName: "main", + in: window, + launchOptions: launchOptions) +#endif + + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } + + // Linking API + public override func application( + _ app: UIApplication, + open url: URL, + options: [UIApplication.OpenURLOptionsKey: Any] = [:] + ) -> Bool { + return super.application(app, open: url, options: options) || RCTLinkingManager.application(app, open: url, options: options) + } + + // Universal Links + public override func application( + _ application: UIApplication, + continue userActivity: NSUserActivity, + restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void + ) -> Bool { + let result = RCTLinkingManager.application(application, continue: userActivity, restorationHandler: restorationHandler) + return super.application(application, continue: userActivity, restorationHandler: restorationHandler) || result + } +} + +class ReactNativeDelegate: ExpoReactNativeFactoryDelegate { + // Extension point for config-plugins + + override func sourceURL(for bridge: RCTBridge) -> URL? { + // needed to return the correct URL for expo-dev-client. + bridge.bundleURL ?? bundleURL() + } + + override func bundleURL() -> URL? { +#if DEBUG + return RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: ".expo/.virtual-metro-entry") +#else + return Bundle.main.url(forResource: "main", withExtension: "jsbundle") +#endif + } +} diff --git a/apps/expo/ios/ExpoDemo/ExpoDemo-Bridging-Header.h b/apps/expo/ios/ExpoDemo/ExpoDemo-Bridging-Header.h new file mode 100644 index 0000000..8361941 --- /dev/null +++ b/apps/expo/ios/ExpoDemo/ExpoDemo-Bridging-Header.h @@ -0,0 +1,3 @@ +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// diff --git a/apps/expo/ios/ExpoDemo/ExpoDemo.entitlements b/apps/expo/ios/ExpoDemo/ExpoDemo.entitlements new file mode 100644 index 0000000..f683276 --- /dev/null +++ b/apps/expo/ios/ExpoDemo/ExpoDemo.entitlements @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/apps/expo/ios/ExpoDemo/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png b/apps/expo/ios/ExpoDemo/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..2732229faf0f150332a6f03c098d0bae8dc69ffd GIT binary patch literal 59468 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

p$Nf`sWhN9ZlZ}5n9H171I?`d6Jxm!1n;ow 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 J?wX%|{(mrMfIa{K literal 0 HcmV?d00001 diff --git a/apps/expo/ios/ExpoDemo/Images.xcassets/AppIcon.appiconset/Contents.json b/apps/expo/ios/ExpoDemo/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..90d8d4c --- /dev/null +++ b/apps/expo/ios/ExpoDemo/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images": [ + { + "filename": "App-Icon-1024x1024@1x.png", + "idiom": "universal", + "platform": "ios", + "size": "1024x1024" + } + ], + "info": { + "version": 1, + "author": "expo" + } +} \ No newline at end of file diff --git a/apps/expo/ios/ExpoDemo/Images.xcassets/Contents.json b/apps/expo/ios/ExpoDemo/Images.xcassets/Contents.json new file mode 100644 index 0000000..ed285c2 --- /dev/null +++ b/apps/expo/ios/ExpoDemo/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "expo" + } +} diff --git a/apps/expo/ios/ExpoDemo/Images.xcassets/SplashScreenBackground.colorset/Contents.json b/apps/expo/ios/ExpoDemo/Images.xcassets/SplashScreenBackground.colorset/Contents.json new file mode 100644 index 0000000..15f02ab --- /dev/null +++ b/apps/expo/ios/ExpoDemo/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/apps/expo/ios/ExpoDemo/Images.xcassets/SplashScreenLogo.imageset/Contents.json b/apps/expo/ios/ExpoDemo/Images.xcassets/SplashScreenLogo.imageset/Contents.json new file mode 100644 index 0000000..f65c008 --- /dev/null +++ b/apps/expo/ios/ExpoDemo/Images.xcassets/SplashScreenLogo.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images": [ + { + "idiom": "universal", + "filename": "image.png", + "scale": "1x" + }, + { + "idiom": "universal", + "filename": "image@2x.png", + "scale": "2x" + }, + { + "idiom": "universal", + "filename": "image@3x.png", + "scale": "3x" + } + ], + "info": { + "version": 1, + "author": "expo" + } +} \ No newline at end of file diff --git a/apps/expo/ios/ExpoDemo/Images.xcassets/SplashScreenLogo.imageset/image.png b/apps/expo/ios/ExpoDemo/Images.xcassets/SplashScreenLogo.imageset/image.png new file mode 100644 index 0000000000000000000000000000000000000000..b9ff0fcbfed1963ef9ae249b69bdb199937b85b8 GIT binary patch literal 60870 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 + + + + CADisableMinimumFrameDurationOnPhone + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Expo Demo + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleURLSchemes + + com.callstack.expodemo + + + + CFBundleVersion + 1 + LSMinimumSystemVersion + 12.0 + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSAllowsLocalNetworking + + + RCTNewArchEnabled + + UILaunchStoryboardName + SplashScreen + UIRequiredDeviceCapabilities + + arm64 + + UIRequiresFullScreen + + UIStatusBarStyle + UIStatusBarStyleDefault + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIUserInterfaceStyle + Light + UIViewControllerBasedStatusBarAppearance + + + diff --git a/apps/expo/ios/ExpoDemo/PrivacyInfo.xcprivacy b/apps/expo/ios/ExpoDemo/PrivacyInfo.xcprivacy new file mode 100644 index 0000000..5bb83c5 --- /dev/null +++ b/apps/expo/ios/ExpoDemo/PrivacyInfo.xcprivacy @@ -0,0 +1,48 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + 0A2A.1 + 3B52.1 + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryDiskSpace + NSPrivacyAccessedAPITypeReasons + + E174.1 + 85F4.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyCollectedDataTypes + + NSPrivacyTracking + + + diff --git a/apps/expo/ios/ExpoDemo/SplashScreen.storyboard b/apps/expo/ios/ExpoDemo/SplashScreen.storyboard new file mode 100644 index 0000000..8a6fcd4 --- /dev/null +++ b/apps/expo/ios/ExpoDemo/SplashScreen.storyboard @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/expo/ios/ExpoDemo/Supporting/Expo.plist b/apps/expo/ios/ExpoDemo/Supporting/Expo.plist new file mode 100644 index 0000000..750be02 --- /dev/null +++ b/apps/expo/ios/ExpoDemo/Supporting/Expo.plist @@ -0,0 +1,12 @@ + + + + + EXUpdatesCheckOnLaunch + ALWAYS + EXUpdatesEnabled + + EXUpdatesLaunchWaitMs + 0 + + \ No newline at end of file diff --git a/apps/fs-experiment/App.tsx b/apps/fs-experiment/App.tsx index 8e6d95c..500bacf 100644 --- a/apps/fs-experiment/App.tsx +++ b/apps/fs-experiment/App.tsx @@ -1,223 +1,110 @@ import SandboxReactNativeView from '@callstack/react-native-sandbox' import React, {useState} from 'react' import { - Platform, SafeAreaView, ScrollView, StatusBar, StyleSheet, + Switch, Text, - TextInput, - TouchableOpacity, useColorScheme, View, } from 'react-native' -// File system imports -import RNFS from 'react-native-fs' -const SHARED_FILE_PATH = `${RNFS.DocumentDirectoryPath}/shared_test_file.txt` +import FileOpsUI from './FileOpsUI' + +const ALL_TURBO_MODULES = ['RNFSManager', 'FileAccess', 'PlatformLocalStorage'] + +const SANDBOXED_SUBSTITUTIONS: Record = { + RNFSManager: 'SandboxedRNFSManager', + FileAccess: 'SandboxedFileAccess', + PlatformLocalStorage: 'SandboxedAsyncStorage', +} function App(): React.JSX.Element { const isDarkMode = useColorScheme() === 'dark' - const [textContent, setTextContent] = useState('') - const [status, setStatus] = useState('Ready') + const [useSubstitution, setUseSubstitution] = useState(false) const theme = { - background: isDarkMode ? '#000000' : '#ffffff', + bg: isDarkMode ? '#000' : '#fff', surface: isDarkMode ? '#1c1c1e' : '#f2f2f7', - primary: isDarkMode ? '#007aff' : '#007aff', - secondary: isDarkMode ? '#34c759' : '#34c759', - text: isDarkMode ? '#ffffff' : '#000000', - textSecondary: isDarkMode ? '#8e8e93' : '#3c3c43', - border: isDarkMode ? '#38383a' : '#c6c6c8', - success: '#34c759', - error: '#ff3b30', - } - - const writeFile = async () => { - try { - setStatus('Writing file...') - await RNFS.writeFile(SHARED_FILE_PATH, textContent, 'utf8') - setStatus(`Successfully wrote: "${textContent}"`) - } catch (error) { - setStatus(`Write error: ${(error as Error).message}`) - } - } - - const readFile = async () => { - try { - setStatus('Reading file...') - const content = await RNFS.readFile(SHARED_FILE_PATH, 'utf8') - setTextContent(content) - setStatus(`Successfully read: "${content}"`) - } catch (error) { - setStatus(`Read error: ${(error as Error).message}`) - } - } - - const getStatusStyle = () => { - if (status.includes('error')) { - return {color: theme.error} - } - if (status.includes('Successfully')) { - return {color: theme.success} - } - return {color: theme.textSecondary} + text: isDarkMode ? '#fff' : '#000', + textSec: isDarkMode ? '#8e8e93' : '#6c6c70', + border: isDarkMode ? '#38383a' : '#d1d1d6', + blue: '#007aff', + green: '#34c759', + orange: '#ff9500', } return ( - + - - {/* Header */} - - - File System Sandbox Demo - - - Multi-instance file system access testing - - - - {/* Host Application Section */} + + {/* ===== HOST ===== */} + - - - Host Application - - - Primary - - - - - - - - Write File - - - - Read File - - - - - - Status: - - - {status} - - - - - {SHARED_FILE_PATH} + style={[styles.sectionHeader, {backgroundColor: theme.surface}]}> + + Host App + + HOST + - {/* Sandbox Sections */} + + + + {/* ===== SANDBOX ===== */} + - - - Sandbox: react-native-fs - - - Sandbox - + style={[styles.sectionHeader, {backgroundColor: theme.surface}]}> + + Sandbox + + + SANDBOXED - { - console.log('Host received message from sandbox:', message) - }} - onError={error => { - console.log('Host received error from sandbox:', error) - }} - /> - - - - Sandbox: react-native-file-access + + + + Module substitution{' '} + + {useSubstitution ? '(safe)' : '(off)'} + - - Sandbox - + - { - console.log('Host received message from sandbox:', message) - }} - onError={error => { - console.log('Host received error from sandbox:', error) - }} - /> + + console.log('Host received from sandbox:', msg)} + onError={err => + console.log('Host received error from sandbox:', err) + } + /> @@ -225,138 +112,51 @@ function App(): React.JSX.Element { } const styles = StyleSheet.create({ - container: { + root: { flex: 1, }, - header: { - paddingHorizontal: 20, - paddingVertical: 24, - ...Platform.select({ - ios: { - shadowColor: '#000', - shadowOffset: {width: 0, height: 1}, - shadowOpacity: 0.1, - shadowRadius: 4, - }, - android: { - elevation: 2, - }, - }), - }, - headerTitle: { - fontSize: 28, - fontWeight: '700', - letterSpacing: -0.5, - }, - headerSubtitle: { - fontSize: 16, - marginTop: 4, - fontWeight: '400', + section: { + borderBottomWidth: StyleSheet.hairlineWidth, }, - content: { - padding: 16, - }, - card: { - marginBottom: 20, - borderRadius: 12, - padding: 20, - borderWidth: 1, - ...Platform.select({ - ios: { - shadowColor: '#000', - shadowOffset: {width: 0, height: 2}, - shadowOpacity: 0.1, - shadowRadius: 8, - }, - android: { - elevation: 3, - }, - }), - }, - cardHeader: { + sectionHeader: { flexDirection: 'row', - justifyContent: 'space-between', alignItems: 'center', - marginBottom: 16, + justifyContent: 'space-between', + paddingHorizontal: 16, + paddingVertical: 10, }, - cardTitle: { - fontSize: 18, - fontWeight: '600', - flex: 1, + sectionTitle: { + fontSize: 17, + fontWeight: '700', }, badge: { paddingHorizontal: 8, - paddingVertical: 4, - borderRadius: 6, + paddingVertical: 3, + borderRadius: 5, }, badgeText: { - color: '#ffffff', - fontSize: 12, - fontWeight: '600', - textTransform: 'uppercase', - }, - sandboxBadge: { - backgroundColor: '#ff6b35', + color: '#fff', + fontSize: 10, + fontWeight: '700', + letterSpacing: 0.5, }, - textInput: { - borderWidth: 1, - borderRadius: 8, - padding: 16, - marginBottom: 16, - minHeight: 100, - textAlignVertical: 'top', - fontSize: 16, - lineHeight: 22, + switchBar: { + paddingHorizontal: 16, + paddingVertical: 6, }, - buttonGroup: { + switchRow: { flexDirection: 'row', - gap: 12, - marginBottom: 16, - }, - button: { - flex: 1, - paddingVertical: 14, - paddingHorizontal: 20, - borderRadius: 8, alignItems: 'center', - justifyContent: 'center', - }, - primaryButton: { - // backgroundColor set dynamically - }, - secondaryButton: { - // backgroundColor set dynamically - }, - buttonText: { - color: '#ffffff', - fontWeight: '600', - fontSize: 16, - }, - statusContainer: { - padding: 12, - borderRadius: 8, - marginBottom: 12, + justifyContent: 'space-between', }, - statusLabel: { + switchLabel: { fontSize: 14, fontWeight: '500', - marginBottom: 4, - }, - statusText: { - fontSize: 14, - fontStyle: 'italic', - lineHeight: 20, - }, - pathText: { - fontSize: 12, - fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace', - opacity: 0.8, - lineHeight: 16, + flex: 1, }, - sandbox: { - height: 320, - borderWidth: 1, - borderRadius: 8, + sandboxView: { + height: 400, + marginBottom: 8, }, }) diff --git a/apps/fs-experiment/FileOpsUI.tsx b/apps/fs-experiment/FileOpsUI.tsx new file mode 100644 index 0000000..40beac9 --- /dev/null +++ b/apps/fs-experiment/FileOpsUI.tsx @@ -0,0 +1,312 @@ +import AsyncStorage from '@react-native-async-storage/async-storage' +import React, {useId, useState} from 'react' +import { + InputAccessoryView, + Keyboard, + Platform, + StyleSheet, + Text, + TextInput, + TouchableOpacity, + useColorScheme, + View, +} from 'react-native' +import {Dirs, FileSystem} from 'react-native-file-access' +import RNFS from 'react-native-fs' + +const MODULES = [ + {key: 'rnfs', label: 'RNFS'}, + {key: 'file-access', label: 'file-access'}, + {key: 'async-storage', label: 'async-storage'}, +] as const +type Module = (typeof MODULES)[number]['key'] + +interface FileOpsUIProps { + accentColor?: string +} + +export default function FileOpsUI({accentColor}: FileOpsUIProps) { + const isDarkMode = useColorScheme() === 'dark' + const [module, setModule] = useState('rnfs') + const [target, setTarget] = useState('secret') + const [text, setText] = useState('') + const [status, setStatus] = useState('Ready') + const accessoryId = useId() + + const theme = { + bg: isDarkMode ? '#000' : '#fff', + surface: isDarkMode ? '#1c1c1e' : '#f2f2f7', + text: isDarkMode ? '#fff' : '#000', + textSec: isDarkMode ? '#8e8e93' : '#6c6c70', + border: isDarkMode ? '#38383a' : '#d1d1d6', + accent: accentColor ?? '#007aff', + green: '#34c759', + red: '#ff3b30', + segBg: isDarkMode ? '#2c2c2e' : '#e8e8ed', + segActive: isDarkMode ? '#3a3a3c' : '#fff', + } + + const isStorage = module === 'async-storage' + + const getPath = () => { + switch (module) { + case 'rnfs': + return `${RNFS.DocumentDirectoryPath}/${target}` + case 'file-access': + return `${Dirs.DocumentDir}/${target}` + default: + return target + } + } + + const onWrite = async () => { + try { + setStatus('Writing...') + switch (module) { + case 'rnfs': + await RNFS.writeFile(getPath(), text, 'utf8') + break + case 'file-access': + await FileSystem.writeFile(getPath(), text) + break + case 'async-storage': + await AsyncStorage.setItem(target, text) + break + } + setStatus(`Wrote: "${text}"`) + } catch (e) { + setStatus(`Error: ${(e as Error).message}`) + } + } + + const onRead = async () => { + try { + setStatus('Reading...') + let content: string + switch (module) { + case 'rnfs': + content = await RNFS.readFile(getPath(), 'utf8') + break + case 'file-access': + content = await FileSystem.readFile(getPath()) + break + case 'async-storage': { + const val = await AsyncStorage.getItem(target) + content = val ?? '' + if (!val) { + setStatus(`Key "${target}" not found`) + return + } + break + } + } + setText(content) + setStatus(`Read: "${content}"`) + } catch (e) { + setStatus(`Error: ${(e as Error).message}`) + } + } + + const displayPath = isStorage ? `key: "${target}"` : `Documents/${target}` + + const statusColor = () => { + if (status.includes('BREACH') || status.includes('Error')) return theme.red + if (status.includes('Wrote') || status.includes('Read:')) return theme.green + return theme.textSec + } + + return ( + + + {MODULES.map(m => { + const active = m.key === module + return ( + setModule(m.key)}> + + {m.label} + + + ) + })} + + + + + + + + + Write + + + Read + + + + + {status} + + {displayPath} + + {Platform.OS === 'ios' && ( + + + + + Done + + + + + )} + + ) +} + +const styles = StyleSheet.create({ + root: { + flex: 1, + padding: 12, + }, + segmented: { + flexDirection: 'row', + borderRadius: 8, + padding: 2, + marginBottom: 8, + }, + segItem: { + flex: 1, + paddingVertical: 6, + alignItems: 'center', + borderRadius: 6, + }, + segItemActive: { + ...Platform.select({ + ios: { + shadowColor: '#000', + shadowOffset: {width: 0, height: 1}, + shadowOpacity: 0.12, + shadowRadius: 2, + }, + android: {elevation: 1}, + }), + }, + segText: { + fontSize: 11, + fontWeight: '500', + }, + segTextActive: { + fontWeight: '600', + }, + targetInput: { + borderWidth: 1, + borderRadius: 8, + paddingHorizontal: 10, + paddingVertical: 8, + fontSize: 13, + marginBottom: 6, + }, + contentInput: { + borderWidth: 1, + borderRadius: 8, + padding: 10, + minHeight: 64, + maxHeight: 80, + textAlignVertical: 'top', + fontSize: 14, + }, + buttonRow: { + flexDirection: 'row', + gap: 10, + marginVertical: 8, + }, + btn: { + flex: 1, + paddingVertical: 10, + borderRadius: 8, + alignItems: 'center', + }, + btnText: { + color: '#fff', + fontWeight: '600', + fontSize: 14, + }, + status: { + fontSize: 12, + fontStyle: 'italic', + }, + path: { + fontSize: 10, + fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace', + marginTop: 2, + opacity: 0.7, + }, + accessory: { + flexDirection: 'row', + justifyContent: 'flex-end', + paddingHorizontal: 14, + paddingVertical: 8, + borderTopWidth: StyleSheet.hairlineWidth, + }, + accessoryBtn: { + fontSize: 16, + fontWeight: '600', + }, +}) diff --git a/apps/fs-experiment/README.md b/apps/fs-experiment/README.md index 4f842b2..064e2ef 100644 --- a/apps/fs-experiment/README.md +++ b/apps/fs-experiment/README.md @@ -1,14 +1,8 @@ -# File System Access Example +# File System & Storage Isolation ![Platform: iOS](https://img.shields.io/badge/platform-iOS-blue.svg) -This example demonstrates how to enable file system access in multi-instance environments by whitelisting the necessary native modules. The application shows how sandboxed React Native instances can be configured to access file system APIs when explicitly allowed. - -The experiment uses two popular React Native file system libraries: -- **react-native-fs** - Traditional file system operations -- **react-native-file-access** - Alternative file system API - -The host application creates multiple sandbox instances and demonstrates how to whitelist these modules to enable controlled file system access across instances while maintaining security boundaries. +This example demonstrates **TurboModule substitutions** — transparently replacing native module implementations inside a sandbox with scoped, per-origin alternatives. The app uses a split-screen layout where the host and sandbox run the same UI, but the sandbox can swap `react-native-fs`, `react-native-file-access`, and `@react-native-async-storage/async-storage` for sandboxed implementations that jail file paths and scope storage per origin. ## Screenshot diff --git a/apps/fs-experiment/SandboxFS.tsx b/apps/fs-experiment/SandboxFS.tsx deleted file mode 100644 index 5d7704f..0000000 --- a/apps/fs-experiment/SandboxFS.tsx +++ /dev/null @@ -1,297 +0,0 @@ -import React, {useState} from 'react' -import { - Platform, - SafeAreaView, - ScrollView, - StyleSheet, - Text, - TextInput, - TouchableOpacity, - useColorScheme, - View, -} from 'react-native' -// File system import -import RNFS from 'react-native-fs' - -const SHARED_FILE_PATH = `${RNFS.DocumentDirectoryPath}/shared_test_file.txt` - -function SandboxFS(): React.JSX.Element { - const isDarkMode = useColorScheme() === 'dark' - const [textContent, setTextContent] = useState('') - const [status, setStatus] = useState('Ready') - - const theme = { - background: isDarkMode ? '#000000' : '#ffffff', - surface: isDarkMode ? '#1c1c1e' : '#f2f2f7', - primary: isDarkMode ? '#ff6b35' : '#ff6b35', - secondary: isDarkMode ? '#34c759' : '#34c759', - text: isDarkMode ? '#ffffff' : '#000000', - textSecondary: isDarkMode ? '#8e8e93' : '#3c3c43', - border: isDarkMode ? '#38383a' : '#c6c6c8', - success: '#34c759', - error: '#ff3b30', - warning: '#ff9500', - } - - const writeFile = async () => { - try { - setStatus('Writing file...') - await RNFS.writeFile(SHARED_FILE_PATH, textContent, 'utf8') - setStatus(`Successfully wrote: "${textContent}"`) - } catch (error) { - setStatus(`Write error: ${(error as Error).message}`) - } - } - - const readFile = async () => { - try { - setStatus('Reading file...') - const content = await RNFS.readFile(SHARED_FILE_PATH, 'utf8') - setTextContent(content) - if (content.includes('Host')) { - setStatus(`SECURITY BREACH: Read host file: "${content}"`) - } else { - setStatus(`Successfully read: "${content}"`) - } - } catch (error) { - setStatus(`Read error: ${(error as Error).message}`) - } - } - - const getStatusStyle = () => { - if (status.includes('SECURITY BREACH')) { - return {color: theme.error, fontWeight: '600' as const} - } - if (status.includes('error')) { - return {color: theme.error} - } - if (status.includes('Successfully')) { - return {color: theme.success} - } - return {color: theme.textSecondary} - } - - return ( - - - {/* Header */} - - - - Sandbox Environment - - - RNFS - - - - React Native File System Implementation - - - - - - - File Operations - - - - - - - Write - - - - Read - - - - - - Operation Status: - - - {status} - - - - - - Target Path: - - - {SHARED_FILE_PATH} - - - - - - - ) -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - }, - header: { - paddingHorizontal: 16, - paddingVertical: 20, - ...Platform.select({ - ios: { - shadowColor: '#000', - shadowOffset: {width: 0, height: 1}, - shadowOpacity: 0.1, - shadowRadius: 4, - }, - android: { - elevation: 2, - }, - }), - }, - headerContent: { - flexDirection: 'row', - justifyContent: 'space-between', - alignItems: 'center', - marginBottom: 4, - }, - title: { - fontSize: 20, - fontWeight: '700', - flex: 1, - }, - subtitle: { - fontSize: 14, - fontWeight: '400', - }, - badge: { - paddingHorizontal: 8, - paddingVertical: 4, - borderRadius: 6, - }, - badgeText: { - color: '#ffffff', - fontSize: 11, - fontWeight: '600', - textTransform: 'uppercase', - }, - content: { - padding: 16, - }, - card: { - borderRadius: 12, - padding: 20, - borderWidth: 1, - ...Platform.select({ - ios: { - shadowColor: '#000', - shadowOffset: {width: 0, height: 2}, - shadowOpacity: 0.1, - shadowRadius: 8, - }, - android: { - elevation: 3, - }, - }), - }, - sectionTitle: { - fontSize: 16, - fontWeight: '600', - marginBottom: 16, - }, - textInput: { - borderWidth: 1, - borderRadius: 8, - padding: 14, - marginBottom: 16, - minHeight: 80, - textAlignVertical: 'top', - fontSize: 15, - lineHeight: 20, - }, - buttonGroup: { - flexDirection: 'row', - gap: 10, - marginBottom: 16, - }, - button: { - flex: 1, - paddingVertical: 12, - paddingHorizontal: 16, - borderRadius: 8, - alignItems: 'center', - justifyContent: 'center', - }, - buttonText: { - color: '#ffffff', - fontWeight: '600', - fontSize: 15, - }, - statusContainer: { - padding: 12, - borderRadius: 8, - marginBottom: 12, - }, - statusLabel: { - fontSize: 13, - fontWeight: '500', - marginBottom: 4, - }, - statusText: { - fontSize: 13, - fontStyle: 'italic', - lineHeight: 18, - }, - pathContainer: { - padding: 12, - borderRadius: 8, - }, - pathLabel: { - fontSize: 11, - fontWeight: '500', - marginBottom: 4, - textTransform: 'uppercase', - }, - pathText: { - fontSize: 10, - fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace', - opacity: 0.8, - lineHeight: 14, - }, -}) - -export default SandboxFS diff --git a/apps/fs-experiment/SandboxFileAccess.tsx b/apps/fs-experiment/SandboxFileAccess.tsx deleted file mode 100644 index 4a86a82..0000000 --- a/apps/fs-experiment/SandboxFileAccess.tsx +++ /dev/null @@ -1,297 +0,0 @@ -import React, {useState} from 'react' -import { - Platform, - SafeAreaView, - ScrollView, - StyleSheet, - Text, - TextInput, - TouchableOpacity, - useColorScheme, - View, -} from 'react-native' -// File system import -import {Dirs, FileSystem} from 'react-native-file-access' - -const SHARED_FILE_PATH = `${Dirs.DocumentDir}/shared_test_file.txt` - -function SandboxFileAccess(): React.JSX.Element { - const isDarkMode = useColorScheme() === 'dark' - const [textContent, setTextContent] = useState('') - const [status, setStatus] = useState('Ready') - - const theme = { - background: isDarkMode ? '#000000' : '#ffffff', - surface: isDarkMode ? '#1c1c1e' : '#f2f2f7', - primary: isDarkMode ? '#9b59b6' : '#9b59b6', - secondary: isDarkMode ? '#34c759' : '#34c759', - text: isDarkMode ? '#ffffff' : '#000000', - textSecondary: isDarkMode ? '#8e8e93' : '#3c3c43', - border: isDarkMode ? '#38383a' : '#c6c6c8', - success: '#34c759', - error: '#ff3b30', - warning: '#ff9500', - } - - const writeFile = async () => { - try { - setStatus('Writing file...') - await FileSystem.writeFile(SHARED_FILE_PATH, textContent) - setStatus(`Successfully wrote: "${textContent}"`) - } catch (error) { - setStatus(`Write error: ${(error as Error).message}`) - } - } - - const readFile = async () => { - try { - setStatus('Reading file...') - const content = await FileSystem.readFile(SHARED_FILE_PATH) - setTextContent(content) - if (content.includes('Host')) { - setStatus(`SECURITY BREACH: Read host file: "${content}"`) - } else { - setStatus(`Successfully read: "${content}"`) - } - } catch (error) { - setStatus(`Read error: ${(error as Error).message}`) - } - } - - const getStatusStyle = () => { - if (status.includes('SECURITY BREACH')) { - return {color: theme.error, fontWeight: '600' as const} - } - if (status.includes('error')) { - return {color: theme.error} - } - if (status.includes('Successfully')) { - return {color: theme.success} - } - return {color: theme.textSecondary} - } - - return ( - - - {/* Header */} - - - - Sandbox Environment - - - File Access - - - - React Native File Access Implementation - - - - - - - File Operations - - - - - - - Write - - - - Read - - - - - - Operation Status: - - - {status} - - - - - - Target Path: - - - {SHARED_FILE_PATH} - - - - - - - ) -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - }, - header: { - paddingHorizontal: 16, - paddingVertical: 20, - ...Platform.select({ - ios: { - shadowColor: '#000', - shadowOffset: {width: 0, height: 1}, - shadowOpacity: 0.1, - shadowRadius: 4, - }, - android: { - elevation: 2, - }, - }), - }, - headerContent: { - flexDirection: 'row', - justifyContent: 'space-between', - alignItems: 'center', - marginBottom: 4, - }, - title: { - fontSize: 20, - fontWeight: '700', - flex: 1, - }, - subtitle: { - fontSize: 14, - fontWeight: '400', - }, - badge: { - paddingHorizontal: 8, - paddingVertical: 4, - borderRadius: 6, - }, - badgeText: { - color: '#ffffff', - fontSize: 11, - fontWeight: '600', - textTransform: 'uppercase', - }, - content: { - padding: 16, - }, - card: { - borderRadius: 12, - padding: 20, - borderWidth: 1, - ...Platform.select({ - ios: { - shadowColor: '#000', - shadowOffset: {width: 0, height: 2}, - shadowOpacity: 0.1, - shadowRadius: 8, - }, - android: { - elevation: 3, - }, - }), - }, - sectionTitle: { - fontSize: 16, - fontWeight: '600', - marginBottom: 16, - }, - textInput: { - borderWidth: 1, - borderRadius: 8, - padding: 14, - marginBottom: 16, - minHeight: 80, - textAlignVertical: 'top', - fontSize: 15, - lineHeight: 20, - }, - buttonGroup: { - flexDirection: 'row', - gap: 10, - marginBottom: 16, - }, - button: { - flex: 1, - paddingVertical: 12, - paddingHorizontal: 16, - borderRadius: 8, - alignItems: 'center', - justifyContent: 'center', - }, - buttonText: { - color: '#ffffff', - fontWeight: '600', - fontSize: 15, - }, - statusContainer: { - padding: 12, - borderRadius: 8, - marginBottom: 12, - }, - statusLabel: { - fontSize: 13, - fontWeight: '500', - marginBottom: 4, - }, - statusText: { - fontSize: 13, - fontStyle: 'italic', - lineHeight: 18, - }, - pathContainer: { - padding: 12, - borderRadius: 8, - }, - pathLabel: { - fontSize: 11, - fontWeight: '500', - marginBottom: 4, - textTransform: 'uppercase', - }, - pathText: { - fontSize: 10, - fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace', - opacity: 0.8, - lineHeight: 14, - }, -}) - -export default SandboxFileAccess diff --git a/apps/fs-experiment/docs/screenshot.png b/apps/fs-experiment/docs/screenshot.png index c777c821ab0ba8ea1f1eb70edbfc38d1b90e0f90..e33eb42fe0db5f28a1158c7cd8a788811a54cca5 100644 GIT binary patch literal 224732 zcmeFZWn5L=7B>nAN=PUo(nv}xDUH%0AV{au4V!MT=RARt#FAfOAN-UOe7 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

oMl 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 literal 457808 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 z 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

PCvxi$(a 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%0D#YaNQbe`Gc*)Ph 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

jX+k-8aGY!$T3$ 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 i~*dULTM9+e52SM`dUR^^0 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%0DaDJg2%AMVo>GT{f%} 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%0A>iNoHsFiNv8e)z8byP523&6yg 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%0AhD;dzI>L*PAZm*o?J?c=ziP1MS+ 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 gf5iO1{4xvt-;6q}pn{_hcLBefH*~J&DqB7NAGw 0.7.1) - Yoga (from `../../../node_modules/react-native/ReactCommon/yoga`) @@ -2419,6 +2449,8 @@ EXTERNAL SOURCES: :path: "../../../node_modules/react-native/ReactCommon" ReactNativeFileAccess: :path: "../../../node_modules/react-native-file-access" + RNCAsyncStorage: + :path: "../../../node_modules/@react-native-async-storage/async-storage" RNFS: :path: "../../../node_modules/react-native-fs" Yoga: @@ -2491,13 +2523,14 @@ SPEC CHECKSUMS: React-runtimeexecutor: 17c70842d5e611130cb66f91e247bc4a609c3508 React-RuntimeHermes: 3c88e6e1ea7ea0899dcffc77c10d61ea46688cfd React-runtimescheduler: 024500621c7c93d65371498abb4ee26d34f5d47d - React-Sandbox: e3cf3c955559ed9f0bf014b29dce1e94600cd790 + React-Sandbox: 9c091813e335735668c62b2d3dbeb1456f93d8a5 React-timing: c3c923df2b86194e1682e01167717481232f1dc7 React-utils: 9154a037543147e1c24098f1a48fc8472602c092 ReactAppDependencyProvider: afd905e84ee36e1678016ae04d7370c75ed539be ReactCodegen: 06bf9ae2e01a2416250cf5e44e4a06b1c9ea201b ReactCommon: 17fd88849a174bf9ce45461912291aca711410fc ReactNativeFileAccess: f63160ff4e203afa99e04d9215c2ab946748b9e0 + RNCAsyncStorage: 1f04c8d56558e533277beda29187f571cf7eecb2 RNFS: 89de7d7f4c0f6bafa05343c578f61118c8282ed8 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 Yoga: daa1e4de4b971b977b23bc842aaa3e135324f1f3 diff --git a/apps/fs-experiment/ios/SandboxedFileAccess.h b/apps/fs-experiment/ios/SandboxedFileAccess.h new file mode 100644 index 0000000..e6950ab --- /dev/null +++ b/apps/fs-experiment/ios/SandboxedFileAccess.h @@ -0,0 +1,24 @@ +/** + * Sandboxed FileAccess implementation for react-native-sandbox. + * + * Wraps the react-native-file-access module interface, scoping all file + * operations to a per-origin sandbox directory. Constants (DocumentDir, + * CacheDir, etc.) are overridden to point into the sandbox root. + */ + +#import +#import + +#ifdef RCT_NEW_ARCH_ENABLED +#import + +@interface SandboxedFileAccess : RCTEventEmitter +#else +#import + +@interface SandboxedFileAccess : RCTEventEmitter +#endif + +@property (nonatomic, copy) NSString *sandboxRoot; + +@end diff --git a/apps/fs-experiment/ios/SandboxedFileAccess.mm b/apps/fs-experiment/ios/SandboxedFileAccess.mm new file mode 100644 index 0000000..c1b9773 --- /dev/null +++ b/apps/fs-experiment/ios/SandboxedFileAccess.mm @@ -0,0 +1,630 @@ +/** + * Sandboxed FileAccess — jails all file paths to a per-origin directory. + * + * Implements the NativeFileAccessSpec interface so JS code using + * react-native-file-access works transparently inside a sandbox. + */ + +#import "SandboxedFileAccess.h" + +#import +#import +#import + +#ifdef RCT_NEW_ARCH_ENABLED +#import +#endif + +@implementation SandboxedFileAccess { + NSString *_documentsDir; + NSString *_cachesDir; + NSString *_libraryDir; + BOOL _configured; +} + +RCT_EXPORT_MODULE(SandboxedFileAccess) + ++ (BOOL)requiresMainQueueSetup { return NO; } + +- (NSArray *)supportedEvents +{ + return @[@"FetchResult"]; +} + +#pragma mark - Sandbox setup + +- (void)_setupDirectoriesForOrigin:(NSString *)origin +{ + NSString *appSupport = NSSearchPathForDirectoriesInDomains( + NSApplicationSupportDirectory, NSUserDomainMask, YES).firstObject; + NSString *bundleId = [[NSBundle mainBundle] bundleIdentifier] ?: @"com.unknown"; + _sandboxRoot = [[[appSupport stringByAppendingPathComponent:bundleId] + stringByAppendingPathComponent:@"Sandboxes"] + stringByAppendingPathComponent:origin]; + + _documentsDir = [_sandboxRoot stringByAppendingPathComponent:@"Documents"]; + _cachesDir = [_sandboxRoot stringByAppendingPathComponent:@"Caches"]; + _libraryDir = [_sandboxRoot stringByAppendingPathComponent:@"Library"]; + + NSFileManager *fm = [NSFileManager defaultManager]; + for (NSString *dir in @[_documentsDir, _cachesDir, _libraryDir]) { + [fm createDirectoryAtPath:dir withIntermediateDirectories:YES attributes:nil error:nil]; + } + + _configured = YES; +} + +#pragma mark - RCTSandboxAwareModule + +- (void)configureSandboxWithOrigin:(NSString *)origin + requestedName:(NSString *)requestedName + resolvedName:(NSString *)resolvedName +{ + NSLog(@"[SandboxedFileAccess] Configuring for origin '%@'", origin); + [self _setupDirectoriesForOrigin:origin]; +} + +#pragma mark - Path validation + +- (nullable NSString *)_sandboxedPath:(NSString *)path + reject:(RCTPromiseRejectBlock)reject +{ + if (!_configured) { + reject(@"EPERM", @"SandboxedFileAccess: sandbox not configured. " + "configureSandboxWithOrigin: must be called before any file operation.", nil); + return nil; + } + + NSString *resolved; + if ([path hasPrefix:@"/"]) { + resolved = [path stringByStandardizingPath]; + } else { + resolved = [[_documentsDir stringByAppendingPathComponent:path] stringByStandardizingPath]; + } + + if ([resolved hasPrefix:_sandboxRoot]) { + return resolved; + } + + reject(@"EPERM", [NSString stringWithFormat: + @"Path '%@' is outside the sandbox. Allowed root: %@", path, _sandboxRoot], nil); + return nil; +} + +#pragma mark - Constants + +#ifdef RCT_NEW_ARCH_ENABLED +- (facebook::react::ModuleConstants)constantsToExport +{ + return [self getConstants]; +} + +- (facebook::react::ModuleConstants)getConstants +{ + if (!_configured) { + return facebook::react::typedConstants({ + .CacheDir = @"", + .DocumentDir = @"", + .LibraryDir = @"", + .MainBundleDir = @"", + }); + } + return facebook::react::typedConstants({ + .CacheDir = _cachesDir, + .DocumentDir = _documentsDir, + .LibraryDir = _libraryDir, + .MainBundleDir = _documentsDir, + }); +} + +- (std::shared_ptr)getTurboModule: + (const facebook::react::ObjCTurboModule::InitParams &)params +{ + return std::make_shared(params); +} +#else +- (NSDictionary *)constantsToExport +{ + if (!_configured) { + return @{}; + } + return @{ + @"CacheDir": _cachesDir, + @"DocumentDir": _documentsDir, + @"LibraryDir": _libraryDir, + @"MainBundleDir": _documentsDir, + }; +} +#endif + +#pragma mark - File operations + +RCT_EXPORT_METHOD(writeFile:(NSString *)path + data:(NSString *)data + encoding:(NSString *)encoding + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *safePath = [self _sandboxedPath:path reject:reject]; + if (!safePath) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSError *error; + if ([encoding isEqualToString:@"base64"]) { + NSData *decoded = [[NSData alloc] initWithBase64EncodedString:data + options:NSDataBase64DecodingIgnoreUnknownCharacters]; + if (!decoded) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to write to '%@', invalid base64.", path], nil); + return; + } + [decoded writeToFile:safePath options:NSDataWritingAtomic error:&error]; + } else { + [data writeToFile:safePath atomically:NO encoding:NSUTF8StringEncoding error:&error]; + } + if (error) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to write to '%@'. %@", path, error.localizedDescription], error); + } else { + resolve(nil); + } + }); +} + +RCT_EXPORT_METHOD(readFile:(NSString *)path + encoding:(NSString *)encoding + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *safePath = [self _sandboxedPath:path reject:reject]; + if (!safePath) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSError *error; + if ([encoding isEqualToString:@"base64"]) { + NSData *data = [NSData dataWithContentsOfFile:safePath options:0 error:&error]; + if (error || !data) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to read '%@'. %@", path, + error.localizedDescription ?: @""], error); + return; + } + resolve([data base64EncodedStringWithOptions:0]); + } else { + NSString *content = [NSString stringWithContentsOfFile:safePath encoding:NSUTF8StringEncoding error:&error]; + if (error) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to read '%@'. %@", path, error.localizedDescription], error); + return; + } + resolve(content); + } + }); +} + +RCT_EXPORT_METHOD(readFileChunk:(NSString *)path + offset:(double)offset + length:(double)length + encoding:(NSString *)encoding + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *safePath = [self _sandboxedPath:path reject:reject]; + if (!safePath) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSError *error; + NSFileHandle *fh = [NSFileHandle fileHandleForReadingFromURL: + [NSURL fileURLWithPath:safePath] error:&error]; + if (error || !fh) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to read '%@'. %@", path, + error.localizedDescription ?: @""], error); + return; + } + + [fh seekToFileOffset:(unsigned long long)offset]; + NSData *data = [fh readDataOfLength:(NSUInteger)length]; + [fh closeFile]; + + if ([encoding isEqualToString:@"base64"]) { + resolve([data base64EncodedStringWithOptions:0]); + } else { + NSString *content = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + if (content) { + resolve(content); + } else { + reject(@"ERR", @"Failed to decode content with specified encoding.", nil); + } + } + }); +} + +RCT_EXPORT_METHOD(appendFile:(NSString *)path + data:(NSString *)data + encoding:(NSString *)encoding + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *safePath = [self _sandboxedPath:path reject:reject]; + if (!safePath) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSData *encoded = [encoding isEqualToString:@"base64"] + ? [[NSData alloc] initWithBase64EncodedString:data options:NSDataBase64DecodingIgnoreUnknownCharacters] + : [data dataUsingEncoding:NSUTF8StringEncoding]; + + NSFileHandle *fh = [NSFileHandle fileHandleForWritingAtPath:safePath]; + if (!fh) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to append to '%@'.", path], nil); + return; + } + [fh seekToEndOfFile]; + [fh writeData:encoded]; + [fh closeFile]; + resolve(nil); + }); +} + +RCT_EXPORT_METHOD(exists:(NSString *)path + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *safePath = [self _sandboxedPath:path reject:reject]; + if (!safePath) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + resolve(@([[NSFileManager defaultManager] fileExistsAtPath:safePath])); + }); +} + +RCT_EXPORT_METHOD(isDir:(NSString *)path + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *safePath = [self _sandboxedPath:path reject:reject]; + if (!safePath) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + BOOL isDir = NO; + BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath:safePath isDirectory:&isDir]; + resolve(@(exists && isDir)); + }); +} + +RCT_EXPORT_METHOD(ls:(NSString *)path + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *safePath = [self _sandboxedPath:path reject:reject]; + if (!safePath) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSError *error; + NSArray *contents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:safePath error:&error]; + if (error) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to list '%@'. %@", path, error.localizedDescription], error); + return; + } + resolve(contents); + }); +} + +RCT_EXPORT_METHOD(mkdir:(NSString *)path + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *safePath = [self _sandboxedPath:path reject:reject]; + if (!safePath) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSError *error; + if (![[NSFileManager defaultManager] createDirectoryAtPath:safePath + withIntermediateDirectories:YES + attributes:nil + error:&error]) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to create '%@'. %@", path, error.localizedDescription], error); + return; + } + resolve(safePath); + }); +} + +RCT_EXPORT_METHOD(cp:(NSString *)source + target:(NSString *)target + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *src = [self _sandboxedPath:source reject:reject]; + if (!src) return; + NSString *dst = [self _sandboxedPath:target reject:reject]; + if (!dst) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSError *error; + if (![[NSFileManager defaultManager] copyItemAtPath:src toPath:dst error:&error]) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to copy '%@' to '%@'. %@", + source, target, error.localizedDescription], error); + return; + } + resolve(nil); + }); +} + +RCT_EXPORT_METHOD(mv:(NSString *)source + target:(NSString *)target + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *src = [self _sandboxedPath:source reject:reject]; + if (!src) return; + NSString *dst = [self _sandboxedPath:target reject:reject]; + if (!dst) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSError *error; + [[NSFileManager defaultManager] removeItemAtPath:dst error:nil]; + if (![[NSFileManager defaultManager] moveItemAtPath:src toPath:dst error:&error]) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to move '%@' to '%@'. %@", + source, target, error.localizedDescription], error); + return; + } + resolve(nil); + }); +} + +RCT_EXPORT_METHOD(unlink:(NSString *)path + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *safePath = [self _sandboxedPath:path reject:reject]; + if (!safePath) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSError *error; + if (![[NSFileManager defaultManager] removeItemAtPath:safePath error:&error]) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to unlink '%@'. %@", path, error.localizedDescription], error); + return; + } + resolve(nil); + }); +} + +RCT_EXPORT_METHOD(stat:(NSString *)path + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *safePath = [self _sandboxedPath:path reject:reject]; + if (!safePath) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSError *error; + NSDictionary *attrs = [[NSFileManager defaultManager] attributesOfItemAtPath:safePath error:&error]; + if (error) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to stat '%@'. %@", path, error.localizedDescription], error); + return; + } + + NSURL *pathUrl = [NSURL fileURLWithPath:safePath]; + BOOL isDir = NO; + [[NSFileManager defaultManager] fileExistsAtPath:safePath isDirectory:&isDir]; + + resolve(@{ + @"filename": pathUrl.lastPathComponent ?: @"", + @"lastModified": @(1000.0 * [(NSDate *)attrs[NSFileModificationDate] timeIntervalSince1970]), + @"path": safePath, + @"size": attrs[NSFileSize] ?: @0, + @"type": isDir ? @"directory" : @"file", + }); + }); +} + +RCT_EXPORT_METHOD(statDir:(NSString *)path + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *safePath = [self _sandboxedPath:path reject:reject]; + if (!safePath) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSError *error; + NSArray *contents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:safePath error:&error]; + if (error) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to list '%@'. %@", path, error.localizedDescription], error); + return; + } + + NSMutableArray *results = [NSMutableArray new]; + for (NSString *name in contents) { + NSString *fullPath = [safePath stringByAppendingPathComponent:name]; + NSDictionary *attrs = [[NSFileManager defaultManager] attributesOfItemAtPath:fullPath error:nil]; + if (!attrs) continue; + + BOOL isDir = NO; + [[NSFileManager defaultManager] fileExistsAtPath:fullPath isDirectory:&isDir]; + + [results addObject:@{ + @"filename": name, + @"lastModified": @(1000.0 * [(NSDate *)attrs[NSFileModificationDate] timeIntervalSince1970]), + @"path": fullPath, + @"size": attrs[NSFileSize] ?: @0, + @"type": isDir ? @"directory" : @"file", + }]; + } + resolve(results); + }); +} + +RCT_EXPORT_METHOD(hash:(NSString *)path + algorithm:(NSString *)algorithm + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *safePath = [self _sandboxedPath:path reject:reject]; + if (!safePath) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSData *data = [NSData dataWithContentsOfFile:safePath]; + if (!data) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to read '%@'.", path], nil); + return; + } + + unsigned char buffer[CC_SHA512_DIGEST_LENGTH]; + int digestLength; + + if ([algorithm isEqualToString:@"MD5"]) { + digestLength = CC_MD5_DIGEST_LENGTH; + CC_MD5(data.bytes, (CC_LONG)data.length, buffer); + } else if ([algorithm isEqualToString:@"SHA-1"]) { + digestLength = CC_SHA1_DIGEST_LENGTH; + CC_SHA1(data.bytes, (CC_LONG)data.length, buffer); + } else if ([algorithm isEqualToString:@"SHA-256"]) { + digestLength = CC_SHA256_DIGEST_LENGTH; + CC_SHA256(data.bytes, (CC_LONG)data.length, buffer); + } else if ([algorithm isEqualToString:@"SHA-512"]) { + digestLength = CC_SHA512_DIGEST_LENGTH; + CC_SHA512(data.bytes, (CC_LONG)data.length, buffer); + } else { + reject(@"ERR", [NSString stringWithFormat:@"Unknown algorithm '%@'.", algorithm], nil); + return; + } + + NSMutableString *output = [NSMutableString stringWithCapacity:digestLength * 2]; + for (int i = 0; i < digestLength; i++) { + [output appendFormat:@"%02x", buffer[i]]; + } + resolve(output); + }); +} + +RCT_EXPORT_METHOD(concatFiles:(NSString *)source + target:(NSString *)target + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *src = [self _sandboxedPath:source reject:reject]; + if (!src) return; + NSString *dst = [self _sandboxedPath:target reject:reject]; + if (!dst) return; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSInputStream *input = [NSInputStream inputStreamWithFileAtPath:src]; + NSOutputStream *output = [NSOutputStream outputStreamToFileAtPath:dst append:YES]; + if (!input || !output) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to concat '%@' to '%@'.", source, target], nil); + return; + } + + [input open]; + [output open]; + NSInteger totalBytes = 0; + uint8_t buf[8192]; + NSInteger len; + while ((len = [input read:buf maxLength:sizeof(buf)]) > 0) { + [output write:buf maxLength:len]; + totalBytes += len; + } + [output close]; + [input close]; + resolve(@(totalBytes)); + }); +} + +RCT_EXPORT_METHOD(df:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSError *error; + NSDictionary *attrs = [[NSFileManager defaultManager] + attributesOfFileSystemForPath:self->_sandboxRoot error:&error]; + if (error) { + reject(@"ERR", [NSString stringWithFormat:@"Failed to stat filesystem. %@", error.localizedDescription], error); + return; + } + resolve(@{ + @"internal_free": attrs[NSFileSystemFreeSize], + @"internal_total": attrs[NSFileSystemSize], + }); + }); +} + +#pragma mark - Blocked operations + +#ifdef RCT_NEW_ARCH_ENABLED +RCT_EXPORT_METHOD(fetch:(double)requestId + resource:(NSString *)resource + init:(JS::NativeFileAccess::SpecFetchInit &)init) +{ + RCTLogWarn(@"[SandboxedFileAccess] fetch is not available in sandboxed mode"); +} +#else +RCT_EXPORT_METHOD(fetch:(double)requestId + resource:(NSString *)resource + init:(NSDictionary *)init) +{ + RCTLogWarn(@"[SandboxedFileAccess] fetch is not available in sandboxed mode"); +} +#endif + +RCT_EXPORT_METHOD(cancelFetch:(double)requestId + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + resolve(nil); +} + +RCT_EXPORT_METHOD(cpAsset:(NSString *)asset + target:(NSString *)target + type:(NSString *)type + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + reject(@"EPERM", @"cpAsset is not available in sandboxed mode", nil); +} + +RCT_EXPORT_METHOD(cpExternal:(NSString *)source + targetName:(NSString *)targetName + dir:(NSString *)dir + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + reject(@"EPERM", @"cpExternal is not available in sandboxed mode", nil); +} + +RCT_EXPORT_METHOD(getAppGroupDir:(NSString *)groupName + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + reject(@"EPERM", @"getAppGroupDir is not available in sandboxed mode", nil); +} + +RCT_EXPORT_METHOD(unzip:(NSString *)source + target:(NSString *)target + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + NSString *src = [self _sandboxedPath:source reject:reject]; + if (!src) return; + NSString *dst = [self _sandboxedPath:target reject:reject]; + if (!dst) return; + + reject(@"EPERM", @"unzip is not available in sandboxed mode", nil); +} + +RCT_EXPORT_METHOD(hardlink:(NSString *)source + target:(NSString *)target + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + reject(@"EPERM", @"hardlink is not available in sandboxed mode", nil); +} + +RCT_EXPORT_METHOD(symlink:(NSString *)source + target:(NSString *)target + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject) +{ + reject(@"EPERM", @"symlink is not available in sandboxed mode", nil); +} + +// Required by RCTEventEmitter +RCT_EXPORT_METHOD(addListener:(NSString *)eventName) {} +RCT_EXPORT_METHOD(removeListeners:(double)count) {} + +@end diff --git a/apps/fs-experiment/ios/SandboxedRNCAsyncStorage.h b/apps/fs-experiment/ios/SandboxedRNCAsyncStorage.h new file mode 100644 index 0000000..30ea798 --- /dev/null +++ b/apps/fs-experiment/ios/SandboxedRNCAsyncStorage.h @@ -0,0 +1,56 @@ +/** + * Sandboxed AsyncStorage implementation for react-native-sandbox. + * + * Based on RNCAsyncStorage from @react-native-async-storage/async-storage, + * adapted to scope storage per sandbox origin. This module is intended to be + * used as a TurboModule substitution target via turboModuleSubstitutions. + * + * When the sandbox requests "RNCAsyncStorage", this module can be resolved + * instead, providing isolated key-value storage per sandbox origin. + */ + +#import + +#import +#import + +#ifdef RCT_NEW_ARCH_ENABLED +#import +#endif + +#import "RNCAsyncStorageDelegate.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SandboxedRNCAsyncStorage : NSObject < +#ifdef RCT_NEW_ARCH_ENABLED + NativeAsyncStorageModuleSpec +#else + RCTBridgeModule +#endif + , + RCTInvalidating, + RCTSandboxAwareModule> + +@property (nonatomic, weak, nullable) id delegate; +@property (nonatomic, assign) BOOL clearOnInvalidate; +@property (nonatomic, readonly, getter=isValid) BOOL valid; + +/** + * The storage directory for this instance. When created via default init, + * this defaults to a "SandboxedAsyncStorage/default" directory. + * The sandbox delegate's configureSandbox will update the storageDirectory + * based on the sandbox origin BEFORE any storage operations are performed. + */ +@property (nonatomic, copy) NSString *storageDirectory; + +- (instancetype)initWithStorageDirectory:(NSString *)storageDirectory; +- (void)clearAllData; +- (void)multiGet:(NSArray *)keys callback:(RCTResponseSenderBlock)callback; +- (void)multiSet:(NSArray *> *)kvPairs callback:(RCTResponseSenderBlock)callback; +- (void)getAllKeys:(RCTResponseSenderBlock)callback; + +@end + +NS_ASSUME_NONNULL_END diff --git a/apps/fs-experiment/ios/SandboxedRNCAsyncStorage.mm b/apps/fs-experiment/ios/SandboxedRNCAsyncStorage.mm new file mode 100644 index 0000000..91b4653 --- /dev/null +++ b/apps/fs-experiment/ios/SandboxedRNCAsyncStorage.mm @@ -0,0 +1,621 @@ +/** + * Sandboxed AsyncStorage implementation for react-native-sandbox. + * + * Based on the original RNCAsyncStorage from @react-native-async-storage/async-storage. + * Scopes all storage to a per-origin directory to prevent data leaks between sandboxes. + */ + +#import "SandboxedRNCAsyncStorage.h" + +#import +#import +#import + +static NSString *const RCTManifestFileName = @"manifest.json"; +static const NSUInteger RCTInlineValueThreshold = 1024; + +#pragma mark - Static helper functions + +static NSDictionary *RCTErrorForKey(NSString *key) +{ + if (![key isKindOfClass:[NSString class]]) { + return RCTMakeAndLogError(@"Invalid key - must be a string. Key: ", key, @{@"key": key}); + } else if (key.length < 1) { + return RCTMakeAndLogError( + @"Invalid key - must be at least one character. Key: ", key, @{@"key": key}); + } else { + return nil; + } +} + +static void RCTAppendError(NSDictionary *error, NSMutableArray **errors) +{ + if (error && errors) { + if (!*errors) { + *errors = [NSMutableArray new]; + } + [*errors addObject:error]; + } +} + +static NSArray *RCTMakeErrors(NSArray> *results) +{ + NSMutableArray *errors; + for (id object in results) { + if ([object isKindOfClass:[NSError class]]) { + NSError *error = (NSError *)object; + NSDictionary *keyError = RCTMakeError(error.localizedDescription, error, nil); + RCTAppendError(keyError, &errors); + } + } + return errors; +} + +static NSString *RCTReadFile(NSString *filePath, NSString *key, NSDictionary **errorOut) +{ + if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) { + NSError *error; + NSStringEncoding encoding; + NSString *entryString = [NSString stringWithContentsOfFile:filePath + usedEncoding:&encoding + error:&error]; + NSDictionary *extraData = @{@"key": RCTNullIfNil(key)}; + + if (error) { + if (errorOut) { + *errorOut = RCTMakeError(@"Failed to read storage file.", error, extraData); + } + return nil; + } + + if (encoding != NSUTF8StringEncoding) { + if (errorOut) { + *errorOut = + RCTMakeError(@"Incorrect encoding of storage file: ", @(encoding), extraData); + } + return nil; + } + return entryString; + } + + return nil; +} + +static BOOL RCTMergeRecursive(NSMutableDictionary *destination, NSDictionary *source) +{ + BOOL modified = NO; + for (NSString *key in source) { + id sourceValue = source[key]; + id destinationValue = destination[key]; + if ([sourceValue isKindOfClass:[NSDictionary class]]) { + if ([destinationValue isKindOfClass:[NSDictionary class]]) { + if ([destinationValue classForCoder] != [NSMutableDictionary class]) { + destinationValue = [destinationValue mutableCopy]; + } + if (RCTMergeRecursive(destinationValue, sourceValue)) { + destination[key] = destinationValue; + modified = YES; + } + } else { + destination[key] = [sourceValue copy]; + modified = YES; + } + } else if (![source isEqual:destinationValue]) { + destination[key] = [sourceValue copy]; + modified = YES; + } + } + return modified; +} + +#define RCTGetStorageDirectory() _storageDirectory +#define RCTGetManifestFilePath() _manifestFilePath +#define RCTGetMethodQueue() self.methodQueue +#define RCTGetCache() self.cache + +static NSDictionary *RCTDeleteStorageDirectory(NSString *storageDirectory) +{ + NSError *error; + [[NSFileManager defaultManager] removeItemAtPath:storageDirectory error:&error]; + return error ? RCTMakeError(@"Failed to delete storage directory.", error, nil) : nil; +} + +#define RCTDeleteStorageDirectory() RCTDeleteStorageDirectory(_storageDirectory) + +#pragma mark - SandboxedRNCAsyncStorage + +@interface SandboxedRNCAsyncStorage () + +@property (nonatomic, copy) NSString *manifestFilePath; + +@end + +@implementation SandboxedRNCAsyncStorage { + BOOL _haveSetup; + BOOL _configured; + NSMutableDictionary *_manifest; + NSCache *_cache; + dispatch_once_t _cacheOnceToken; +} + +RCT_EXPORT_MODULE(SandboxedAsyncStorage) + +- (instancetype)initWithStorageDirectory:(NSString *)storageDirectory +{ + if ((self = [super init])) { + _storageDirectory = storageDirectory; + _manifestFilePath = [_storageDirectory stringByAppendingPathComponent:RCTManifestFileName]; + _configured = YES; + } + return self; +} + +@synthesize methodQueue = _methodQueue; + +- (void)setStorageDirectory:(NSString *)storageDirectory +{ + _storageDirectory = [storageDirectory copy]; + _manifestFilePath = [_storageDirectory stringByAppendingPathComponent:RCTManifestFileName]; + _haveSetup = NO; + [_manifest removeAllObjects]; + [_cache removeAllObjects]; +} + +- (NSCache *)cache +{ + dispatch_once(&_cacheOnceToken, ^{ + _cache = [NSCache new]; + _cache.totalCostLimit = 2 * 1024 * 1024; // 2MB + + [[NSNotificationCenter defaultCenter] + addObserverForName:UIApplicationDidReceiveMemoryWarningNotification + object:nil + queue:nil + usingBlock:^(__unused NSNotification *note) { + [self->_cache removeAllObjects]; + }]; + }); + return _cache; +} + ++ (BOOL)requiresMainQueueSetup +{ + return NO; +} + +- (instancetype)init +{ + if ((self = [super init])) { + _configured = NO; + } + return self; +} + +- (void)clearAllData +{ + dispatch_async(RCTGetMethodQueue(), ^{ + [self->_manifest removeAllObjects]; + [RCTGetCache() removeAllObjects]; + RCTDeleteStorageDirectory(); + }); +} + +- (void)invalidate +{ + if (_clearOnInvalidate) { + [RCTGetCache() removeAllObjects]; + RCTDeleteStorageDirectory(); + } + _clearOnInvalidate = NO; + [_manifest removeAllObjects]; + _haveSetup = NO; +} + +- (BOOL)isValid +{ + return _haveSetup; +} + +- (void)dealloc +{ + [self invalidate]; +} + +- (NSString *)_filePathForKey:(NSString *)key +{ + NSString *safeFileName = RCTMD5Hash(key); + return [RCTGetStorageDirectory() stringByAppendingPathComponent:safeFileName]; +} + +- (NSDictionary *)_ensureSetup +{ + RCTAssertThread(RCTGetMethodQueue(), @"Must be executed on storage thread"); + + if (!_configured) { + return RCTMakeError(@"SandboxedAsyncStorage: sandbox not configured. " + "configureSandboxWithOrigin: must be called before any storage operation.", nil, nil); + } + + NSError *error = nil; + [[NSFileManager defaultManager] createDirectoryAtPath:RCTGetStorageDirectory() + withIntermediateDirectories:YES + attributes:nil + error:&error]; + if (error) { + return RCTMakeError(@"Failed to create storage directory.", error, nil); + } + + if (!_haveSetup) { + NSDictionary *errorOut = nil; + NSString *serialized = RCTReadFile(RCTGetManifestFilePath(), RCTManifestFileName, &errorOut); + if (!serialized) { + if (errorOut) { + RCTLogError(@"Could not open the existing manifest: %@", errorOut); + return errorOut; + } else { + _manifest = [NSMutableDictionary new]; + } + } else { + _manifest = RCTJSONParseMutable(serialized, &error); + if (!_manifest) { + RCTLogError(@"Failed to parse manifest - creating a new one: %@", error); + _manifest = [NSMutableDictionary new]; + } + } + _haveSetup = YES; + } + + return nil; +} + +- (NSDictionary *)_writeManifest:(NSMutableArray *__autoreleasing *)errors +{ + NSError *error; + NSString *serialized = RCTJSONStringify(_manifest, &error); + [serialized writeToFile:RCTGetManifestFilePath() + atomically:YES + encoding:NSUTF8StringEncoding + error:&error]; + NSDictionary *errorOut; + if (error) { + errorOut = RCTMakeError(@"Failed to write manifest file.", error, nil); + RCTAppendError(errorOut, errors); + } + return errorOut; +} + +- (NSString *)_getValueForKey:(NSString *)key errorOut:(NSDictionary *__autoreleasing *)errorOut +{ + NSString *value = _manifest[key]; + if (value == (id)kCFNull) { + value = [RCTGetCache() objectForKey:key]; + if (!value) { + NSString *filePath = [self _filePathForKey:key]; + value = RCTReadFile(filePath, key, errorOut); + if (value) { + [RCTGetCache() setObject:value forKey:key cost:value.length]; + } else { + [_manifest removeObjectForKey:key]; + } + } + } + return value; +} + +- (NSDictionary *)_writeEntry:(NSArray *)entry changedManifest:(BOOL *)changedManifest +{ + if (entry.count != 2) { + return RCTMakeAndLogError( + @"Entries must be arrays of the form [key: string, value: string], got: ", entry, nil); + } + NSString *key = entry[0]; + NSDictionary *errorOut = RCTErrorForKey(key); + if (errorOut) { + return errorOut; + } + NSString *value = entry[1]; + NSString *filePath = [self _filePathForKey:key]; + NSError *error; + if (value.length <= RCTInlineValueThreshold) { + if (_manifest[key] == (id)kCFNull) { + [[NSFileManager defaultManager] removeItemAtPath:filePath error:nil]; + [RCTGetCache() removeObjectForKey:key]; + } + *changedManifest = YES; + _manifest[key] = value; + return nil; + } + [value writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error]; + [RCTGetCache() setObject:value forKey:key cost:value.length]; + if (error) { + errorOut = RCTMakeError(@"Failed to write value.", error, @{@"key": key}); + } else if (_manifest[key] != (id)kCFNull) { + *changedManifest = YES; + _manifest[key] = (id)kCFNull; + } + return errorOut; +} + +- (void)_multiGet:(NSArray *)keys + callback:(RCTResponseSenderBlock)callback + getter:(NSString * (^)(NSUInteger i, NSString *key, NSDictionary **errorOut))getValue +{ + NSMutableArray *errors; + NSMutableArray *> *result = [NSMutableArray arrayWithCapacity:keys.count]; + for (NSUInteger i = 0; i < keys.count; ++i) { + NSString *key = keys[i]; + id keyError; + id value = getValue(i, key, &keyError); + [result addObject:@[key, RCTNullIfNil(value)]]; + RCTAppendError(keyError, &errors); + } + callback(@[RCTNullIfNil(errors), result]); +} + +- (BOOL)_passthroughDelegate +{ + return + [self.delegate respondsToSelector:@selector(isPassthrough)] && self.delegate.isPassthrough; +} + +#pragma mark - Exported JS Functions + +// clang-format off +RCT_EXPORT_METHOD(multiGet:(NSArray *)keys + callback:(RCTResponseSenderBlock)callback) +// clang-format on +{ + if (self.delegate != nil) { + [self.delegate + valuesForKeys:keys + completion:^(NSArray> *valuesOrErrors) { + [self _multiGet:keys + callback:callback + getter:^NSString *(NSUInteger i, NSString *key, NSDictionary **errorOut) { + id valueOrError = valuesOrErrors[i]; + if ([valueOrError isKindOfClass:[NSError class]]) { + NSError *error = (NSError *)valueOrError; + NSDictionary *extraData = @{@"key": RCTNullIfNil(key)}; + *errorOut = + RCTMakeError(error.localizedDescription, error, extraData); + return nil; + } else { + return [valueOrError isKindOfClass:[NSString class]] + ? (NSString *)valueOrError + : nil; + } + }]; + }]; + + if (![self _passthroughDelegate]) { + return; + } + } + + NSDictionary *ensureSetupErrorOut = [self _ensureSetup]; + if (ensureSetupErrorOut) { + callback(@[@[ensureSetupErrorOut], (id)kCFNull]); + return; + } + [self _multiGet:keys + callback:callback + getter:^(__unused NSUInteger i, NSString *key, NSDictionary **errorOut) { + return [self _getValueForKey:key errorOut:errorOut]; + }]; +} + +// clang-format off +RCT_EXPORT_METHOD(multiSet:(NSArray *> *)kvPairs + callback:(RCTResponseSenderBlock)callback) +// clang-format on +{ + if (self.delegate != nil) { + NSMutableArray *keys = [NSMutableArray arrayWithCapacity:kvPairs.count]; + NSMutableArray *values = [NSMutableArray arrayWithCapacity:kvPairs.count]; + for (NSArray *entry in kvPairs) { + [keys addObject:entry[0]]; + [values addObject:entry[1]]; + } + [self.delegate setValues:values + forKeys:keys + completion:^(NSArray> *results) { + NSArray *errors = RCTMakeErrors(results); + callback(@[RCTNullIfNil(errors)]); + }]; + + if (![self _passthroughDelegate]) { + return; + } + } + + NSDictionary *errorOut = [self _ensureSetup]; + if (errorOut) { + callback(@[@[errorOut]]); + return; + } + BOOL changedManifest = NO; + NSMutableArray *errors; + for (NSArray *entry in kvPairs) { + NSDictionary *keyError = [self _writeEntry:entry changedManifest:&changedManifest]; + RCTAppendError(keyError, &errors); + } + if (changedManifest) { + [self _writeManifest:&errors]; + } + callback(@[RCTNullIfNil(errors)]); +} + +// clang-format off +RCT_EXPORT_METHOD(multiMerge:(NSArray *> *)kvPairs + callback:(RCTResponseSenderBlock)callback) +// clang-format on +{ + if (self.delegate != nil) { + NSMutableArray *keys = [NSMutableArray arrayWithCapacity:kvPairs.count]; + NSMutableArray *values = [NSMutableArray arrayWithCapacity:kvPairs.count]; + for (NSArray *entry in kvPairs) { + [keys addObject:entry[0]]; + [values addObject:entry[1]]; + } + [self.delegate mergeValues:values + forKeys:keys + completion:^(NSArray> *results) { + NSArray *errors = RCTMakeErrors(results); + callback(@[RCTNullIfNil(errors)]); + }]; + + if (![self _passthroughDelegate]) { + return; + } + } + + NSDictionary *errorOut = [self _ensureSetup]; + if (errorOut) { + callback(@[@[errorOut]]); + return; + } + BOOL changedManifest = NO; + NSMutableArray *errors; + for (__strong NSArray *entry in kvPairs) { + NSDictionary *keyError; + NSString *value = [self _getValueForKey:entry[0] errorOut:&keyError]; + if (!keyError) { + if (value) { + NSError *jsonError; + NSMutableDictionary *mergedVal = RCTJSONParseMutable(value, &jsonError); + NSDictionary *mergingValue = RCTJSONParse(entry[1], &jsonError); + if (!mergingValue.count || RCTMergeRecursive(mergedVal, mergingValue)) { + entry = @[entry[0], RCTNullIfNil(RCTJSONStringify(mergedVal, NULL))]; + } + if (jsonError) { + keyError = RCTJSErrorFromNSError(jsonError); + } + } + if (!keyError) { + keyError = [self _writeEntry:entry changedManifest:&changedManifest]; + } + } + RCTAppendError(keyError, &errors); + } + if (changedManifest) { + [self _writeManifest:&errors]; + } + callback(@[RCTNullIfNil(errors)]); +} + +// clang-format off +RCT_EXPORT_METHOD(multiRemove:(NSArray *)keys + callback:(RCTResponseSenderBlock)callback) +// clang-format on +{ + if (self.delegate != nil) { + [self.delegate removeValuesForKeys:keys + completion:^(NSArray> *results) { + NSArray *errors = RCTMakeErrors(results); + callback(@[RCTNullIfNil(errors)]); + }]; + + if (![self _passthroughDelegate]) { + return; + } + } + + NSDictionary *errorOut = [self _ensureSetup]; + if (errorOut) { + callback(@[@[errorOut]]); + return; + } + NSMutableArray *errors; + BOOL changedManifest = NO; + for (NSString *key in keys) { + NSDictionary *keyError = RCTErrorForKey(key); + if (!keyError) { + if (_manifest[key] == (id)kCFNull) { + NSString *filePath = [self _filePathForKey:key]; + [[NSFileManager defaultManager] removeItemAtPath:filePath error:nil]; + [RCTGetCache() removeObjectForKey:key]; + } + if (_manifest[key]) { + changedManifest = YES; + [_manifest removeObjectForKey:key]; + } + } + RCTAppendError(keyError, &errors); + } + if (changedManifest) { + [self _writeManifest:&errors]; + } + callback(@[RCTNullIfNil(errors)]); +} + +// clang-format off +RCT_EXPORT_METHOD(clear:(RCTResponseSenderBlock)callback) +// clang-format on +{ + if (self.delegate != nil) { + [self.delegate removeAllValues:^(NSError *error) { + NSDictionary *result = nil; + if (error != nil) { + result = RCTMakeError(error.localizedDescription, error, nil); + } + callback(@[RCTNullIfNil(result)]); + }]; + return; + } + + [_manifest removeAllObjects]; + [RCTGetCache() removeAllObjects]; + NSDictionary *error = RCTDeleteStorageDirectory(); + callback(@[RCTNullIfNil(error)]); +} + +// clang-format off +RCT_EXPORT_METHOD(getAllKeys:(RCTResponseSenderBlock)callback) +// clang-format on +{ + if (self.delegate != nil) { + [self.delegate allKeys:^(NSArray> *keys) { + callback(@[(id)kCFNull, keys]); + }]; + + if (![self _passthroughDelegate]) { + return; + } + } + + NSDictionary *errorOut = [self _ensureSetup]; + if (errorOut) { + callback(@[errorOut, (id)kCFNull]); + } else { + callback(@[(id)kCFNull, _manifest.allKeys]); + } +} + +#pragma mark - RCTSandboxAwareModule + +- (void)configureSandboxWithOrigin:(NSString *)origin + requestedName:(NSString *)requestedName + resolvedName:(NSString *)resolvedName +{ + NSString *appSupport = NSSearchPathForDirectoriesInDomains( + NSApplicationSupportDirectory, NSUserDomainMask, YES).firstObject; + NSString *bundleId = [[NSBundle mainBundle] bundleIdentifier] ?: @"com.unknown"; + NSString *scopedDir = [[[[appSupport stringByAppendingPathComponent:bundleId] + stringByAppendingPathComponent:@"Sandboxes"] + stringByAppendingPathComponent:origin] + stringByAppendingPathComponent:@"AsyncStorage"]; + + NSLog(@"[SandboxedRNCAsyncStorage] Configuring for origin '%@', storage dir: %@", origin, scopedDir); + self.storageDirectory = scopedDir; + _configured = YES; +} + +#if RCT_NEW_ARCH_ENABLED +- (std::shared_ptr)getTurboModule: + (const facebook::react::ObjCTurboModule::InitParams &)params +{ + return std::make_shared(params); +} +#endif + +@end diff --git a/apps/fs-experiment/ios/SandboxedRNFSManager.h b/apps/fs-experiment/ios/SandboxedRNFSManager.h new file mode 100644 index 0000000..8046a97 --- /dev/null +++ b/apps/fs-experiment/ios/SandboxedRNFSManager.h @@ -0,0 +1,25 @@ +/** + * Sandboxed RNFSManager implementation for react-native-sandbox. + * + * Wraps the original RNFSManager from react-native-fs, scoping all file + * operations to a per-origin sandbox directory. Exposed directory constants + * (DocumentDirectoryPath, CachesDirectoryPath, etc.) are overridden to point + * into the sandbox root. + */ + +#import + +#import +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SandboxedRNFSManager : RCTEventEmitter + +@property (nonatomic, copy) NSString *sandboxRoot; + +@end + +NS_ASSUME_NONNULL_END diff --git a/apps/fs-experiment/ios/SandboxedRNFSManager.mm b/apps/fs-experiment/ios/SandboxedRNFSManager.mm new file mode 100644 index 0000000..a493146 --- /dev/null +++ b/apps/fs-experiment/ios/SandboxedRNFSManager.mm @@ -0,0 +1,551 @@ +/** + * Sandboxed RNFSManager — jails all file paths to a per-origin directory. + * + * Every path argument is validated against the sandbox root. Directory + * constants exposed to JS (RNFSDocumentDirectoryPath, etc.) are overridden. + */ + +#import "SandboxedRNFSManager.h" + +#import +#import +#import +#import + +@implementation SandboxedRNFSManager { + dispatch_queue_t _methodQueue; + NSString *_documentsDir; + NSString *_cachesDir; + NSString *_tempDir; + NSString *_libraryDir; + BOOL _configured; +} + +RCT_EXPORT_MODULE(SandboxedRNFSManager) + ++ (BOOL)requiresMainQueueSetup { return NO; } + +- (dispatch_queue_t)methodQueue +{ + if (!_methodQueue) { + _methodQueue = dispatch_queue_create("sandbox.rnfs", DISPATCH_QUEUE_SERIAL); + } + return _methodQueue; +} + +- (NSArray *)supportedEvents +{ + return @[@"DownloadBegin", @"DownloadProgress", @"DownloadResumable", + @"UploadBegin", @"UploadProgress"]; +} + +#pragma mark - Sandbox setup + +- (void)_setupDirectoriesForOrigin:(NSString *)origin +{ + NSString *appSupport = NSSearchPathForDirectoriesInDomains( + NSApplicationSupportDirectory, NSUserDomainMask, YES).firstObject; + NSString *bundleId = [[NSBundle mainBundle] bundleIdentifier] ?: @"com.unknown"; + _sandboxRoot = [[[appSupport stringByAppendingPathComponent:bundleId] + stringByAppendingPathComponent:@"Sandboxes"] + stringByAppendingPathComponent:origin]; + + _documentsDir = [_sandboxRoot stringByAppendingPathComponent:@"Documents"]; + _cachesDir = [_sandboxRoot stringByAppendingPathComponent:@"Caches"]; + _tempDir = [_sandboxRoot stringByAppendingPathComponent:@"tmp"]; + _libraryDir = [_sandboxRoot stringByAppendingPathComponent:@"Library"]; + + NSFileManager *fm = [NSFileManager defaultManager]; + for (NSString *dir in @[_documentsDir, _cachesDir, _tempDir, _libraryDir]) { + [fm createDirectoryAtPath:dir withIntermediateDirectories:YES attributes:nil error:nil]; + } + + _configured = YES; +} + +#pragma mark - RCTSandboxAwareModule + +- (void)configureSandboxWithOrigin:(NSString *)origin + requestedName:(NSString *)requestedName + resolvedName:(NSString *)resolvedName +{ + NSLog(@"[SandboxedRNFSManager] Configuring for origin '%@'", origin); + [self _setupDirectoriesForOrigin:origin]; +} + +#pragma mark - Path validation + +- (nullable NSString *)_sandboxedPath:(NSString *)path + reject:(RCTPromiseRejectBlock)reject +{ + if (!_configured) { + reject(@"EPERM", @"SandboxedRNFSManager: sandbox not configured. " + "configureSandboxWithOrigin: must be called before any file operation.", nil); + return nil; + } + + NSString *resolved; + if ([path hasPrefix:@"/"]) { + resolved = [path stringByStandardizingPath]; + } else { + resolved = [[_documentsDir stringByAppendingPathComponent:path] stringByStandardizingPath]; + } + + if ([resolved hasPrefix:_sandboxRoot]) { + return resolved; + } + + reject(@"EPERM", [NSString stringWithFormat: + @"Path '%@' is outside the sandbox. Allowed root: %@", path, _sandboxRoot], nil); + return nil; +} + +- (nullable NSString *)_sandboxedSrcPath:(NSString *)path + reject:(RCTPromiseRejectBlock)reject +{ + return [self _sandboxedPath:path reject:reject]; +} + +#pragma mark - Constants + +- (NSDictionary *)constantsToExport +{ + if (!_configured) { + return @{}; + } + return @{ + @"RNFSMainBundlePath": _documentsDir, // no access to real main bundle + @"RNFSCachesDirectoryPath": _cachesDir, + @"RNFSDocumentDirectoryPath": _documentsDir, + @"RNFSExternalDirectoryPath": [NSNull null], + @"RNFSExternalStorageDirectoryPath": [NSNull null], + @"RNFSExternalCachesDirectoryPath": [NSNull null], + @"RNFSDownloadDirectoryPath": [NSNull null], + @"RNFSTemporaryDirectoryPath": _tempDir, + @"RNFSLibraryDirectoryPath": _libraryDir, + @"RNFSPicturesDirectoryPath": [NSNull null], + @"RNFSFileTypeRegular": NSFileTypeRegular, + @"RNFSFileTypeDirectory": NSFileTypeDirectory, + @"RNFSFileProtectionComplete": NSFileProtectionComplete, + @"RNFSFileProtectionCompleteUnlessOpen": NSFileProtectionCompleteUnlessOpen, + @"RNFSFileProtectionCompleteUntilFirstUserAuthentication": NSFileProtectionCompleteUntilFirstUserAuthentication, + @"RNFSFileProtectionNone": NSFileProtectionNone, + }; +} + +#pragma mark - File operations + +RCT_EXPORT_METHOD(writeFile:(NSString *)filepath + contents:(NSString *)base64Content + options:(NSDictionary *)options + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *path = [self _sandboxedPath:filepath reject:reject]; + if (!path) return; + + NSData *data = [[NSData alloc] initWithBase64EncodedString:base64Content + options:NSDataBase64DecodingIgnoreUnknownCharacters]; + BOOL success = [[NSFileManager defaultManager] createFileAtPath:path contents:data attributes:nil]; + if (!success) { + reject(@"ENOENT", [NSString stringWithFormat:@"ENOENT: could not write '%@'", path], nil); + return; + } + resolve(nil); +} + +RCT_EXPORT_METHOD(readFile:(NSString *)filepath + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *path = [self _sandboxedPath:filepath reject:reject]; + if (!path) return; + + if (![[NSFileManager defaultManager] fileExistsAtPath:path]) { + reject(@"ENOENT", [NSString stringWithFormat:@"ENOENT: no such file '%@'", path], nil); + return; + } + NSData *content = [[NSFileManager defaultManager] contentsAtPath:path]; + resolve([content base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]); +} + +RCT_EXPORT_METHOD(readDir:(NSString *)dirPath + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *path = [self _sandboxedPath:dirPath reject:reject]; + if (!path) return; + + NSFileManager *fm = [NSFileManager defaultManager]; + NSError *error; + NSArray *contents = [fm contentsOfDirectoryAtPath:path error:&error]; + if (error) { + reject(@"ENOENT", error.localizedDescription, error); + return; + } + + NSMutableArray *result = [NSMutableArray new]; + for (NSString *name in contents) { + NSString *fullPath = [path stringByAppendingPathComponent:name]; + NSDictionary *attrs = [fm attributesOfItemAtPath:fullPath error:nil]; + if (attrs) { + [result addObject:@{ + @"ctime": @([(NSDate *)attrs[NSFileCreationDate] timeIntervalSince1970]), + @"mtime": @([(NSDate *)attrs[NSFileModificationDate] timeIntervalSince1970]), + @"name": name, + @"path": fullPath, + @"size": attrs[NSFileSize], + @"type": attrs[NSFileType], + }]; + } + } + resolve(result); +} + +RCT_EXPORT_METHOD(exists:(NSString *)filepath + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *path = [self _sandboxedPath:filepath reject:reject]; + if (!path) return; + resolve(@([[NSFileManager defaultManager] fileExistsAtPath:path])); +} + +RCT_EXPORT_METHOD(stat:(NSString *)filepath + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *path = [self _sandboxedPath:filepath reject:reject]; + if (!path) return; + + NSError *error; + NSDictionary *attrs = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:&error]; + if (error) { + reject(@"ENOENT", error.localizedDescription, error); + return; + } + + resolve(@{ + @"ctime": @([(NSDate *)attrs[NSFileCreationDate] timeIntervalSince1970]), + @"mtime": @([(NSDate *)attrs[NSFileModificationDate] timeIntervalSince1970]), + @"size": attrs[NSFileSize], + @"type": attrs[NSFileType], + @"mode": @([[(NSNumber *)attrs[NSFilePosixPermissions] stringValue] integerValue]), + }); +} + +RCT_EXPORT_METHOD(unlink:(NSString *)filepath + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *path = [self _sandboxedPath:filepath reject:reject]; + if (!path) return; + + NSError *error; + if (![[NSFileManager defaultManager] removeItemAtPath:path error:&error]) { + reject(@"ENOENT", error.localizedDescription, error); + return; + } + resolve(nil); +} + +RCT_EXPORT_METHOD(mkdir:(NSString *)filepath + options:(NSDictionary *)options + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *path = [self _sandboxedPath:filepath reject:reject]; + if (!path) return; + + NSError *error; + if (![[NSFileManager defaultManager] createDirectoryAtPath:path + withIntermediateDirectories:YES + attributes:nil + error:&error]) { + reject(@"ENOENT", error.localizedDescription, error); + return; + } + resolve(nil); +} + +RCT_EXPORT_METHOD(moveFile:(NSString *)filepath + destPath:(NSString *)destPath + options:(NSDictionary *)options + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *src = [self _sandboxedPath:filepath reject:reject]; + if (!src) return; + NSString *dst = [self _sandboxedPath:destPath reject:reject]; + if (!dst) return; + + NSError *error; + if (![[NSFileManager defaultManager] moveItemAtPath:src toPath:dst error:&error]) { + reject(@"ENOENT", error.localizedDescription, error); + return; + } + resolve(nil); +} + +RCT_EXPORT_METHOD(copyFile:(NSString *)filepath + destPath:(NSString *)destPath + options:(NSDictionary *)options + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *src = [self _sandboxedPath:filepath reject:reject]; + if (!src) return; + NSString *dst = [self _sandboxedPath:destPath reject:reject]; + if (!dst) return; + + NSError *error; + if (![[NSFileManager defaultManager] copyItemAtPath:src toPath:dst error:&error]) { + reject(@"ENOENT", error.localizedDescription, error); + return; + } + resolve(nil); +} + +RCT_EXPORT_METHOD(appendFile:(NSString *)filepath + contents:(NSString *)base64Content + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *path = [self _sandboxedPath:filepath reject:reject]; + if (!path) return; + + NSData *data = [[NSData alloc] initWithBase64EncodedString:base64Content + options:NSDataBase64DecodingIgnoreUnknownCharacters]; + NSFileManager *fm = [NSFileManager defaultManager]; + if (![fm fileExistsAtPath:path]) { + if (![fm createFileAtPath:path contents:data attributes:nil]) { + reject(@"ENOENT", [NSString stringWithFormat:@"ENOENT: could not create '%@'", path], nil); + return; + } + resolve(nil); + return; + } + + @try { + NSFileHandle *fh = [NSFileHandle fileHandleForUpdatingAtPath:path]; + [fh seekToEndOfFile]; + [fh writeData:data]; + resolve(nil); + } @catch (NSException *e) { + reject(@"ENOENT", e.reason, nil); + } +} + +RCT_EXPORT_METHOD(write:(NSString *)filepath + contents:(NSString *)base64Content + position:(NSInteger)position + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *path = [self _sandboxedPath:filepath reject:reject]; + if (!path) return; + + NSData *data = [[NSData alloc] initWithBase64EncodedString:base64Content + options:NSDataBase64DecodingIgnoreUnknownCharacters]; + NSFileManager *fm = [NSFileManager defaultManager]; + if (![fm fileExistsAtPath:path]) { + if (![fm createFileAtPath:path contents:data attributes:nil]) { + reject(@"ENOENT", [NSString stringWithFormat:@"ENOENT: could not create '%@'", path], nil); + return; + } + resolve(nil); + return; + } + + @try { + NSFileHandle *fh = [NSFileHandle fileHandleForUpdatingAtPath:path]; + if (position >= 0) { + [fh seekToFileOffset:position]; + } else { + [fh seekToEndOfFile]; + } + [fh writeData:data]; + resolve(nil); + } @catch (NSException *e) { + reject(@"ENOENT", e.reason, nil); + } +} + +RCT_EXPORT_METHOD(read:(NSString *)filepath + length:(NSInteger)length + position:(NSInteger)position + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *path = [self _sandboxedPath:filepath reject:reject]; + if (!path) return; + + if (![[NSFileManager defaultManager] fileExistsAtPath:path]) { + reject(@"ENOENT", [NSString stringWithFormat:@"ENOENT: no such file '%@'", path], nil); + return; + } + + NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:path]; + if (!fh) { + reject(@"ENOENT", @"Could not open file for reading", nil); + return; + } + [fh seekToFileOffset:(unsigned long long)position]; + NSData *content = (length > 0) ? [fh readDataOfLength:length] : [fh readDataToEndOfFile]; + resolve([content base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]); +} + +RCT_EXPORT_METHOD(hash:(NSString *)filepath + algorithm:(NSString *)algorithm + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *path = [self _sandboxedPath:filepath reject:reject]; + if (!path) return; + + if (![[NSFileManager defaultManager] fileExistsAtPath:path]) { + reject(@"ENOENT", [NSString stringWithFormat:@"ENOENT: no such file '%@'", path], nil); + return; + } + + NSData *content = [[NSFileManager defaultManager] contentsAtPath:path]; + + NSDictionary *digestLengths = @{ + @"md5": @(CC_MD5_DIGEST_LENGTH), + @"sha1": @(CC_SHA1_DIGEST_LENGTH), + @"sha224": @(CC_SHA224_DIGEST_LENGTH), + @"sha256": @(CC_SHA256_DIGEST_LENGTH), + @"sha384": @(CC_SHA384_DIGEST_LENGTH), + @"sha512": @(CC_SHA512_DIGEST_LENGTH), + }; + + int digestLength = [digestLengths[algorithm] intValue]; + if (!digestLength) { + reject(@"Error", [NSString stringWithFormat:@"Invalid hash algorithm '%@'", algorithm], nil); + return; + } + + unsigned char buffer[CC_SHA512_DIGEST_LENGTH]; + if ([algorithm isEqualToString:@"md5"]) CC_MD5(content.bytes, (CC_LONG)content.length, buffer); + else if ([algorithm isEqualToString:@"sha1"]) CC_SHA1(content.bytes, (CC_LONG)content.length, buffer); + else if ([algorithm isEqualToString:@"sha224"]) CC_SHA224(content.bytes, (CC_LONG)content.length, buffer); + else if ([algorithm isEqualToString:@"sha256"]) CC_SHA256(content.bytes, (CC_LONG)content.length, buffer); + else if ([algorithm isEqualToString:@"sha384"]) CC_SHA384(content.bytes, (CC_LONG)content.length, buffer); + else if ([algorithm isEqualToString:@"sha512"]) CC_SHA512(content.bytes, (CC_LONG)content.length, buffer); + + NSMutableString *output = [NSMutableString stringWithCapacity:digestLength * 2]; + for (int i = 0; i < digestLength; i++) { + [output appendFormat:@"%02x", buffer[i]]; + } + resolve(output); +} + +RCT_EXPORT_METHOD(getFSInfo:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSError *error; + NSDictionary *attrs = [[NSFileManager defaultManager] + attributesOfFileSystemForPath:_sandboxRoot error:&error]; + if (error) { + reject(@"Error", error.localizedDescription, error); + return; + } + resolve(@{ + @"totalSpace": attrs[NSFileSystemSize], + @"freeSpace": attrs[NSFileSystemFreeSize], + }); +} + +RCT_EXPORT_METHOD(touch:(NSString *)filepath + mtime:(NSDate *)mtime + ctime:(NSDate *)ctime + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + NSString *path = [self _sandboxedPath:filepath reject:reject]; + if (!path) return; + + NSMutableDictionary *attr = [NSMutableDictionary new]; + if (mtime) attr[NSFileModificationDate] = mtime; + if (ctime) attr[NSFileCreationDate] = ctime; + + NSError *error; + if (![[NSFileManager defaultManager] setAttributes:attr ofItemAtPath:path error:&error]) { + reject(@"ENOENT", error.localizedDescription, error); + return; + } + resolve(nil); +} + +#pragma mark - Stubbed network operations (blocked in sandbox) + +RCT_EXPORT_METHOD(downloadFile:(NSDictionary *)options + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + reject(@"EPERM", @"downloadFile is not available in sandboxed mode", nil); +} + +RCT_EXPORT_METHOD(stopDownload:(nonnull NSNumber *)jobId) +{ + RCTLogWarn(@"[SandboxedRNFSManager] stopDownload blocked in sandbox"); +} + +RCT_EXPORT_METHOD(resumeDownload:(nonnull NSNumber *)jobId) +{ + RCTLogWarn(@"[SandboxedRNFSManager] resumeDownload blocked in sandbox"); +} + +RCT_EXPORT_METHOD(isResumable:(nonnull NSNumber *)jobId + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + resolve(@NO); +} + +RCT_EXPORT_METHOD(uploadFiles:(NSDictionary *)options + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + reject(@"EPERM", @"uploadFiles is not available in sandboxed mode", nil); +} + +RCT_EXPORT_METHOD(stopUpload:(nonnull NSNumber *)jobId) +{ + RCTLogWarn(@"[SandboxedRNFSManager] stopUpload blocked in sandbox"); +} + +RCT_EXPORT_METHOD(completeHandlerIOS:(nonnull NSNumber *)jobId + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + resolve(nil); +} + +RCT_EXPORT_METHOD(pathForBundle:(NSString *)bundleNamed + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + reject(@"EPERM", @"pathForBundle is not available in sandboxed mode", nil); +} + +RCT_EXPORT_METHOD(pathForGroup:(NSString *)groupId + resolver:(RCTPromiseResolveBlock)resolve + rejecter:(RCTPromiseRejectBlock)reject) +{ + reject(@"EPERM", @"pathForGroup is not available in sandboxed mode", nil); +} + +// addListener / removeListeners required by RCTEventEmitter +RCT_EXPORT_METHOD(addListener:(NSString *)eventName) {} +RCT_EXPORT_METHOD(removeListeners:(double)count) {} + +#pragma mark - RCTTurboModule + +- (std::shared_ptr)getTurboModule: + (const facebook::react::ObjCTurboModule::InitParams &)params +{ + return std::make_shared(params); +} + +@end diff --git a/apps/fs-experiment/package.json b/apps/fs-experiment/package.json index 384693a..fab9a94 100644 --- a/apps/fs-experiment/package.json +++ b/apps/fs-experiment/package.json @@ -6,9 +6,7 @@ "android": "react-native run-android", "ios": "react-native run-ios", "start": "react-native start", - "bundle:sandbox": "bun run bundle:sandbox-fs && bun run bundle:sandbox-file-access", - "bundle:sandbox-fs": "npx react-native bundle --platform ios --dev false --entry-file sandbox-fs.js --bundle-output ios/sandbox-fs.jsbundle --assets-dest ios/", - "bundle:sandbox-file-access": "npx react-native bundle --platform ios --dev false --entry-file sandbox-file-access.js --bundle-output ios/sandbox-file-access.jsbundle --assets-dest ios/", + "bundle:sandbox": "npx react-native bundle --platform ios --dev false --entry-file sandbox.js --bundle-output ios/sandbox.jsbundle --assets-dest ios/", "typecheck": "tsc --noEmit", "jest": "echo 'No tests'" }, @@ -16,6 +14,7 @@ "react": "19.1.0", "react-native": "0.80.1", "@callstack/react-native-sandbox": "workspace:*", + "@react-native-async-storage/async-storage": "^2.1.2", "react-native-fs": "^2.20.0", "react-native-file-access": "^3.1.1" }, diff --git a/apps/fs-experiment/sandbox-file-access.js b/apps/fs-experiment/sandbox-file-access.js deleted file mode 100644 index 1fca809..0000000 --- a/apps/fs-experiment/sandbox-file-access.js +++ /dev/null @@ -1,5 +0,0 @@ -import {AppRegistry} from 'react-native' - -import SandboxFileAccess from './SandboxFileAccess' - -AppRegistry.registerComponent('AppFileAccess', () => SandboxFileAccess) diff --git a/apps/fs-experiment/sandbox-fs.js b/apps/fs-experiment/sandbox-fs.js deleted file mode 100644 index 12eec66..0000000 --- a/apps/fs-experiment/sandbox-fs.js +++ /dev/null @@ -1,5 +0,0 @@ -import {AppRegistry} from 'react-native' - -import SandboxFS from './SandboxFS' - -AppRegistry.registerComponent('AppFS', () => SandboxFS) diff --git a/apps/fs-experiment/sandbox.js b/apps/fs-experiment/sandbox.js new file mode 100644 index 0000000..5d6bb87 --- /dev/null +++ b/apps/fs-experiment/sandbox.js @@ -0,0 +1,5 @@ +import {AppRegistry} from 'react-native' + +import FileOpsUI from './FileOpsUI' + +AppRegistry.registerComponent('SandboxApp', () => FileOpsUI) diff --git a/bun.lock b/bun.lock index 202ced1..11220cf 100644 --- a/bun.lock +++ b/bun.lock @@ -67,6 +67,7 @@ "version": "1.0.0", "dependencies": { "@callstack/react-native-sandbox": "workspace:*", + "@react-native-async-storage/async-storage": "^2.1.2", "react": "19.1.0", "react-native": "0.80.1", "react-native-file-access": "^3.1.1", @@ -680,6 +681,8 @@ "@pnpm/npm-conf": ["@pnpm/npm-conf@2.3.1", "", { "dependencies": { "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", "config-chain": "^1.1.11" } }, "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw=="], + "@react-native-async-storage/async-storage": ["@react-native-async-storage/async-storage@2.2.0", "", { "dependencies": { "merge-options": "^3.0.4" }, "peerDependencies": { "react-native": "^0.0.0-0 || >=0.65 <1.0" } }, "sha512-gvRvjR5JAaUZF8tv2Kcq/Gbt3JHwbKFYfmb445rhOj6NUMx3qPLixmDx5pZAyb9at1bYvJ4/eTUipU5aki45xw=="], + "@react-native-community/cli": ["@react-native-community/cli@18.0.0", "", { "dependencies": { "@react-native-community/cli-clean": "18.0.0", "@react-native-community/cli-config": "18.0.0", "@react-native-community/cli-doctor": "18.0.0", "@react-native-community/cli-server-api": "18.0.0", "@react-native-community/cli-tools": "18.0.0", "@react-native-community/cli-types": "18.0.0", "chalk": "^4.1.2", "commander": "^9.4.1", "deepmerge": "^4.3.0", "execa": "^5.0.0", "find-up": "^5.0.0", "fs-extra": "^8.1.0", "graceful-fs": "^4.1.3", "prompts": "^2.4.2", "semver": "^7.5.2" }, "bin": { "rnc-cli": "build/bin.js" } }, "sha512-DyKptlG78XPFo7tDod+we5a3R+U9qjyhaVFbOPvH4pFNu5Dehewtol/srl44K6Cszq0aEMlAJZ3juk0W4WnOJA=="], "@react-native-community/cli-clean": ["@react-native-community/cli-clean@18.0.0", "", { "dependencies": { "@react-native-community/cli-tools": "18.0.0", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-glob": "^3.3.2" } }, "sha512-+k64EnJaMI5U8iNDF9AftHBJW+pO/isAhncEXuKRc6IjRtIh6yoaUIIf5+C98fgjfux7CNRZAMQIkPbZodv2Gw=="], @@ -1710,7 +1713,7 @@ "is-path-inside": ["is-path-inside@3.0.3", "", {}, "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="], - "is-plain-obj": ["is-plain-obj@1.1.0", "", {}, "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg=="], + "is-plain-obj": ["is-plain-obj@2.1.0", "", {}, "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="], "is-plain-object": ["is-plain-object@5.0.0", "", {}, "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="], @@ -1962,6 +1965,8 @@ "meow": ["meow@12.1.1", "", {}, "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw=="], + "merge-options": ["merge-options@3.0.4", "", { "dependencies": { "is-plain-obj": "^2.1.0" } }, "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ=="], + "merge-stream": ["merge-stream@2.0.0", "", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="], "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], @@ -3094,6 +3099,8 @@ "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "minimist-options/is-plain-obj": ["is-plain-obj@1.1.0", "", {}, "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg=="], + "normalize-package-data/semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], "npm-run-path/path-key": ["path-key@4.0.0", "", {}, "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ=="], diff --git a/packages/react-native-sandbox/README.md b/packages/react-native-sandbox/README.md index 62d0e79..6098bbb 100644 --- a/packages/react-native-sandbox/README.md +++ b/packages/react-native-sandbox/README.md @@ -56,6 +56,7 @@ import SandboxReactNativeView from '@callstack/react-native-sandbox'; | `initialProperties` | `object` | :white_large_square: | `{}` | Initial props for the sandboxed app | | `launchOptions` | `object` | :white_large_square: | `{}` | Launch configuration options | | `allowedTurboModules` | `string[]` | :white_large_square: | [check here](https://github.com/callstackincubator/react-native-sandbox/blob/main/packages/react-native-sandbox/src/index.tsx#L18) | Additional TurboModules to allow | +| `turboModuleSubstitutions` | `Record` | :white_large_square: | `undefined` | Map of module name substitutions (requested → resolved). Substituted modules are implicitly allowed. | | `onMessage` | `function` | :white_large_square: | `undefined` | Callback for messages from sandbox | | `onError` | `function` | :white_large_square: | `undefined` | Callback for sandbox errors | | `style` | `ViewStyle` | :white_large_square: | `undefined` | Container styling | @@ -102,6 +103,27 @@ Use `allowedTurboModules` to control which native modules the sandbox can access > Note: This filtering works with both legacy native modules and new TurboModules, ensuring compatibility across React Native versions. +#### TurboModule Substitutions + +Use `turboModuleSubstitutions` to transparently replace a module with a sandbox-aware implementation. When sandbox JS requests a module by name, the substitution map redirects it to a different native module: + +```tsx + +``` + +Substituted modules are **implicitly allowed** and don't need to be listed in `allowedTurboModules`. If the resolved module conforms to `RCTSandboxAwareModule` (ObjC) or `ISandboxAwareModule` (C++), it receives sandbox context (origin, requested name, resolved name) after instantiation — enabling per-origin data scoping. + +Changing `turboModuleSubstitutions` at runtime triggers a full re-instantiation of the sandbox's React Native runtime, ensuring TurboModules are re-resolved with the new configuration. + +See the [`apps/fs-experiment`](https://github.com/callstackincubator/react-native-sandbox/tree/main/apps/fs-experiment) example for a working demonstration. + #### Message Origin Control Use `allowedOrigins` to specify which sandbox origins are allowed to send messages to this sandbox: diff --git a/packages/react-native-sandbox/cxx/ISandboxAwareModule.h b/packages/react-native-sandbox/cxx/ISandboxAwareModule.h new file mode 100644 index 0000000..6a4b422 --- /dev/null +++ b/packages/react-native-sandbox/cxx/ISandboxAwareModule.h @@ -0,0 +1,64 @@ +#pragma once + +#ifdef __cplusplus + +#include + +namespace rnsandbox { + +/** + * Context information provided to sandbox-aware TurboModules. + * Contains the sandbox identity and module mapping details needed + * for scoping module behavior per sandbox instance. + */ +struct SandboxContext { + /** The origin identifier of the sandbox instance */ + std::string origin; + + /** The module name that sandbox JS code requested (e.g. "RNCAsyncStorage") */ + std::string requestedModuleName; + + /** The actual module name that was resolved via substitution (e.g. + * "SandboxedAsyncStorage") */ + std::string resolvedModuleName; +}; + +/** + * Interface for TurboModules that need sandbox-specific configuration. + * + * When a TurboModule is provided as a substitution in the sandbox, + * the sandbox delegate will check if the module implements this interface + * and call configureSandbox() with the relevant context. + * + * This enables modules to scope their behavior per sandbox origin, + * e.g. sandboxing file system access to a per-origin directory or + * isolating AsyncStorage keys by origin. + * + * Usage: + * @code + * class SandboxedAsyncStorage : public TurboModule, public ISandboxAwareModule + * { public: void configureSandbox(const SandboxContext& context) override { + * // Scope storage to this sandbox's origin + * storagePrefix_ = context.origin; + * } + * }; + * @endcode + */ +class ISandboxAwareModule { + public: + virtual ~ISandboxAwareModule() = default; + + /** + * Called by the sandbox delegate after module instantiation to provide + * sandbox-specific context. Implementations should use this to scope + * their behavior (storage, file paths, etc.) to the given sandbox. + * + * @param context The sandbox context containing origin and module mapping + * info + */ + virtual void configureSandbox(const SandboxContext& context) = 0; +}; + +} // namespace rnsandbox + +#endif // __cplusplus diff --git a/packages/react-native-sandbox/cxx/StubTurboModuleCxx.cpp b/packages/react-native-sandbox/cxx/StubTurboModuleCxx.cpp index 3b67042..e3bdc85 100644 --- a/packages/react-native-sandbox/cxx/StubTurboModuleCxx.cpp +++ b/packages/react-native-sandbox/cxx/StubTurboModuleCxx.cpp @@ -8,14 +8,18 @@ StubTurboModuleCxx::StubTurboModuleCxx( std::shared_ptr jsInvoker) : facebook::react::TurboModule("StubTurboModuleCxx", jsInvoker), moduleName_(moduleName) { +#if DEBUG logBlockedAccess("constructor"); +#endif } facebook::jsi::Value StubTurboModuleCxx::get( facebook::jsi::Runtime& runtime, const facebook::jsi::PropNameID& propName) { std::string methodName = propName.utf8(runtime); +#if DEBUG logBlockedAccess(methodName); +#endif return createStubFunction(runtime, methodName); } @@ -35,15 +39,28 @@ facebook::jsi::Function StubTurboModuleCxx::createStubFunction( facebook::jsi::PropNameID::forAscii(runtime, methodName.c_str()), 0, [moduleName = moduleName_, methodName]( - facebook::jsi::Runtime&, + facebook::jsi::Runtime& rt, const facebook::jsi::Value&, const facebook::jsi::Value*, size_t) -> facebook::jsi::Value { +#if DEBUG SANDBOX_LOG_WARN( "[StubTurboModuleCxx] Method call '%s' blocked on module '%s'.", methodName.c_str(), moduleName.c_str()); + + auto errorMsg = std::string("Module '") + moduleName + + "' is blocked. Method '" + methodName + + "' is not available in this sandbox."; + auto Promise = rt.global().getPropertyAsFunction(rt, "Promise"); + auto reject = Promise.getPropertyAsFunction(rt, "reject"); + auto Error = rt.global().getPropertyAsFunction(rt, "Error"); + auto error = Error.callAsConstructor( + rt, facebook::jsi::String::createFromUtf8(rt, errorMsg)); + return reject.callWithThis(rt, Promise, error); +#else return facebook::jsi::Value::undefined(); +#endif }); } diff --git a/packages/react-native-sandbox/ios/RCTSandboxAwareModule.h b/packages/react-native-sandbox/ios/RCTSandboxAwareModule.h new file mode 100644 index 0000000..411fc73 --- /dev/null +++ b/packages/react-native-sandbox/ios/RCTSandboxAwareModule.h @@ -0,0 +1,41 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + * ObjC protocol equivalent of ISandboxAwareModule for ObjC TurboModules. + * + * When a TurboModule substitution resolves an ObjC module, the sandbox delegate + * checks if the module conforms to this protocol and calls configureSandbox: + * with context about the sandbox instance. + * + * @code + * @interface SandboxedAsyncStorage : NSObject + * @end + * + * @implementation SandboxedAsyncStorage + * - (void)configureSandboxWithOrigin:(NSString *)origin + * requestedName:(NSString *)requestedName + * resolvedName:(NSString *)resolvedName { + * self.storageDirectory = [basePath stringByAppendingPathComponent:origin]; + * } + * @end + * @endcode + */ +@protocol RCTSandboxAwareModule + +/** + * Called by the sandbox delegate after module instantiation to provide + * sandbox-specific context. + * + * @param origin The sandbox origin identifier + * @param requestedName The module name sandbox JS code requested + * @param resolvedName The actual module name that was resolved + */ +- (void)configureSandboxWithOrigin:(NSString *)origin + requestedName:(NSString *)requestedName + resolvedName:(NSString *)resolvedName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/packages/react-native-sandbox/ios/SandboxReactNativeDelegate.h b/packages/react-native-sandbox/ios/SandboxReactNativeDelegate.h index 1ec162d..d23f780 100644 --- a/packages/react-native-sandbox/ios/SandboxReactNativeDelegate.h +++ b/packages/react-native-sandbox/ios/SandboxReactNativeDelegate.h @@ -11,6 +11,7 @@ #import #import +#include #include #include @@ -44,6 +45,18 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, readwrite) std::set allowedOrigins; +/** + * Sets the TurboModule substitution map for this sandbox instance. + * Keys are module names that sandbox JS code requests, values are the actual + * native module names to resolve instead. Substituted modules are implicitly allowed. + * + * Example: {"RNCAsyncStorage": "SandboxedAsyncStorage"} means when sandbox JS + * requests RNCAsyncStorage, the delegate resolves SandboxedAsyncStorage instead + * and configures it with the sandbox context (origin, etc.) if it implements + * ISandboxAwareModule. + */ +@property (nonatomic, readwrite) std::map turboModuleSubstitutions; + /** * Initializes the delegate. * @return Initialized delegate instance with filtered module access diff --git a/packages/react-native-sandbox/ios/SandboxReactNativeDelegate.mm b/packages/react-native-sandbox/ios/SandboxReactNativeDelegate.mm index d58980b..29d1161 100644 --- a/packages/react-native-sandbox/ios/SandboxReactNativeDelegate.mm +++ b/packages/react-native-sandbox/ios/SandboxReactNativeDelegate.mm @@ -14,15 +14,19 @@ #include #include +#import #import #import #import #import +#import #import #import #include +#include "ISandboxAwareModule.h" +#import "RCTSandboxAwareModule.h" #include "SandboxDelegateWrapper.h" #include "SandboxRegistry.h" #import "StubTurboModuleCxx.h" @@ -31,6 +35,30 @@ namespace TurboModuleConvertUtils = facebook::react::TurboModuleConvertUtils; using namespace facebook::react; +class SandboxNativeMethodCallInvoker : public NativeMethodCallInvoker { + dispatch_queue_t methodQueue_; + + public: + explicit SandboxNativeMethodCallInvoker(dispatch_queue_t methodQueue) : methodQueue_(methodQueue) {} + + void invokeAsync(const std::string &, std::function &&work) noexcept override + { + if (methodQueue_ == RCTJSThread) { + work(); + return; + } + __block auto retainedWork = std::move(work); + dispatch_async(methodQueue_, ^{ + retainedWork(); + }); + } + + void invokeSync(const std::string &, std::function &&work) override + { + work(); + } +}; + static void stubJsiFunction(jsi::Runtime &runtime, jsi::Object &object, const char *name) { object.setProperty( @@ -57,8 +85,10 @@ @interface SandboxReactNativeDelegate () { std::shared_ptr _delegateWrapper; std::set _allowedTurboModules; std::set _allowedOrigins; + std::map _turboModuleSubstitutions; std::string _origin; std::string _jsBundleSource; + NSMutableDictionary> *_substitutedModuleInstances; } - (void)cleanupResources; @@ -81,6 +111,7 @@ - (instancetype)init if (self = [super init]) { _hasOnMessageHandler = NO; _hasOnErrorHandler = NO; + _substitutedModuleInstances = [NSMutableDictionary new]; self.dependencyProvider = [[RCTAppDependencyProvider alloc] init]; } return self; @@ -92,6 +123,8 @@ - (void)cleanupResources _rctInstance = nil; _allowedTurboModules.clear(); _allowedOrigins.clear(); + _turboModuleSubstitutions.clear(); + [_substitutedModuleInstances removeAllObjects]; if (_delegateWrapper) { _delegateWrapper->invalidate(); _delegateWrapper.reset(); @@ -167,6 +200,16 @@ - (void)setAllowedTurboModules:(std::set)allowedTurboModules _allowedTurboModules = allowedTurboModules; } +- (std::map)turboModuleSubstitutions +{ + return _turboModuleSubstitutions; +} + +- (void)setTurboModuleSubstitutions:(std::map)turboModuleSubstitutions +{ + _turboModuleSubstitutions = turboModuleSubstitutions; +} + - (void)dealloc { if (_delegateWrapper) { @@ -299,22 +342,251 @@ - (void)hostDidStart:(RCTHost *)host }]; } -#pragma mark - RCTTurboModuleManagerDelegate +/** + * RCTTurboModuleManagerDelegate resolution order (called by RCTTurboModuleManager): + * + * PRIORITY 1 — getTurboModule:jsInvoker: + * Called first. Returns a fully constructed C++ TurboModule (shared_ptr). + * If non-null, resolution stops here — nothing else is called. + * This is the primary path for C++ TurboModules and our ObjC substitution fallback. + * + * PRIORITY 2 — getModuleClassFromName: + * Called if getTurboModule returned nullptr. Provides the ObjC class for a module name. + * The TurboModuleManager then calls getModuleInstanceFromClass: with this class. + * + * PRIORITY 3 — getModuleInstanceFromClass: + * Called with the class from step 2 (or the auto-registered class). + * Creates and returns an ObjC module instance. The TurboModuleManager then wraps it + * in an ObjCInteropTurboModule internally and sets up its methodQueue via KVC. + * NOTE: This path goes through RCTInstance as a weak delegate intermediary, which + * can become nil — causing a second unconfigured instance. That's why we prefer + * handling ObjC substitutions in getTurboModule:jsInvoker: (priority 1) instead. + * + * PRIORITY 4 — getModuleProvider: + * Legacy/alternative path. Called by some internal flows to get a module instance + * by name string. Similar role to getModuleInstanceFromClass but name-based. + */ -- (id)getModuleProvider:(const char *)name -{ - return _allowedTurboModules.contains(name) ? [super getModuleProvider:name] : nullptr; -} +#pragma mark - RCTTurboModuleManagerDelegate +// PRIORITY 1 - (std::shared_ptr)getTurboModule:(const std::string &)name jsInvoker:(std::shared_ptr)jsInvoker { + auto it = _turboModuleSubstitutions.find(name); + if (it != _turboModuleSubstitutions.end()) { + const std::string &resolvedName = it->second; + + // Try C++ TurboModule first (e.g. codegen-generated spec) + auto cxxModule = [super getTurboModule:resolvedName jsInvoker:jsInvoker]; + if (cxxModule) { + if (auto sandboxAware = std::dynamic_pointer_cast(cxxModule)) { + sandboxAware->configureSandbox({ + .origin = _origin, + .requestedModuleName = name, + .resolvedModuleName = resolvedName, + }); + } + return cxxModule; + } + + return [self _createObjCTurboModuleForSubstitution:name resolvedName:resolvedName jsInvoker:jsInvoker]; + } + if (_allowedTurboModules.contains(name)) { return [super getTurboModule:name jsInvoker:jsInvoker]; - } else { - // Return C++ stub instead of nullptr - return std::make_shared(name, jsInvoker); } + + return std::make_shared(name, jsInvoker); +} + +// PRIORITY 2 +- (Class)getModuleClassFromName:(const char *)name +{ + std::string nameStr(name); + + auto it = _turboModuleSubstitutions.find(nameStr); + if (it != _turboModuleSubstitutions.end()) { + NSString *resolvedName = [NSString stringWithUTF8String:it->second.c_str()]; + for (Class moduleClass in RCTGetModuleClasses()) { + if ([[moduleClass moduleName] isEqualToString:resolvedName]) { + return moduleClass; + } + } + } + + return nullptr; +} + +// PRIORITY 3 +- (id)getModuleInstanceFromClass:(Class)moduleClass +{ + NSString *moduleName = [moduleClass moduleName]; + if (!moduleName) { + return nullptr; + } + + id cached = _substitutedModuleInstances[moduleName]; + if (cached) { + return (id)cached; + } + + std::string moduleNameStr = [moduleName UTF8String]; + bool isSubstitutionTarget = false; + std::string requestedName; + + for (auto &pair : _turboModuleSubstitutions) { + if (pair.second == moduleNameStr) { + isSubstitutionTarget = true; + requestedName = pair.first; + break; + } + } + + if (!isSubstitutionTarget) { + return nullptr; + } + + id module = [moduleClass new]; + + if ([(id)module conformsToProtocol:@protocol(RCTSandboxAwareModule)]) { + NSString *originNS = [NSString stringWithUTF8String:_origin.c_str()]; + NSString *requestedNameNS = [NSString stringWithUTF8String:requestedName.c_str()]; + [(id)module configureSandboxWithOrigin:originNS + requestedName:requestedNameNS + resolvedName:moduleName]; + } + + _substitutedModuleInstances[moduleName] = module; + return (id)module; +} + +// PRIORITY 4 +- (id)getModuleProvider:(const char *)name +{ + std::string nameStr(name); + + auto it = _turboModuleSubstitutions.find(nameStr); + if (it != _turboModuleSubstitutions.end()) { + NSString *resolvedName = [NSString stringWithUTF8String:it->second.c_str()]; + + id cached = _substitutedModuleInstances[resolvedName]; + if (cached) { + return (id)cached; + } + + // Try the dependency provider first (for Codegen TurboModules) + id provider = [super getModuleProvider:it->second.c_str()]; + + if (!provider) { + for (Class moduleClass in RCTGetModuleClasses()) { + if ([[moduleClass moduleName] isEqualToString:resolvedName]) { + provider = [moduleClass new]; + break; + } + } + } + + if (!provider) { + return nullptr; + } + + if ([(id)provider conformsToProtocol:@protocol(RCTSandboxAwareModule)]) { + NSString *originNS = [NSString stringWithUTF8String:_origin.c_str()]; + NSString *requestedNameNS = [NSString stringWithUTF8String:nameStr.c_str()]; + [(id)provider configureSandboxWithOrigin:originNS + requestedName:requestedNameNS + resolvedName:resolvedName]; + } + + if ([(id)provider conformsToProtocol:@protocol(RCTBridgeModule)]) { + _substitutedModuleInstances[resolvedName] = (id)provider; + } + + return provider; + } + + return _allowedTurboModules.contains(nameStr) ? [super getModuleProvider:name] : nullptr; +} + +- (std::shared_ptr) + _createObjCTurboModuleForSubstitution:(const std::string &)requestedName + resolvedName:(const std::string &)resolvedName + jsInvoker:(std::shared_ptr)jsInvoker +{ + NSString *resolvedNameNS = [NSString stringWithUTF8String:resolvedName.c_str()]; + + id cached = _substitutedModuleInstances[resolvedNameNS]; + if (cached && [(id)cached conformsToProtocol:@protocol(RCTTurboModule)]) { + return [self _wrapObjCModule:cached moduleName:requestedName jsInvoker:jsInvoker]; + } + + Class moduleClass = nil; + for (Class cls in RCTGetModuleClasses()) { + if ([[cls moduleName] isEqualToString:resolvedNameNS]) { + moduleClass = cls; + break; + } + } + + if (!moduleClass) { + return nullptr; + } + + id instance = [moduleClass new]; + + if ([(id)instance conformsToProtocol:@protocol(RCTSandboxAwareModule)]) { + NSString *originNS = [NSString stringWithUTF8String:_origin.c_str()]; + NSString *requestedNameNS = [NSString stringWithUTF8String:requestedName.c_str()]; + [(id)instance configureSandboxWithOrigin:originNS + requestedName:requestedNameNS + resolvedName:resolvedNameNS]; + } + + _substitutedModuleInstances[resolvedNameNS] = instance; + + if (![(id)instance conformsToProtocol:@protocol(RCTTurboModule)]) { + return nullptr; + } + + return [self _wrapObjCModule:instance moduleName:requestedName jsInvoker:jsInvoker]; +} + +- (std::shared_ptr)_wrapObjCModule:(id)instance + moduleName:(const std::string &)moduleName + jsInvoker: + (std::shared_ptr)jsInvoker +{ + dispatch_queue_t methodQueue = nil; + BOOL hasMethodQueueGetter = [instance respondsToSelector:@selector(methodQueue)]; + if (hasMethodQueueGetter) { + methodQueue = [instance methodQueue]; + } + + if (!methodQueue) { + NSString *label = [NSString stringWithFormat:@"com.sandbox.%s", moduleName.c_str()]; + methodQueue = dispatch_queue_create(label.UTF8String, DISPATCH_QUEUE_SERIAL); + + if (hasMethodQueueGetter) { + @try { + [(id)instance setValue:methodQueue forKey:@"methodQueue"]; + } @catch (NSException *exception) { + RCTLogError(@"[Sandbox] Failed to set methodQueue on module '%s': %@", moduleName.c_str(), exception.reason); + } + } + } + + auto nativeInvoker = std::make_shared(methodQueue); + + facebook::react::ObjCTurboModule::InitParams params = { + .moduleName = moduleName, + .instance = instance, + .jsInvoker = jsInvoker, + .nativeMethodCallInvoker = nativeInvoker, + .isSyncModule = methodQueue == RCTJSThread, + .shouldVoidMethodsExecuteSync = false, + }; + return [(id)instance getTurboModule:params]; } - (jsi::Function)createPostMessageFunction:(jsi::Runtime &)runtime diff --git a/packages/react-native-sandbox/ios/SandboxReactNativeViewComponentView.mm b/packages/react-native-sandbox/ios/SandboxReactNativeViewComponentView.mm index 9c22f93..cb69086 100644 --- a/packages/react-native-sandbox/ios/SandboxReactNativeViewComponentView.mm +++ b/packages/react-native-sandbox/ios/SandboxReactNativeViewComponentView.mm @@ -94,6 +94,18 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared & [self.reactNativeDelegate setAllowedOrigins:allowedOrigins]; } + if (oldViewProps.turboModuleSubstitutions != newViewProps.turboModuleSubstitutions) { + std::map subs; + if (newViewProps.turboModuleSubstitutions.isObject()) { + for (const auto &pair : newViewProps.turboModuleSubstitutions.items()) { + if (pair.first.isString() && pair.second.isString()) { + subs[pair.first.getString()] = pair.second.getString(); + } + } + } + [self.reactNativeDelegate setTurboModuleSubstitutions:subs]; + } + self.reactNativeDelegate.hasOnMessageHandler = newViewProps.hasOnMessageHandler; self.reactNativeDelegate.hasOnErrorHandler = newViewProps.hasOnErrorHandler; @@ -101,7 +113,14 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared & [self updateEventEmitterIfNeeded]; } - if (oldViewProps.componentName != newViewProps.componentName || + BOOL turboModuleConfigChanged = oldViewProps.allowedTurboModules != newViewProps.allowedTurboModules || + oldViewProps.turboModuleSubstitutions != newViewProps.turboModuleSubstitutions; + + if (turboModuleConfigChanged) { + self.reactNativeFactory = nil; + } + + if (turboModuleConfigChanged || oldViewProps.componentName != newViewProps.componentName || oldViewProps.initialProperties != newViewProps.initialProperties || oldViewProps.launchOptions != newViewProps.launchOptions) { [self scheduleReactViewLoad]; @@ -162,7 +181,6 @@ - (void)loadReactNativeView launchOptions = (NSDictionary *)convertFollyDynamicToId(props.launchOptions); } - // Use existing delegate (properties already updated in updateProps) if (!self.reactNativeFactory) { self.reactNativeFactory = [[RCTReactNativeFactory alloc] initWithDelegate:self.reactNativeDelegate]; } diff --git a/packages/react-native-sandbox/specs/NativeSandboxReactNativeView.ts b/packages/react-native-sandbox/specs/NativeSandboxReactNativeView.ts index ea6dac0..f334ee4 100644 --- a/packages/react-native-sandbox/specs/NativeSandboxReactNativeView.ts +++ b/packages/react-native-sandbox/specs/NativeSandboxReactNativeView.ts @@ -59,6 +59,13 @@ export interface NativeProps extends ViewProps { /** Array of TurboModule names allowed in the sandbox */ allowedTurboModules?: readonly string[] + /** + * Map of TurboModule substitutions for this sandbox. + * Keys are module names that sandbox JS requests, values are the actual + * native module names to resolve instead. Substituted modules are implicitly allowed. + */ + turboModuleSubstitutions?: CodegenTypes.UnsafeMixed + /** Array of sandbox origins that are allowed to send messages to this sandbox */ allowedOrigins?: readonly string[] diff --git a/packages/react-native-sandbox/src/index.tsx b/packages/react-native-sandbox/src/index.tsx index 5610381..1927c6e 100644 --- a/packages/react-native-sandbox/src/index.tsx +++ b/packages/react-native-sandbox/src/index.tsx @@ -102,6 +102,15 @@ export interface SandboxReactNativeViewProps extends ViewProps { */ allowedTurboModules?: string[] + /** + * Map of TurboModule substitutions for this sandbox instance. + * Keys are the module names that sandbox JS code requests, + * values are the actual native module names to resolve instead. + * Substituted modules are implicitly allowed and don't need to be + * listed in allowedTurboModules. + */ + turboModuleSubstitutions?: Record + /** * Array of sandbox origins that are allowed to send messages to this sandbox. * If not provided or empty, no other sandboxes will be allowed to send messages. From d8b9cfe6a13089e77f08886e380194fa6424b28a Mon Sep 17 00:00:00 2001 From: Aliaksandr Babrykovich Date: Wed, 8 Apr 2026 09:00:37 +0200 Subject: [PATCH 2/2] feat: add android fs native modules for substitution --- apps/fs-experiment/App.tsx | 8 +- apps/fs-experiment/FileOpsUI.tsx | 11 +- .../fsexperiment/MainApplication.kt | 4 +- .../fsexperiment/SandboxedAsyncStorage.kt | 332 ++++++++++++++ .../fsexperiment/SandboxedFileAccess.kt | 423 ++++++++++++++++++ .../fsexperiment/SandboxedModulesPackage.kt | 52 +++ .../fsexperiment/SandboxedRNFSManager.kt | 407 +++++++++++++++++ .../project.pbxproj | 4 +- apps/fs-experiment/ios/Podfile.lock | 290 ++++++------ .../callstack/rnsandbox/SandboxAwareModule.kt | 28 ++ .../rnsandbox/SandboxReactNativeDelegate.kt | 119 ++++- .../rnsandbox/SandboxReactNativeView.kt | 30 ++ .../SandboxReactNativeViewManager.kt | 31 +- 13 files changed, 1581 insertions(+), 158 deletions(-) create mode 100644 apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedAsyncStorage.kt create mode 100644 apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedFileAccess.kt create mode 100644 apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedModulesPackage.kt create mode 100644 apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedRNFSManager.kt create mode 100644 packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxAwareModule.kt diff --git a/apps/fs-experiment/App.tsx b/apps/fs-experiment/App.tsx index 500bacf..18acb48 100644 --- a/apps/fs-experiment/App.tsx +++ b/apps/fs-experiment/App.tsx @@ -1,6 +1,7 @@ import SandboxReactNativeView from '@callstack/react-native-sandbox' import React, {useState} from 'react' import { + Platform, SafeAreaView, ScrollView, StatusBar, @@ -13,12 +14,15 @@ import { import FileOpsUI from './FileOpsUI' -const ALL_TURBO_MODULES = ['RNFSManager', 'FileAccess', 'PlatformLocalStorage'] +const ASYNC_STORAGE_MODULE = + Platform.OS === 'ios' ? 'PlatformLocalStorage' : 'RNCAsyncStorage' + +const ALL_TURBO_MODULES = ['RNFSManager', 'FileAccess', ASYNC_STORAGE_MODULE] const SANDBOXED_SUBSTITUTIONS: Record = { RNFSManager: 'SandboxedRNFSManager', FileAccess: 'SandboxedFileAccess', - PlatformLocalStorage: 'SandboxedAsyncStorage', + [ASYNC_STORAGE_MODULE]: 'SandboxedAsyncStorage', } function App(): React.JSX.Element { diff --git a/apps/fs-experiment/FileOpsUI.tsx b/apps/fs-experiment/FileOpsUI.tsx index 40beac9..57da75a 100644 --- a/apps/fs-experiment/FileOpsUI.tsx +++ b/apps/fs-experiment/FileOpsUI.tsx @@ -12,7 +12,16 @@ import { View, } from 'react-native' import {Dirs, FileSystem} from 'react-native-file-access' -import RNFS from 'react-native-fs' + +// react-native-fs doesn't support TurboModules. Its top-level code accesses +// NativeModules.RNFSManager constants synchronously, throwing if null. +// Wrap require() so the app still works when RNFS isn't available. +let RNFS: any +try { + RNFS = require('react-native-fs').default ?? require('react-native-fs') +} catch { + RNFS = {DocumentDirectoryPath: Dirs.DocumentDir} +} const MODULES = [ {key: 'rnfs', label: 'RNFS'}, diff --git a/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/MainApplication.kt b/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/MainApplication.kt index a2e0a6e..7f88ff0 100644 --- a/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/MainApplication.kt +++ b/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/MainApplication.kt @@ -11,6 +11,7 @@ import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost import com.facebook.react.defaults.DefaultReactNativeHost import com.facebook.react.soloader.OpenSourceMergedSoMapping import com.facebook.soloader.SoLoader +import io.callstack.rnsandbox.SandboxReactNativeDelegate class MainApplication : Application(), ReactApplication { @@ -37,8 +38,9 @@ class MainApplication : Application(), ReactApplication { super.onCreate() SoLoader.init(this, OpenSourceMergedSoMapping) if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { - // If you opted-in for the New Architecture, we load the native entry point for this app. load() } + SandboxReactNativeDelegate.registerHostPackages(PackageList(this).packages) + SandboxReactNativeDelegate.registerSubstitutionPackages(SandboxedModulesPackage()) } } diff --git a/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedAsyncStorage.kt b/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedAsyncStorage.kt new file mode 100644 index 0000000..7685cd2 --- /dev/null +++ b/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedAsyncStorage.kt @@ -0,0 +1,332 @@ +package com.multinstance.fsexperiment + +import android.content.ContentValues +import android.content.Context +import android.database.sqlite.SQLiteDatabase +import android.database.sqlite.SQLiteOpenHelper +import android.util.Log +import com.facebook.react.bridge.Arguments +import com.facebook.react.bridge.Callback +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.bridge.ReactContextBaseJavaModule +import com.facebook.react.bridge.ReactMethod +import com.facebook.react.bridge.ReadableArray +import com.facebook.react.bridge.WritableMap +import com.facebook.react.module.annotations.ReactModule +import io.callstack.rnsandbox.SandboxAwareModule +import org.json.JSONObject +import java.util.concurrent.Executors +import java.util.concurrent.TimeUnit + +/** + * Sandboxed AsyncStorage — per-origin SQLite storage that mirrors the original + * RNCAsyncStorage API but scopes data to the sandbox origin. + * + * Uses callbacks (not promises) to match the original AsyncStorageModule interface. + */ +@ReactModule(name = SandboxedAsyncStorage.MODULE_NAME) +class SandboxedAsyncStorage( + private val reactContext: ReactApplicationContext, +) : ReactContextBaseJavaModule(reactContext), SandboxAwareModule { + + companion object { + const val MODULE_NAME = "SandboxedAsyncStorage" + private const val TAG = "SandboxedAsyncStorage" + private const val TABLE = "kv" + private const val COL_KEY = "k" + private const val COL_VALUE = "v" + private const val DB_VERSION = 1 + private const val MAX_SQL_KEYS = 999 + } + + private val executor = Executors.newSingleThreadExecutor() + private var dbHelper: SandboxDBHelper? = null + @Volatile private var configured = false + + override fun getName(): String = MODULE_NAME + + override fun configureSandbox(origin: String, requestedName: String, resolvedName: String) { + Log.d(TAG, "Configuring for origin '$origin'") + val dbDir = java.io.File(reactContext.filesDir, "Sandboxes/$origin/AsyncStorage") + dbDir.mkdirs() + val dbName = "sandboxed_async_storage.db" + dbHelper = SandboxDBHelper(reactContext, java.io.File(dbDir, dbName).absolutePath) + configured = true + } + + override fun invalidate() { + executor.shutdown() + try { + executor.awaitTermination(2, TimeUnit.SECONDS) + } catch (_: InterruptedException) { + executor.shutdownNow() + } + dbHelper?.close() + dbHelper = null + configured = false + super.invalidate() + } + + private fun errorMap(message: String): WritableMap { + val map = Arguments.createMap() + map.putString("message", message) + return map + } + + private fun db(): SQLiteDatabase? = dbHelper?.writableDatabase + + private fun readDb(): SQLiteDatabase? = dbHelper?.readableDatabase + + @ReactMethod + fun multiGet(keys: ReadableArray, callback: Callback) { + if (!configured) { + callback.invoke(errorMap("Sandbox not configured"), null) + return + } + executor.execute { + try { + val db = readDb() ?: run { + callback.invoke(errorMap("Database not available"), null) + return@execute + } + val data = Arguments.createArray() + val keysRemaining = mutableSetOf() + + for (start in 0 until keys.size() step MAX_SQL_KEYS) { + val count = minOf(keys.size() - start, MAX_SQL_KEYS) + keysRemaining.clear() + val placeholders = (0 until count).joinToString(",") { "?" } + val args = Array(count) { keys.getString(start + it) ?: "" } + for (arg in args) keysRemaining.add(arg) + + db.rawQuery("SELECT $COL_KEY, $COL_VALUE FROM $TABLE WHERE $COL_KEY IN ($placeholders)", args).use { cursor -> + while (cursor.moveToNext()) { + val row = Arguments.createArray() + row.pushString(cursor.getString(0)) + row.pushString(cursor.getString(1)) + data.pushArray(row) + keysRemaining.remove(cursor.getString(0)) + } + } + + for (key in keysRemaining) { + val row = Arguments.createArray() + row.pushString(key) + row.pushNull() + data.pushArray(row) + } + } + callback.invoke(null, data) + } catch (e: Exception) { + Log.e(TAG, "multiGet failed", e) + callback.invoke(errorMap(e.message ?: "Unknown error"), null) + } + } + } + + @ReactMethod + fun multiSet(keyValueArray: ReadableArray, callback: Callback) { + if (!configured) { + callback.invoke(errorMap("Sandbox not configured")) + return + } + executor.execute { + try { + val db = db() ?: run { + callback.invoke(errorMap("Database not available")) + return@execute + } + db.beginTransaction() + try { + for (i in 0 until keyValueArray.size()) { + val pair = keyValueArray.getArray(i) ?: continue + if (pair.size() != 2) continue + val key = pair.getString(0) ?: continue + val value = pair.getString(1) ?: continue + + val cv = ContentValues() + cv.put(COL_KEY, key) + cv.put(COL_VALUE, value) + db.insertWithOnConflict(TABLE, null, cv, SQLiteDatabase.CONFLICT_REPLACE) + } + db.setTransactionSuccessful() + } finally { + db.endTransaction() + } + callback.invoke() + } catch (e: Exception) { + Log.e(TAG, "multiSet failed", e) + callback.invoke(errorMap(e.message ?: "Unknown error")) + } + } + } + + @ReactMethod + fun multiRemove(keys: ReadableArray, callback: Callback) { + if (!configured) { + callback.invoke(errorMap("Sandbox not configured")) + return + } + executor.execute { + try { + val db = db() ?: run { + callback.invoke(errorMap("Database not available")) + return@execute + } + db.beginTransaction() + try { + for (start in 0 until keys.size() step MAX_SQL_KEYS) { + val count = minOf(keys.size() - start, MAX_SQL_KEYS) + val placeholders = (0 until count).joinToString(",") { "?" } + val args = Array(count) { keys.getString(start + it) ?: "" } + db.delete(TABLE, "$COL_KEY IN ($placeholders)", args) + } + db.setTransactionSuccessful() + } finally { + db.endTransaction() + } + callback.invoke() + } catch (e: Exception) { + Log.e(TAG, "multiRemove failed", e) + callback.invoke(errorMap(e.message ?: "Unknown error")) + } + } + } + + @ReactMethod + fun multiMerge(keyValueArray: ReadableArray, callback: Callback) { + if (!configured) { + callback.invoke(errorMap("Sandbox not configured")) + return + } + executor.execute { + try { + val db = db() ?: run { + callback.invoke(errorMap("Database not available")) + return@execute + } + db.beginTransaction() + try { + for (i in 0 until keyValueArray.size()) { + val pair = keyValueArray.getArray(i) ?: continue + if (pair.size() != 2) continue + val key = pair.getString(0) ?: continue + val newValue = pair.getString(1) ?: continue + + val existing = getValueForKey(db, key) + val merged = if (existing != null) { + mergeJsonStrings(existing, newValue) ?: newValue + } else { + newValue + } + val cv = ContentValues() + cv.put(COL_KEY, key) + cv.put(COL_VALUE, merged) + db.insertWithOnConflict(TABLE, null, cv, SQLiteDatabase.CONFLICT_REPLACE) + } + db.setTransactionSuccessful() + } finally { + db.endTransaction() + } + callback.invoke() + } catch (e: Exception) { + Log.e(TAG, "multiMerge failed", e) + callback.invoke(errorMap(e.message ?: "Unknown error")) + } + } + } + + @ReactMethod + fun getAllKeys(callback: Callback) { + if (!configured) { + callback.invoke(errorMap("Sandbox not configured"), null) + return + } + executor.execute { + try { + val db = readDb() ?: run { + callback.invoke(errorMap("Database not available"), null) + return@execute + } + val keys = Arguments.createArray() + db.rawQuery("SELECT $COL_KEY FROM $TABLE", null).use { cursor -> + while (cursor.moveToNext()) { + keys.pushString(cursor.getString(0)) + } + } + callback.invoke(null, keys) + } catch (e: Exception) { + Log.e(TAG, "getAllKeys failed", e) + callback.invoke(errorMap(e.message ?: "Unknown error"), null) + } + } + } + + @ReactMethod + fun clear(callback: Callback) { + if (!configured) { + callback.invoke(errorMap("Sandbox not configured")) + return + } + executor.execute { + try { + val db = db() ?: run { + callback.invoke(errorMap("Database not available")) + return@execute + } + db.delete(TABLE, null, null) + callback.invoke() + } catch (e: Exception) { + Log.e(TAG, "clear failed", e) + callback.invoke(errorMap(e.message ?: "Unknown error")) + } + } + } + + private fun getValueForKey(db: SQLiteDatabase, key: String): String? { + db.rawQuery("SELECT $COL_VALUE FROM $TABLE WHERE $COL_KEY = ?", arrayOf(key)).use { cursor -> + return if (cursor.moveToFirst()) cursor.getString(0) else null + } + } + + /** + * Deep recursive merge matching the original RNCAsyncStorage behavior: + * when both sides have a JSONObject at a given key, merge recursively; + * otherwise the new value overwrites the old one. + */ + private fun mergeJsonStrings(existing: String, incoming: String): String? { + return try { + val base = JSONObject(existing) + val overlay = JSONObject(incoming) + deepMerge(base, overlay) + base.toString() + } catch (e: Exception) { + null + } + } + + private fun deepMerge(base: JSONObject, overlay: JSONObject) { + for (key in overlay.keys()) { + val newValue = overlay.get(key) + val oldValue = base.opt(key) + if (oldValue is JSONObject && newValue is JSONObject) { + deepMerge(oldValue, newValue) + } else { + base.put(key, newValue) + } + } + } + + private class SandboxDBHelper(context: Context, dbPath: String) : + SQLiteOpenHelper(context, dbPath, null, DB_VERSION) { + + override fun onCreate(db: SQLiteDatabase) { + db.execSQL("CREATE TABLE IF NOT EXISTS $TABLE ($COL_KEY TEXT PRIMARY KEY, $COL_VALUE TEXT NOT NULL)") + } + + override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) { + db.execSQL("DROP TABLE IF EXISTS $TABLE") + onCreate(db) + } + } +} diff --git a/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedFileAccess.kt b/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedFileAccess.kt new file mode 100644 index 0000000..45539ec --- /dev/null +++ b/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedFileAccess.kt @@ -0,0 +1,423 @@ +package com.multinstance.fsexperiment + +import android.os.StatFs +import android.util.Base64 +import android.util.Log +import com.facebook.react.bridge.Arguments +import com.facebook.react.bridge.Promise +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.bridge.ReactContextBaseJavaModule +import com.facebook.react.bridge.ReactMethod +import com.facebook.react.bridge.ReadableMap +import com.facebook.react.module.annotations.ReactModule +import io.callstack.rnsandbox.SandboxAwareModule +import java.io.File +import java.io.FileInputStream +import java.io.FileOutputStream +import java.io.RandomAccessFile +import java.security.MessageDigest +import java.util.concurrent.Executors +import java.util.concurrent.TimeUnit + +/** + * Sandboxed FileAccess — jails all file paths to a per-origin directory. + * + * Mirrors the iOS SandboxedFileAccess.mm implementation. Implements the + * react-native-file-access module interface so JS code works transparently. + */ +@ReactModule(name = SandboxedFileAccess.MODULE_NAME) +class SandboxedFileAccess( + private val reactContext: ReactApplicationContext, +) : ReactContextBaseJavaModule(reactContext), SandboxAwareModule { + + companion object { + const val MODULE_NAME = "SandboxedFileAccess" + private const val TAG = "SandboxedFileAccess" + } + + private val executor = Executors.newSingleThreadExecutor() + + private var sandboxRoot: String = "" + private var documentsDir: String = "" + private var cachesDir: String = "" + @Volatile private var configured = false + + override fun getName(): String = MODULE_NAME + + override fun configureSandbox(origin: String, requestedName: String, resolvedName: String) { + Log.d(TAG, "Configuring for origin '$origin'") + val base = File(reactContext.filesDir, "Sandboxes/$origin") + sandboxRoot = base.absolutePath + documentsDir = File(base, "Documents").absolutePath + cachesDir = File(base, "Caches").absolutePath + + listOf(documentsDir, cachesDir).forEach { File(it).mkdirs() } + configured = true + } + + override fun invalidate() { + executor.shutdown() + try { + executor.awaitTermination(2, TimeUnit.SECONDS) + } catch (_: InterruptedException) { + executor.shutdownNow() + } + configured = false + super.invalidate() + } + + private fun sandboxedPath(path: String, promise: Promise): String? { + if (!configured) { + promise.reject("EPERM", "SandboxedFileAccess: sandbox not configured.") + return null + } + val resolved = if (path.startsWith("/")) { + File(path).canonicalPath + } else { + File(documentsDir, path).canonicalPath + } + if (resolved.startsWith(sandboxRoot)) return resolved + promise.reject("EPERM", "Path '$path' is outside the sandbox. Allowed root: $sandboxRoot") + return null + } + + override fun getConstants(): Map { + if (!configured) return mapOf( + "CacheDir" to "", "DocumentDir" to "", "MainBundleDir" to "", + ) + return mapOf( + "CacheDir" to cachesDir, + "DocumentDir" to documentsDir, + "MainBundleDir" to documentsDir, + ) + } + + @ReactMethod + fun writeFile(path: String, data: String, encoding: String, promise: Promise) { + val safePath = sandboxedPath(path, promise) ?: return + executor.execute { + try { + File(safePath).parentFile?.mkdirs() + if (encoding == "base64") { + val decoded = Base64.decode(data, Base64.DEFAULT) + FileOutputStream(safePath).use { it.write(decoded) } + } else { + File(safePath).writeText(data, Charsets.UTF_8) + } + promise.resolve(null) + } catch (e: Exception) { + promise.reject("ERR", "Failed to write to '$path': ${e.message}", e) + } + } + } + + @ReactMethod + fun readFile(path: String, encoding: String, promise: Promise) { + val safePath = sandboxedPath(path, promise) ?: return + executor.execute { + try { + val file = File(safePath) + if (!file.exists()) { + promise.reject("ERR", "No such file '$path'") + return@execute + } + if (encoding == "base64") { + val bytes = file.readBytes() + promise.resolve(Base64.encodeToString(bytes, Base64.NO_WRAP)) + } else { + promise.resolve(file.readText(Charsets.UTF_8)) + } + } catch (e: Exception) { + promise.reject("ERR", "Failed to read '$path': ${e.message}", e) + } + } + } + + @ReactMethod + fun readFileChunk(path: String, offset: Double, length: Double, encoding: String, promise: Promise) { + val safePath = sandboxedPath(path, promise) ?: return + executor.execute { + try { + RandomAccessFile(safePath, "r").use { raf -> + raf.seek(offset.toLong()) + val buf = ByteArray(length.toInt()) + val bytesRead = raf.read(buf) + if (bytesRead <= 0) { + promise.resolve("") + return@execute + } + val actual = buf.copyOf(bytesRead) + if (encoding == "base64") { + promise.resolve(Base64.encodeToString(actual, Base64.NO_WRAP)) + } else { + promise.resolve(String(actual, Charsets.UTF_8)) + } + } + } catch (e: Exception) { + promise.reject("ERR", "Failed to read chunk '$path': ${e.message}", e) + } + } + } + + @ReactMethod + fun appendFile(path: String, data: String, encoding: String, promise: Promise) { + val safePath = sandboxedPath(path, promise) ?: return + executor.execute { + try { + val bytes = if (encoding == "base64") { + Base64.decode(data, Base64.DEFAULT) + } else { + data.toByteArray(Charsets.UTF_8) + } + FileOutputStream(safePath, true).use { it.write(bytes) } + promise.resolve(null) + } catch (e: Exception) { + promise.reject("ERR", "Failed to append to '$path': ${e.message}", e) + } + } + } + + @ReactMethod + fun exists(path: String, promise: Promise) { + val safePath = sandboxedPath(path, promise) ?: return + executor.execute { promise.resolve(File(safePath).exists()) } + } + + @ReactMethod + fun isDir(path: String, promise: Promise) { + val safePath = sandboxedPath(path, promise) ?: return + executor.execute { + val f = File(safePath) + promise.resolve(f.exists() && f.isDirectory) + } + } + + @ReactMethod + fun ls(path: String, promise: Promise) { + val safePath = sandboxedPath(path, promise) ?: return + executor.execute { + try { + val dir = File(safePath) + val result = Arguments.createArray() + dir.listFiles()?.forEach { result.pushString(it.name) } + promise.resolve(result) + } catch (e: Exception) { + promise.reject("ERR", "Failed to list '$path': ${e.message}", e) + } + } + } + + @ReactMethod + fun mkdir(path: String, promise: Promise) { + val safePath = sandboxedPath(path, promise) ?: return + executor.execute { + try { + File(safePath).mkdirs() + promise.resolve(safePath) + } catch (e: Exception) { + promise.reject("ERR", "Failed to mkdir '$path': ${e.message}", e) + } + } + } + + @ReactMethod + fun cp(source: String, target: String, promise: Promise) { + val src = sandboxedPath(source, promise) ?: return + val dst = sandboxedPath(target, promise) ?: return + executor.execute { + try { + File(dst).parentFile?.mkdirs() + File(src).copyTo(File(dst), overwrite = true) + promise.resolve(null) + } catch (e: Exception) { + promise.reject("ERR", "Failed to copy '$source' to '$target': ${e.message}", e) + } + } + } + + @ReactMethod + fun mv(source: String, target: String, promise: Promise) { + val src = sandboxedPath(source, promise) ?: return + val dst = sandboxedPath(target, promise) ?: return + executor.execute { + try { + File(dst).parentFile?.mkdirs() + val srcFile = File(src) + val dstFile = File(dst) + dstFile.delete() + if (!srcFile.renameTo(dstFile)) { + srcFile.copyTo(dstFile, overwrite = true) + srcFile.delete() + } + promise.resolve(null) + } catch (e: Exception) { + promise.reject("ERR", "Failed to move '$source' to '$target': ${e.message}", e) + } + } + } + + @ReactMethod + fun unlink(path: String, promise: Promise) { + val safePath = sandboxedPath(path, promise) ?: return + executor.execute { + try { + val file = File(safePath) + if (file.isDirectory) file.deleteRecursively() else file.delete() + promise.resolve(null) + } catch (e: Exception) { + promise.reject("ERR", "Failed to unlink '$path': ${e.message}", e) + } + } + } + + @ReactMethod + fun stat(path: String, promise: Promise) { + val safePath = sandboxedPath(path, promise) ?: return + executor.execute { + try { + val file = File(safePath) + if (!file.exists()) { + promise.reject("ERR", "No such file '$path'") + return@execute + } + val result = Arguments.createMap() + result.putString("filename", file.name) + result.putDouble("lastModified", file.lastModified().toDouble()) + result.putString("path", safePath) + result.putDouble("size", file.length().toDouble()) + result.putString("type", if (file.isDirectory) "directory" else "file") + promise.resolve(result) + } catch (e: Exception) { + promise.reject("ERR", "Failed to stat '$path': ${e.message}", e) + } + } + } + + @ReactMethod + fun statDir(path: String, promise: Promise) { + val safePath = sandboxedPath(path, promise) ?: return + executor.execute { + try { + val dir = File(safePath) + val results = Arguments.createArray() + dir.listFiles()?.forEach { file -> + val item = Arguments.createMap() + item.putString("filename", file.name) + item.putDouble("lastModified", file.lastModified().toDouble()) + item.putString("path", file.absolutePath) + item.putDouble("size", file.length().toDouble()) + item.putString("type", if (file.isDirectory) "directory" else "file") + results.pushMap(item) + } + promise.resolve(results) + } catch (e: Exception) { + promise.reject("ERR", "Failed to statDir '$path': ${e.message}", e) + } + } + } + + @ReactMethod + fun hash(path: String, algorithm: String, promise: Promise) { + val safePath = sandboxedPath(path, promise) ?: return + executor.execute { + try { + val algoMap = mapOf( + "MD5" to "MD5", "SHA-1" to "SHA-1", "SHA-256" to "SHA-256", "SHA-512" to "SHA-512" + ) + val javaAlgo = algoMap[algorithm] + if (javaAlgo == null) { + promise.reject("ERR", "Unknown algorithm '$algorithm'") + return@execute + } + val md = MessageDigest.getInstance(javaAlgo) + FileInputStream(safePath).use { fis -> + val buf = ByteArray(8192) + var len: Int + while (fis.read(buf).also { len = it } != -1) md.update(buf, 0, len) + } + promise.resolve(md.digest().joinToString("") { "%02x".format(it) }) + } catch (e: Exception) { + promise.reject("ERR", "Failed to hash '$path': ${e.message}", e) + } + } + } + + @ReactMethod + fun concatFiles(source: String, target: String, promise: Promise) { + val src = sandboxedPath(source, promise) ?: return + val dst = sandboxedPath(target, promise) ?: return + executor.execute { + try { + var totalBytes = 0L + FileInputStream(src).use { input -> + FileOutputStream(dst, true).use { output -> + val buf = ByteArray(8192) + var len: Int + while (input.read(buf).also { len = it } != -1) { + output.write(buf, 0, len) + totalBytes += len + } + } + } + promise.resolve(totalBytes.toDouble()) + } catch (e: Exception) { + promise.reject("ERR", "Failed to concat '$source' to '$target': ${e.message}", e) + } + } + } + + @ReactMethod + fun df(promise: Promise) { + if (!configured) { + promise.reject("EPERM", "SandboxedFileAccess: sandbox not configured.") + return + } + executor.execute { + try { + val stat = StatFs(sandboxRoot) + val result = Arguments.createMap() + result.putDouble("internal_free", stat.availableBytes.toDouble()) + result.putDouble("internal_total", stat.totalBytes.toDouble()) + promise.resolve(result) + } catch (e: Exception) { + promise.reject("ERR", "Failed to stat filesystem: ${e.message}", e) + } + } + } + + @ReactMethod + fun fetch(requestId: Double, resource: String, init: ReadableMap) { + Log.w(TAG, "fetch is not available in sandboxed mode") + } + + @ReactMethod + fun cancelFetch(requestId: Double, promise: Promise) { + promise.resolve(null) + } + + @ReactMethod + fun cpAsset(asset: String, target: String, type: String, promise: Promise) { + promise.reject("EPERM", "cpAsset is not available in sandboxed mode") + } + + @ReactMethod + fun cpExternal(source: String, targetName: String, dir: String, promise: Promise) { + promise.reject("EPERM", "cpExternal is not available in sandboxed mode") + } + + @ReactMethod + fun getAppGroupDir(groupName: String, promise: Promise) { + promise.reject("EPERM", "getAppGroupDir is not available in sandboxed mode") + } + + @ReactMethod + fun unzip(source: String, target: String, promise: Promise) { + promise.reject("EPERM", "unzip is not available in sandboxed mode") + } + + @ReactMethod + fun addListener(eventName: String) = Unit + + @ReactMethod + fun removeListeners(count: Double) = Unit +} diff --git a/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedModulesPackage.kt b/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedModulesPackage.kt new file mode 100644 index 0000000..fde391a --- /dev/null +++ b/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedModulesPackage.kt @@ -0,0 +1,52 @@ +package com.multinstance.fsexperiment + +import com.facebook.react.BaseReactPackage +import com.facebook.react.bridge.NativeModule +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.module.model.ReactModuleInfo +import com.facebook.react.module.model.ReactModuleInfoProvider +import com.facebook.react.uimanager.ViewManager + +/** + * ReactPackage providing sandboxed module implementations for the fs-experiment app. + * + * Registered via SandboxReactNativeDelegate.registerSubstitutionPackages() in + * MainApplication.onCreate() so the sandbox's FilteredReactPackage can resolve + * substitution targets. + */ +class SandboxedModulesPackage : BaseReactPackage() { + + override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? { + return when (name) { + SandboxedRNFSManager.MODULE_NAME -> SandboxedRNFSManager(reactContext) + SandboxedFileAccess.MODULE_NAME -> SandboxedFileAccess(reactContext) + SandboxedAsyncStorage.MODULE_NAME -> SandboxedAsyncStorage(reactContext) + else -> null + } + } + + override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { + return ReactModuleInfoProvider { + mapOf( + SandboxedRNFSManager.MODULE_NAME to ReactModuleInfo( + SandboxedRNFSManager.MODULE_NAME, + SandboxedRNFSManager.MODULE_NAME, + false, false, false, false, false, + ), + SandboxedFileAccess.MODULE_NAME to ReactModuleInfo( + SandboxedFileAccess.MODULE_NAME, + SandboxedFileAccess.MODULE_NAME, + false, false, false, false, false, + ), + SandboxedAsyncStorage.MODULE_NAME to ReactModuleInfo( + SandboxedAsyncStorage.MODULE_NAME, + SandboxedAsyncStorage.MODULE_NAME, + false, false, false, false, false, + ), + ) + } + } + + override fun createViewManagers(reactContext: ReactApplicationContext): List> = + emptyList() +} diff --git a/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedRNFSManager.kt b/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedRNFSManager.kt new file mode 100644 index 0000000..cdfa217 --- /dev/null +++ b/apps/fs-experiment/android/app/src/main/java/com/multinstance/fsexperiment/SandboxedRNFSManager.kt @@ -0,0 +1,407 @@ +package com.multinstance.fsexperiment + +import android.util.Base64 +import android.util.Log +import com.facebook.react.bridge.Arguments +import com.facebook.react.bridge.Promise +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.bridge.ReactContextBaseJavaModule +import com.facebook.react.bridge.ReactMethod +import com.facebook.react.bridge.ReadableArray +import com.facebook.react.bridge.ReadableMap +import com.facebook.react.module.annotations.ReactModule +import io.callstack.rnsandbox.SandboxAwareModule +import java.io.File +import java.io.FileInputStream +import java.io.FileOutputStream +import java.io.RandomAccessFile +import java.security.MessageDigest +import java.util.concurrent.Executors +import java.util.concurrent.TimeUnit + +/** + * Sandboxed RNFSManager — jails all file paths to a per-origin directory. + * + * Mirrors the iOS SandboxedRNFSManager.mm implementation. Every path argument + * is validated against the sandbox root. Directory constants exposed to JS + * (RNFSDocumentDirectoryPath, etc.) are overridden to point into the sandbox. + */ +@ReactModule(name = SandboxedRNFSManager.MODULE_NAME) +class SandboxedRNFSManager( + private val reactContext: ReactApplicationContext, +) : ReactContextBaseJavaModule(reactContext), SandboxAwareModule { + + companion object { + const val MODULE_NAME = "SandboxedRNFSManager" + private const val TAG = "SandboxedRNFSManager" + } + + private val executor = Executors.newSingleThreadExecutor() + + private var sandboxRoot: String = "" + private var documentsDir: String = "" + private var cachesDir: String = "" + private var tempDir: String = "" + @Volatile private var configured = false + + override fun getName(): String = MODULE_NAME + + override fun configureSandbox(origin: String, requestedName: String, resolvedName: String) { + Log.d(TAG, "Configuring for origin '$origin'") + val base = File(reactContext.filesDir, "Sandboxes/$origin") + sandboxRoot = base.absolutePath + documentsDir = File(base, "Documents").absolutePath + cachesDir = File(base, "Caches").absolutePath + tempDir = File(base, "tmp").absolutePath + + listOf(documentsDir, cachesDir, tempDir).forEach { File(it).mkdirs() } + configured = true + } + + override fun invalidate() { + executor.shutdown() + try { + executor.awaitTermination(2, TimeUnit.SECONDS) + } catch (_: InterruptedException) { + executor.shutdownNow() + } + configured = false + super.invalidate() + } + + private fun sandboxedPath(path: String, promise: Promise): String? { + if (!configured) { + promise.reject("EPERM", "SandboxedRNFSManager: sandbox not configured.") + return null + } + val resolved = if (path.startsWith("/")) { + File(path).canonicalPath + } else { + File(documentsDir, path).canonicalPath + } + if (resolved.startsWith(sandboxRoot)) return resolved + promise.reject("EPERM", "Path '$path' is outside the sandbox. Allowed root: $sandboxRoot") + return null + } + + override fun getConstants(): Map { + if (!configured) return emptyMap() + return mapOf( + "RNFSMainBundlePath" to documentsDir, + "RNFSCachesDirectoryPath" to cachesDir, + "RNFSDocumentDirectoryPath" to documentsDir, + "RNFSExternalDirectoryPath" to null, + "RNFSExternalStorageDirectoryPath" to null, + "RNFSExternalCachesDirectoryPath" to null, + "RNFSDownloadDirectoryPath" to null, + "RNFSTemporaryDirectoryPath" to tempDir, + "RNFSLibraryDirectoryPath" to null, + "RNFSPicturesDirectoryPath" to null, + "RNFSFileTypeRegular" to "NSFileTypeRegular", + "RNFSFileTypeDirectory" to "NSFileTypeDirectory", + ) + } + + @ReactMethod + fun writeFile(filepath: String, base64Content: String, options: ReadableMap?, promise: Promise) { + val path = sandboxedPath(filepath, promise) ?: return + executor.execute { + try { + val data = Base64.decode(base64Content, Base64.DEFAULT) + File(path).parentFile?.mkdirs() + FileOutputStream(path).use { it.write(data) } + promise.resolve(null) + } catch (e: Exception) { + promise.reject("ENOENT", "Could not write to '$path': ${e.message}", e) + } + } + } + + @ReactMethod + fun readFile(filepath: String, promise: Promise) { + val path = sandboxedPath(filepath, promise) ?: return + executor.execute { + try { + val file = File(path) + if (!file.exists()) { + promise.reject("ENOENT", "No such file '$path'") + return@execute + } + val data = file.readBytes() + promise.resolve(Base64.encodeToString(data, Base64.NO_WRAP)) + } catch (e: Exception) { + promise.reject("ENOENT", "Could not read '$path': ${e.message}", e) + } + } + } + + @ReactMethod + fun readDir(dirPath: String, promise: Promise) { + val path = sandboxedPath(dirPath, promise) ?: return + executor.execute { + try { + val dir = File(path) + if (!dir.exists() || !dir.isDirectory) { + promise.reject("ENOENT", "No such directory '$path'") + return@execute + } + val result = Arguments.createArray() + dir.listFiles()?.forEach { file -> + val item = Arguments.createMap() + item.putDouble("ctime", file.lastModified() / 1000.0) + item.putDouble("mtime", file.lastModified() / 1000.0) + item.putString("name", file.name) + item.putString("path", file.absolutePath) + item.putDouble("size", file.length().toDouble()) + item.putString("type", if (file.isDirectory) "NSFileTypeDirectory" else "NSFileTypeRegular") + result.pushMap(item) + } + promise.resolve(result) + } catch (e: Exception) { + promise.reject("ENOENT", e.message, e) + } + } + } + + @ReactMethod + fun exists(filepath: String, promise: Promise) { + val path = sandboxedPath(filepath, promise) ?: return + executor.execute { promise.resolve(File(path).exists()) } + } + + @ReactMethod + fun stat(filepath: String, promise: Promise) { + val path = sandboxedPath(filepath, promise) ?: return + executor.execute { + try { + val file = File(path) + if (!file.exists()) { + promise.reject("ENOENT", "No such file '$path'") + return@execute + } + val result = Arguments.createMap() + result.putDouble("ctime", file.lastModified() / 1000.0) + result.putDouble("mtime", file.lastModified() / 1000.0) + result.putDouble("size", file.length().toDouble()) + result.putString("type", if (file.isDirectory) "NSFileTypeDirectory" else "NSFileTypeRegular") + result.putInt("mode", 0) + promise.resolve(result) + } catch (e: Exception) { + promise.reject("ENOENT", e.message, e) + } + } + } + + @ReactMethod + fun unlink(filepath: String, promise: Promise) { + val path = sandboxedPath(filepath, promise) ?: return + executor.execute { + try { + val file = File(path) + if (file.isDirectory) { + file.deleteRecursively() + } else { + file.delete() + } + promise.resolve(null) + } catch (e: Exception) { + promise.reject("ENOENT", e.message, e) + } + } + } + + @ReactMethod + fun mkdir(filepath: String, options: ReadableMap?, promise: Promise) { + val path = sandboxedPath(filepath, promise) ?: return + executor.execute { + try { + File(path).mkdirs() + promise.resolve(null) + } catch (e: Exception) { + promise.reject("ENOENT", e.message, e) + } + } + } + + @ReactMethod + fun moveFile(filepath: String, destPath: String, options: ReadableMap?, promise: Promise) { + val src = sandboxedPath(filepath, promise) ?: return + val dst = sandboxedPath(destPath, promise) ?: return + executor.execute { + try { + val srcFile = File(src) + val dstFile = File(dst) + dstFile.parentFile?.mkdirs() + if (!srcFile.renameTo(dstFile)) { + srcFile.copyTo(dstFile, overwrite = true) + srcFile.delete() + } + promise.resolve(null) + } catch (e: Exception) { + promise.reject("ENOENT", e.message, e) + } + } + } + + @ReactMethod + fun copyFile(filepath: String, destPath: String, options: ReadableMap?, promise: Promise) { + val src = sandboxedPath(filepath, promise) ?: return + val dst = sandboxedPath(destPath, promise) ?: return + executor.execute { + try { + File(dst).parentFile?.mkdirs() + File(src).copyTo(File(dst), overwrite = true) + promise.resolve(null) + } catch (e: Exception) { + promise.reject("ENOENT", e.message, e) + } + } + } + + @ReactMethod + fun appendFile(filepath: String, base64Content: String, promise: Promise) { + val path = sandboxedPath(filepath, promise) ?: return + executor.execute { + try { + val data = Base64.decode(base64Content, Base64.DEFAULT) + FileOutputStream(path, true).use { it.write(data) } + promise.resolve(null) + } catch (e: Exception) { + promise.reject("ENOENT", e.message, e) + } + } + } + + @ReactMethod + fun write(filepath: String, base64Content: String, position: Int, promise: Promise) { + val path = sandboxedPath(filepath, promise) ?: return + executor.execute { + try { + val data = Base64.decode(base64Content, Base64.DEFAULT) + RandomAccessFile(path, "rw").use { raf -> + if (position >= 0) raf.seek(position.toLong()) else raf.seek(raf.length()) + raf.write(data) + } + promise.resolve(null) + } catch (e: Exception) { + promise.reject("ENOENT", e.message, e) + } + } + } + + @ReactMethod + fun read(filepath: String, length: Int, position: Int, promise: Promise) { + val path = sandboxedPath(filepath, promise) ?: return + executor.execute { + try { + val file = File(path) + if (!file.exists()) { + promise.reject("ENOENT", "No such file '$path'") + return@execute + } + FileInputStream(path).use { fis -> + fis.skip(position.toLong()) + val buf = if (length > 0) ByteArray(length) else file.readBytes() + val bytesRead = if (length > 0) fis.read(buf) else buf.size + val result = if (bytesRead > 0) { + Base64.encodeToString(buf, 0, bytesRead, Base64.NO_WRAP) + } else "" + promise.resolve(result) + } + } catch (e: Exception) { + promise.reject("ENOENT", e.message, e) + } + } + } + + @ReactMethod + fun hash(filepath: String, algorithm: String, promise: Promise) { + val path = sandboxedPath(filepath, promise) ?: return + executor.execute { + try { + val algoMap = mapOf( + "md5" to "MD5", "sha1" to "SHA-1", "sha224" to "SHA-224", + "sha256" to "SHA-256", "sha384" to "SHA-384", "sha512" to "SHA-512" + ) + val javaAlgo = algoMap[algorithm] + if (javaAlgo == null) { + promise.reject("Error", "Invalid hash algorithm '$algorithm'") + return@execute + } + val md = MessageDigest.getInstance(javaAlgo) + FileInputStream(path).use { fis -> + val buf = ByteArray(8192) + var len: Int + while (fis.read(buf).also { len = it } != -1) md.update(buf, 0, len) + } + val hex = md.digest().joinToString("") { "%02x".format(it) } + promise.resolve(hex) + } catch (e: Exception) { + promise.reject("Error", e.message, e) + } + } + } + + @ReactMethod + fun getFSInfo(promise: Promise) { + if (!configured) { + promise.reject("EPERM", "SandboxedRNFSManager: sandbox not configured.") + return + } + executor.execute { + try { + val stat = android.os.StatFs(sandboxRoot) + val result = Arguments.createMap() + result.putDouble("totalSpace", stat.totalBytes.toDouble()) + result.putDouble("freeSpace", stat.availableBytes.toDouble()) + promise.resolve(result) + } catch (e: Exception) { + promise.reject("Error", e.message, e) + } + } + } + + @ReactMethod + fun touch(filepath: String, mtime: Double, ctime: Double, promise: Promise) { + val path = sandboxedPath(filepath, promise) ?: return + executor.execute { + try { + File(path).setLastModified((mtime * 1000).toLong()) + promise.resolve(null) + } catch (e: Exception) { + promise.reject("ENOENT", e.message, e) + } + } + } + + @ReactMethod + fun downloadFile(options: ReadableMap, promise: Promise) { + promise.reject("EPERM", "downloadFile is not available in sandboxed mode") + } + + @ReactMethod + fun stopDownload(jobId: Int) { + Log.w(TAG, "stopDownload blocked in sandbox") + } + + @ReactMethod + fun uploadFiles(options: ReadableMap, promise: Promise) { + promise.reject("EPERM", "uploadFiles is not available in sandboxed mode") + } + + @ReactMethod + fun pathForBundle(bundleName: String, promise: Promise) { + promise.reject("EPERM", "pathForBundle is not available in sandboxed mode") + } + + @ReactMethod + fun pathForGroup(groupId: String, promise: Promise) { + promise.reject("EPERM", "pathForGroup is not available in sandboxed mode") + } + + @ReactMethod + fun addListener(eventName: String) = Unit + + @ReactMethod + fun removeListeners(count: Double) = Unit +} diff --git a/apps/fs-experiment/ios/MultInstance-FSExperiment.xcodeproj/project.pbxproj b/apps/fs-experiment/ios/MultInstance-FSExperiment.xcodeproj/project.pbxproj index e6f70cc..67ba2b1 100644 --- a/apps/fs-experiment/ios/MultInstance-FSExperiment.xcodeproj/project.pbxproj +++ b/apps/fs-experiment/ios/MultInstance-FSExperiment.xcodeproj/project.pbxproj @@ -410,7 +410,7 @@ "$(inherited)", " ", ); - REACT_NATIVE_PATH = "${PODS_ROOT}/../../../../node_modules/react-native"; + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; USE_HERMES = true; @@ -488,7 +488,7 @@ "$(inherited)", " ", ); - REACT_NATIVE_PATH = "${PODS_ROOT}/../../../../node_modules/react-native"; + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; USE_HERMES = true; VALIDATE_PRODUCT = YES; diff --git a/apps/fs-experiment/ios/Podfile.lock b/apps/fs-experiment/ios/Podfile.lock index 3fd4cf4..2e7d91a 100644 --- a/apps/fs-experiment/ios/Podfile.lock +++ b/apps/fs-experiment/ios/Podfile.lock @@ -2019,7 +2019,7 @@ PODS: - React-timing - React-utils - SocketRocket - - React-Sandbox (0.4.1): + - React-Sandbox (0.5.0): - boost - DoubleConversion - fast_float @@ -2217,84 +2217,84 @@ PODS: - ZIPFoundation (0.9.19) DEPENDENCIES: - - boost (from `../../../node_modules/react-native/third-party-podspecs/boost.podspec`) - - DoubleConversion (from `../../../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - - fast_float (from `../../../node_modules/react-native/third-party-podspecs/fast_float.podspec`) - - FBLazyVector (from `../../../node_modules/react-native/Libraries/FBLazyVector`) - - fmt (from `../../../node_modules/react-native/third-party-podspecs/fmt.podspec`) - - glog (from `../../../node_modules/react-native/third-party-podspecs/glog.podspec`) - - hermes-engine (from `../../../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) - - RCT-Folly (from `../../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - - RCTDeprecation (from `../../../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) - - RCTRequired (from `../../../node_modules/react-native/Libraries/Required`) - - RCTTypeSafety (from `../../../node_modules/react-native/Libraries/TypeSafety`) - - React (from `../../../node_modules/react-native/`) - - React-callinvoker (from `../../../node_modules/react-native/ReactCommon/callinvoker`) - - React-Core (from `../../../node_modules/react-native/`) - - React-Core/RCTWebSocket (from `../../../node_modules/react-native/`) - - React-CoreModules (from `../../../node_modules/react-native/React/CoreModules`) - - React-cxxreact (from `../../../node_modules/react-native/ReactCommon/cxxreact`) - - React-debug (from `../../../node_modules/react-native/ReactCommon/react/debug`) - - React-defaultsnativemodule (from `../../../node_modules/react-native/ReactCommon/react/nativemodule/defaults`) - - React-domnativemodule (from `../../../node_modules/react-native/ReactCommon/react/nativemodule/dom`) - - React-Fabric (from `../../../node_modules/react-native/ReactCommon`) - - React-FabricComponents (from `../../../node_modules/react-native/ReactCommon`) - - React-FabricImage (from `../../../node_modules/react-native/ReactCommon`) - - React-featureflags (from `../../../node_modules/react-native/ReactCommon/react/featureflags`) - - React-featureflagsnativemodule (from `../../../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`) - - React-graphics (from `../../../node_modules/react-native/ReactCommon/react/renderer/graphics`) - - React-hermes (from `../../../node_modules/react-native/ReactCommon/hermes`) - - React-idlecallbacksnativemodule (from `../../../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`) - - React-ImageManager (from `../../../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) - - React-jserrorhandler (from `../../../node_modules/react-native/ReactCommon/jserrorhandler`) - - React-jsi (from `../../../node_modules/react-native/ReactCommon/jsi`) - - React-jsiexecutor (from `../../../node_modules/react-native/ReactCommon/jsiexecutor`) - - React-jsinspector (from `../../../node_modules/react-native/ReactCommon/jsinspector-modern`) - - React-jsinspectorcdp (from `../../../node_modules/react-native/ReactCommon/jsinspector-modern/cdp`) - - React-jsinspectornetwork (from `../../../node_modules/react-native/ReactCommon/jsinspector-modern/network`) - - React-jsinspectortracing (from `../../../node_modules/react-native/ReactCommon/jsinspector-modern/tracing`) - - React-jsitooling (from `../../../node_modules/react-native/ReactCommon/jsitooling`) - - React-jsitracing (from `../../../node_modules/react-native/ReactCommon/hermes/executor/`) - - React-logger (from `../../../node_modules/react-native/ReactCommon/logger`) - - React-Mapbuffer (from `../../../node_modules/react-native/ReactCommon`) - - React-microtasksnativemodule (from `../../../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) - - React-NativeModulesApple (from `../../../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) - - React-oscompat (from `../../../node_modules/react-native/ReactCommon/oscompat`) - - React-perflogger (from `../../../node_modules/react-native/ReactCommon/reactperflogger`) - - React-performancetimeline (from `../../../node_modules/react-native/ReactCommon/react/performance/timeline`) - - React-RCTActionSheet (from `../../../node_modules/react-native/Libraries/ActionSheetIOS`) - - React-RCTAnimation (from `../../../node_modules/react-native/Libraries/NativeAnimation`) - - React-RCTAppDelegate (from `../../../node_modules/react-native/Libraries/AppDelegate`) - - React-RCTBlob (from `../../../node_modules/react-native/Libraries/Blob`) - - React-RCTFabric (from `../../../node_modules/react-native/React`) - - React-RCTFBReactNativeSpec (from `../../../node_modules/react-native/React`) - - React-RCTImage (from `../../../node_modules/react-native/Libraries/Image`) - - React-RCTLinking (from `../../../node_modules/react-native/Libraries/LinkingIOS`) - - React-RCTNetwork (from `../../../node_modules/react-native/Libraries/Network`) - - React-RCTRuntime (from `../../../node_modules/react-native/React/Runtime`) - - React-RCTSettings (from `../../../node_modules/react-native/Libraries/Settings`) - - React-RCTText (from `../../../node_modules/react-native/Libraries/Text`) - - React-RCTVibration (from `../../../node_modules/react-native/Libraries/Vibration`) - - React-rendererconsistency (from `../../../node_modules/react-native/ReactCommon/react/renderer/consistency`) - - React-renderercss (from `../../../node_modules/react-native/ReactCommon/react/renderer/css`) - - React-rendererdebug (from `../../../node_modules/react-native/ReactCommon/react/renderer/debug`) - - React-rncore (from `../../../node_modules/react-native/ReactCommon`) - - React-RuntimeApple (from `../../../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) - - React-RuntimeCore (from `../../../node_modules/react-native/ReactCommon/react/runtime`) - - React-runtimeexecutor (from `../../../node_modules/react-native/ReactCommon/runtimeexecutor`) - - React-RuntimeHermes (from `../../../node_modules/react-native/ReactCommon/react/runtime`) - - React-runtimescheduler (from `../../../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) + - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) + - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - fast_float (from `../node_modules/react-native/third-party-podspecs/fast_float.podspec`) + - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) + - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) + - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) + - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) + - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) + - RCTRequired (from `../node_modules/react-native/Libraries/Required`) + - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) + - React (from `../node_modules/react-native/`) + - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) + - React-Core (from `../node_modules/react-native/`) + - React-Core/RCTWebSocket (from `../node_modules/react-native/`) + - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) + - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) + - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) + - React-defaultsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/defaults`) + - React-domnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/dom`) + - React-Fabric (from `../node_modules/react-native/ReactCommon`) + - React-FabricComponents (from `../node_modules/react-native/ReactCommon`) + - React-FabricImage (from `../node_modules/react-native/ReactCommon`) + - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) + - React-featureflagsnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/featureflags`) + - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) + - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) + - React-idlecallbacksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks`) + - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) + - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) + - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) + - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) + - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) + - React-jsinspectorcdp (from `../node_modules/react-native/ReactCommon/jsinspector-modern/cdp`) + - React-jsinspectornetwork (from `../node_modules/react-native/ReactCommon/jsinspector-modern/network`) + - React-jsinspectortracing (from `../node_modules/react-native/ReactCommon/jsinspector-modern/tracing`) + - React-jsitooling (from `../node_modules/react-native/ReactCommon/jsitooling`) + - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) + - React-logger (from `../node_modules/react-native/ReactCommon/logger`) + - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) + - React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`) + - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) + - React-oscompat (from `../node_modules/react-native/ReactCommon/oscompat`) + - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) + - React-performancetimeline (from `../node_modules/react-native/ReactCommon/react/performance/timeline`) + - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) + - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) + - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) + - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) + - React-RCTFabric (from `../node_modules/react-native/React`) + - React-RCTFBReactNativeSpec (from `../node_modules/react-native/React`) + - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) + - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) + - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) + - React-RCTRuntime (from `../node_modules/react-native/React/Runtime`) + - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) + - React-RCTText (from `../node_modules/react-native/Libraries/Text`) + - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) + - React-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`) + - React-renderercss (from `../node_modules/react-native/ReactCommon/react/renderer/css`) + - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) + - React-rncore (from `../node_modules/react-native/ReactCommon`) + - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) + - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) + - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) - "React-Sandbox (from `../../../node_modules/@callstack/react-native-sandbox`)" - - React-timing (from `../../../node_modules/react-native/ReactCommon/react/timing`) - - React-utils (from `../../../node_modules/react-native/ReactCommon/react/utils`) + - React-timing (from `../node_modules/react-native/ReactCommon/react/timing`) + - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) - ReactAppDependencyProvider (from `build/generated/ios`) - ReactCodegen (from `build/generated/ios`) - - ReactCommon/turbomodule/core (from `../../../node_modules/react-native/ReactCommon`) + - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - ReactNativeFileAccess (from `../../../node_modules/react-native-file-access`) - "RNCAsyncStorage (from `../../../node_modules/@react-native-async-storage/async-storage`)" - RNFS (from `../../../node_modules/react-native-fs`) - SocketRocket (~> 0.7.1) - - Yoga (from `../../../node_modules/react-native/ReactCommon/yoga`) + - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) SPEC REPOS: trunk: @@ -2303,150 +2303,150 @@ SPEC REPOS: EXTERNAL SOURCES: boost: - :podspec: "../../../node_modules/react-native/third-party-podspecs/boost.podspec" + :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" DoubleConversion: - :podspec: "../../../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" fast_float: - :podspec: "../../../node_modules/react-native/third-party-podspecs/fast_float.podspec" + :podspec: "../node_modules/react-native/third-party-podspecs/fast_float.podspec" FBLazyVector: - :path: "../../../node_modules/react-native/Libraries/FBLazyVector" + :path: "../node_modules/react-native/Libraries/FBLazyVector" fmt: - :podspec: "../../../node_modules/react-native/third-party-podspecs/fmt.podspec" + :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" glog: - :podspec: "../../../node_modules/react-native/third-party-podspecs/glog.podspec" + :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" hermes-engine: - :podspec: "../../../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" + :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" :tag: hermes-2025-05-06-RNv0.80.0-4eb6132a5bf0450bf4c6c91987675381d7ac8bca RCT-Folly: - :podspec: "../../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" + :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTDeprecation: - :path: "../../../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" + :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" RCTRequired: - :path: "../../../node_modules/react-native/Libraries/Required" + :path: "../node_modules/react-native/Libraries/Required" RCTTypeSafety: - :path: "../../../node_modules/react-native/Libraries/TypeSafety" + :path: "../node_modules/react-native/Libraries/TypeSafety" React: - :path: "../../../node_modules/react-native/" + :path: "../node_modules/react-native/" React-callinvoker: - :path: "../../../node_modules/react-native/ReactCommon/callinvoker" + :path: "../node_modules/react-native/ReactCommon/callinvoker" React-Core: - :path: "../../../node_modules/react-native/" + :path: "../node_modules/react-native/" React-CoreModules: - :path: "../../../node_modules/react-native/React/CoreModules" + :path: "../node_modules/react-native/React/CoreModules" React-cxxreact: - :path: "../../../node_modules/react-native/ReactCommon/cxxreact" + :path: "../node_modules/react-native/ReactCommon/cxxreact" React-debug: - :path: "../../../node_modules/react-native/ReactCommon/react/debug" + :path: "../node_modules/react-native/ReactCommon/react/debug" React-defaultsnativemodule: - :path: "../../../node_modules/react-native/ReactCommon/react/nativemodule/defaults" + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/defaults" React-domnativemodule: - :path: "../../../node_modules/react-native/ReactCommon/react/nativemodule/dom" + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/dom" React-Fabric: - :path: "../../../node_modules/react-native/ReactCommon" + :path: "../node_modules/react-native/ReactCommon" React-FabricComponents: - :path: "../../../node_modules/react-native/ReactCommon" + :path: "../node_modules/react-native/ReactCommon" React-FabricImage: - :path: "../../../node_modules/react-native/ReactCommon" + :path: "../node_modules/react-native/ReactCommon" React-featureflags: - :path: "../../../node_modules/react-native/ReactCommon/react/featureflags" + :path: "../node_modules/react-native/ReactCommon/react/featureflags" React-featureflagsnativemodule: - :path: "../../../node_modules/react-native/ReactCommon/react/nativemodule/featureflags" + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/featureflags" React-graphics: - :path: "../../../node_modules/react-native/ReactCommon/react/renderer/graphics" + :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" React-hermes: - :path: "../../../node_modules/react-native/ReactCommon/hermes" + :path: "../node_modules/react-native/ReactCommon/hermes" React-idlecallbacksnativemodule: - :path: "../../../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks" + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/idlecallbacks" React-ImageManager: - :path: "../../../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" + :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" React-jserrorhandler: - :path: "../../../node_modules/react-native/ReactCommon/jserrorhandler" + :path: "../node_modules/react-native/ReactCommon/jserrorhandler" React-jsi: - :path: "../../../node_modules/react-native/ReactCommon/jsi" + :path: "../node_modules/react-native/ReactCommon/jsi" React-jsiexecutor: - :path: "../../../node_modules/react-native/ReactCommon/jsiexecutor" + :path: "../node_modules/react-native/ReactCommon/jsiexecutor" React-jsinspector: - :path: "../../../node_modules/react-native/ReactCommon/jsinspector-modern" + :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" React-jsinspectorcdp: - :path: "../../../node_modules/react-native/ReactCommon/jsinspector-modern/cdp" + :path: "../node_modules/react-native/ReactCommon/jsinspector-modern/cdp" React-jsinspectornetwork: - :path: "../../../node_modules/react-native/ReactCommon/jsinspector-modern/network" + :path: "../node_modules/react-native/ReactCommon/jsinspector-modern/network" React-jsinspectortracing: - :path: "../../../node_modules/react-native/ReactCommon/jsinspector-modern/tracing" + :path: "../node_modules/react-native/ReactCommon/jsinspector-modern/tracing" React-jsitooling: - :path: "../../../node_modules/react-native/ReactCommon/jsitooling" + :path: "../node_modules/react-native/ReactCommon/jsitooling" React-jsitracing: - :path: "../../../node_modules/react-native/ReactCommon/hermes/executor/" + :path: "../node_modules/react-native/ReactCommon/hermes/executor/" React-logger: - :path: "../../../node_modules/react-native/ReactCommon/logger" + :path: "../node_modules/react-native/ReactCommon/logger" React-Mapbuffer: - :path: "../../../node_modules/react-native/ReactCommon" + :path: "../node_modules/react-native/ReactCommon" React-microtasksnativemodule: - :path: "../../../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks" React-NativeModulesApple: - :path: "../../../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" React-oscompat: - :path: "../../../node_modules/react-native/ReactCommon/oscompat" + :path: "../node_modules/react-native/ReactCommon/oscompat" React-perflogger: - :path: "../../../node_modules/react-native/ReactCommon/reactperflogger" + :path: "../node_modules/react-native/ReactCommon/reactperflogger" React-performancetimeline: - :path: "../../../node_modules/react-native/ReactCommon/react/performance/timeline" + :path: "../node_modules/react-native/ReactCommon/react/performance/timeline" React-RCTActionSheet: - :path: "../../../node_modules/react-native/Libraries/ActionSheetIOS" + :path: "../node_modules/react-native/Libraries/ActionSheetIOS" React-RCTAnimation: - :path: "../../../node_modules/react-native/Libraries/NativeAnimation" + :path: "../node_modules/react-native/Libraries/NativeAnimation" React-RCTAppDelegate: - :path: "../../../node_modules/react-native/Libraries/AppDelegate" + :path: "../node_modules/react-native/Libraries/AppDelegate" React-RCTBlob: - :path: "../../../node_modules/react-native/Libraries/Blob" + :path: "../node_modules/react-native/Libraries/Blob" React-RCTFabric: - :path: "../../../node_modules/react-native/React" + :path: "../node_modules/react-native/React" React-RCTFBReactNativeSpec: - :path: "../../../node_modules/react-native/React" + :path: "../node_modules/react-native/React" React-RCTImage: - :path: "../../../node_modules/react-native/Libraries/Image" + :path: "../node_modules/react-native/Libraries/Image" React-RCTLinking: - :path: "../../../node_modules/react-native/Libraries/LinkingIOS" + :path: "../node_modules/react-native/Libraries/LinkingIOS" React-RCTNetwork: - :path: "../../../node_modules/react-native/Libraries/Network" + :path: "../node_modules/react-native/Libraries/Network" React-RCTRuntime: - :path: "../../../node_modules/react-native/React/Runtime" + :path: "../node_modules/react-native/React/Runtime" React-RCTSettings: - :path: "../../../node_modules/react-native/Libraries/Settings" + :path: "../node_modules/react-native/Libraries/Settings" React-RCTText: - :path: "../../../node_modules/react-native/Libraries/Text" + :path: "../node_modules/react-native/Libraries/Text" React-RCTVibration: - :path: "../../../node_modules/react-native/Libraries/Vibration" + :path: "../node_modules/react-native/Libraries/Vibration" React-rendererconsistency: - :path: "../../../node_modules/react-native/ReactCommon/react/renderer/consistency" + :path: "../node_modules/react-native/ReactCommon/react/renderer/consistency" React-renderercss: - :path: "../../../node_modules/react-native/ReactCommon/react/renderer/css" + :path: "../node_modules/react-native/ReactCommon/react/renderer/css" React-rendererdebug: - :path: "../../../node_modules/react-native/ReactCommon/react/renderer/debug" + :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" React-rncore: - :path: "../../../node_modules/react-native/ReactCommon" + :path: "../node_modules/react-native/ReactCommon" React-RuntimeApple: - :path: "../../../node_modules/react-native/ReactCommon/react/runtime/platform/ios" + :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" React-RuntimeCore: - :path: "../../../node_modules/react-native/ReactCommon/react/runtime" + :path: "../node_modules/react-native/ReactCommon/react/runtime" React-runtimeexecutor: - :path: "../../../node_modules/react-native/ReactCommon/runtimeexecutor" + :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" React-RuntimeHermes: - :path: "../../../node_modules/react-native/ReactCommon/react/runtime" + :path: "../node_modules/react-native/ReactCommon/react/runtime" React-runtimescheduler: - :path: "../../../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" + :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" React-Sandbox: :path: "../../../node_modules/@callstack/react-native-sandbox" React-timing: - :path: "../../../node_modules/react-native/ReactCommon/react/timing" + :path: "../node_modules/react-native/ReactCommon/react/timing" React-utils: - :path: "../../../node_modules/react-native/ReactCommon/react/utils" + :path: "../node_modules/react-native/ReactCommon/react/utils" ReactAppDependencyProvider: :path: build/generated/ios ReactCodegen: :path: build/generated/ios ReactCommon: - :path: "../../../node_modules/react-native/ReactCommon" + :path: "../node_modules/react-native/ReactCommon" ReactNativeFileAccess: :path: "../../../node_modules/react-native-file-access" RNCAsyncStorage: @@ -2454,7 +2454,7 @@ EXTERNAL SOURCES: RNFS: :path: "../../../node_modules/react-native-fs" Yoga: - :path: "../../../node_modules/react-native/ReactCommon/yoga" + :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 @@ -2523,11 +2523,11 @@ SPEC CHECKSUMS: React-runtimeexecutor: 17c70842d5e611130cb66f91e247bc4a609c3508 React-RuntimeHermes: 3c88e6e1ea7ea0899dcffc77c10d61ea46688cfd React-runtimescheduler: 024500621c7c93d65371498abb4ee26d34f5d47d - React-Sandbox: 9c091813e335735668c62b2d3dbeb1456f93d8a5 + React-Sandbox: 2442ddfb1af32f596656b5604d43debe0b3e4268 React-timing: c3c923df2b86194e1682e01167717481232f1dc7 React-utils: 9154a037543147e1c24098f1a48fc8472602c092 ReactAppDependencyProvider: afd905e84ee36e1678016ae04d7370c75ed539be - ReactCodegen: 06bf9ae2e01a2416250cf5e44e4a06b1c9ea201b + ReactCodegen: f8d5fb047c4cd9d2caade972cad9edac22521362 ReactCommon: 17fd88849a174bf9ce45461912291aca711410fc ReactNativeFileAccess: f63160ff4e203afa99e04d9215c2ab946748b9e0 RNCAsyncStorage: 1f04c8d56558e533277beda29187f571cf7eecb2 @@ -2538,4 +2538,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 76e4115cdea15fa34db7c3b4a004fed7753cd0b7 -COCOAPODS: 1.16.2 +COCOAPODS: 1.15.2 diff --git a/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxAwareModule.kt b/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxAwareModule.kt new file mode 100644 index 0000000..534e7b9 --- /dev/null +++ b/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxAwareModule.kt @@ -0,0 +1,28 @@ +package io.callstack.rnsandbox + +/** + * Interface for native modules that need sandbox-specific configuration. + * + * When a native module is provided as a substitution in the sandbox, + * the sandbox delegate checks if it implements this interface and calls + * [configureSandbox] with context about the sandbox instance. + * + * This enables modules to scope their behavior per sandbox origin, + * e.g. sandboxing file system access to a per-origin directory or + * isolating AsyncStorage keys by origin. + */ +interface SandboxAwareModule { + /** + * Called by the sandbox delegate after module instantiation to provide + * sandbox-specific context. + * + * @param origin The sandbox origin identifier + * @param requestedName The module name sandbox JS code requested + * @param resolvedName The actual module name that was resolved + */ + fun configureSandbox( + origin: String, + requestedName: String, + resolvedName: String, + ) +} diff --git a/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxReactNativeDelegate.kt b/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxReactNativeDelegate.kt index 66648af..c008e5d 100644 --- a/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxReactNativeDelegate.kt +++ b/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxReactNativeDelegate.kt @@ -35,6 +35,33 @@ class SandboxReactNativeDelegate( private const val TAG = "SandboxRNDelegate" private val sharedHosts = mutableMapOf() + private val registeredSubstitutionPackages = mutableListOf() + private val registeredHostPackages = mutableListOf() + + /** + * Register ReactPackage instances that provide substitution modules. + * Call this from your Application.onCreate() before any sandbox views load. + */ + @JvmStatic + fun registerSubstitutionPackages(vararg packages: ReactPackage) { + registeredSubstitutionPackages.addAll(packages) + } + + /** + * Register the host app's autolinked ReactPackage instances so that + * allowed (non-substituted) third-party modules can be resolved inside + * the sandbox. Without this, only modules from MainReactPackage (RN + * built-ins) are available. + * + * Typically called from Application.onCreate(): + * ``` + * SandboxReactNativeDelegate.registerHostPackages(PackageList(this).packages) + * ``` + */ + @JvmStatic + fun registerHostPackages(packages: List) { + registeredHostPackages.addAll(packages) + } private data class SharedReactHost( val reactHost: ReactHostImpl, @@ -47,6 +74,7 @@ class SandboxReactNativeDelegate( var jsBundleSource: String = "" var allowedTurboModules: Set = emptySet() + var turboModuleSubstitutions: Map = emptyMap() var allowedOrigins: Set = emptySet() @JvmField var hasOnMessageHandler: Boolean = false @@ -89,9 +117,21 @@ class SandboxReactNativeDelegate( } else { sandboxContext = SandboxContextWrapper(context, origin) + val capturedSubstitutions = turboModuleSubstitutions.toMap() + val capturedSubstitutionPackages = registeredSubstitutionPackages.toList() + val capturedHostPackages = registeredHostPackages.toList() + val capturedOrigin = origin + val packages: List = listOf( - FilteredReactPackage(MainReactPackage(), capturedAllowedModules), + FilteredReactPackage( + MainReactPackage(), + capturedHostPackages, + capturedAllowedModules, + capturedSubstitutions, + capturedSubstitutionPackages, + capturedOrigin, + ), ) val bundleLoader = createBundleLoader(capturedBundleSource) ?: return null @@ -197,7 +237,7 @@ class SandboxReactNativeDelegate( Log.d(TAG, "Reloaded sandbox '$origin' with new bundle source via reflection") return true } catch (e: Exception) { - Log.w(TAG, "Reflection-based bundle reload failed, falling back to full rebuild: ${e.message}") + Log.d(TAG, "Reflection-based bundle reload failed, falling back to full rebuild: ${e.message}") return false } } @@ -346,23 +386,90 @@ class SandboxReactNativeDelegate( private class FilteredReactPackage( private val delegate: MainReactPackage, + private val hostPackages: List, private val allowedModules: Set, + private val substitutions: Map, + private val substitutionPackages: List, + private val origin: String, ) : BaseReactPackage() { + private val substitutedInstances = java.util.concurrent.ConcurrentHashMap() + + private val effectiveAllowed: Set by lazy { + allowedModules + substitutions.keys + } + override fun getModule( name: String, reactContext: ReactApplicationContext, ): NativeModule? { - if (!allowedModules.contains(name)) { - Log.w(TAG, "Blocked module '$name' — not in allowedTurboModules") + val resolvedName = substitutions[name] + if (resolvedName != null) { + substitutedInstances[name]?.let { return it } + + for (pkg in substitutionPackages) { + val module = + if (pkg is BaseReactPackage) { + pkg.getModule(resolvedName, reactContext) + } else { + pkg.createNativeModules(reactContext).firstOrNull { it.name == resolvedName } + } + if (module != null) { + if (module is SandboxAwareModule) { + module.configureSandbox(origin, name, resolvedName) + } + substitutedInstances[name] = module + Log.d(TAG, "Substituted '$name' -> '$resolvedName' (${module.javaClass.simpleName})") + return module + } + } + Log.w(TAG, "Substitution target '$resolvedName' not found in any package for '$name'") + return null + } + + if (!effectiveAllowed.contains(name)) { return null } - return delegate.getModule(name, reactContext) + + delegate.getModule(name, reactContext)?.let { return it } + + for (pkg in hostPackages) { + val module = + if (pkg is BaseReactPackage) { + pkg.getModule(name, reactContext) + } else { + pkg.createNativeModules(reactContext).firstOrNull { it.name == name } + } + if (module != null) return module + } + return null } override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { val delegateProvider = delegate.getReactModuleInfoProvider() + val hostProviders = + hostPackages.mapNotNull { + (it as? BaseReactPackage)?.getReactModuleInfoProvider() + } + val substitutionProviders = + substitutionPackages.mapNotNull { + (it as? BaseReactPackage)?.getReactModuleInfoProvider() + } return ReactModuleInfoProvider { - delegateProvider.getReactModuleInfos().filterKeys { allowedModules.contains(it) } + val infos = + delegateProvider + .getReactModuleInfos() + .filterKeys { effectiveAllowed.contains(it) } + .toMutableMap() + for (provider in hostProviders) { + infos.putAll(provider.getReactModuleInfos().filterKeys { effectiveAllowed.contains(it) }) + } + for ((requestedName, resolvedName) in substitutions) { + for (provider in substitutionProviders) { + val subInfos = provider.getReactModuleInfos() + subInfos[resolvedName]?.let { infos[requestedName] = it } + } + } + infos } } diff --git a/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxReactNativeView.kt b/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxReactNativeView.kt index 8619e91..0c1e938 100644 --- a/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxReactNativeView.kt +++ b/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxReactNativeView.kt @@ -27,6 +27,36 @@ class SandboxReactNativeView( } } + /** + * Fabric manages our dimensions but not our children's (they come from a + * separate ReactHost). Force children to fill the space Fabric gave us. + */ + override fun onLayout( + changed: Boolean, + left: Int, + top: Int, + right: Int, + bottom: Int, + ) { + super.onLayout(changed, left, top, right, bottom) + val w = right - left + val h = bottom - top + for (i in 0 until childCount) { + getChildAt(i).layout(0, 0, w, h) + } + } + + override fun requestLayout() { + super.requestLayout() + post { + measure( + MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), + MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY), + ) + layout(left, top, right, bottom) + } + } + fun emitOnMessage(data: WritableMap) { val reactContext = context as? ReactContext ?: return val surfaceId = UIManagerHelper.getSurfaceId(reactContext) diff --git a/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxReactNativeViewManager.kt b/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxReactNativeViewManager.kt index 1922c00..f6b0b42 100644 --- a/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxReactNativeViewManager.kt +++ b/packages/react-native-sandbox/android/src/main/java/io/callstack/rnsandbox/SandboxReactNativeViewManager.kt @@ -112,7 +112,35 @@ class SandboxReactNativeViewManager : it.getString(i)?.let { name -> modules.add(name) } } } - view.delegate?.allowedTurboModules = modules + val delegate = view.delegate ?: return + if (delegate.allowedTurboModules == modules) return + delegate.allowedTurboModules = modules + if (view.childCount > 0) { + scheduleLoad(view) + } + } + + @ReactProp(name = "turboModuleSubstitutions") + override fun setTurboModuleSubstitutions( + view: SandboxReactNativeView, + value: Dynamic, + ) { + val subs = mutableMapOf() + if (!value.isNull && value.type == ReadableType.Map) { + val map = value.asMap() ?: return + val it = map.keySetIterator() + while (it.hasNextKey()) { + val key = it.nextKey() + val v = map.getString(key) + if (v != null) subs[key] = v + } + } + val delegate = view.delegate ?: return + if (delegate.turboModuleSubstitutions == subs) return + delegate.turboModuleSubstitutions = subs + if (view.childCount > 0) { + scheduleLoad(view) + } } @ReactProp(name = "allowedOrigins") @@ -202,6 +230,7 @@ class SandboxReactNativeViewManager : FrameLayout.LayoutParams.MATCH_PARENT, ), ) + view.requestLayout() } private fun dynamicToBundle(dynamic: Dynamic): Bundle? {