@10play/expo-air 0.13.2 → 0.13.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,7 +32,7 @@ Pod::Spec.new do |s|
32
32
  s.pod_target_xcconfig = {
33
33
  'DEFINES_MODULE' => 'YES',
34
34
  'CLANG_CXX_LANGUAGE_STANDARD' => 'c++20',
35
- 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Public/React-RCTAppDelegate" "$(PODS_ROOT)/Headers/Public/ReactAppDependencyProvider" "$(PODS_ROOT)/Headers/Public/React-defaultsnativemodule" "$(PODS_ROOT)/Headers/Public/ReactCommon" "$(PODS_ROOT)/Headers/Public/React-NativeModulesApple" "$(PODS_ROOT)/Headers/Public/React-callinvoker"',
35
+ 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Public/React-RCTAppDelegate" "$(PODS_ROOT)/Headers/Public/ReactAppDependencyProvider" "$(PODS_ROOT)/Headers/Public/React-defaultsnativemodule" "$(PODS_ROOT)/Headers/Public/ReactCommon" "$(PODS_ROOT)/Headers/Public/React-NativeModulesApple" "$(PODS_ROOT)/Headers/Public/React-callinvoker" "$(PODS_ROOT)/Headers/Public/React-featureflags"',
36
36
  }
37
37
 
38
38
  s.source_files = "**/*.{h,m,mm,swift,hpp,cpp}"
@@ -13,6 +13,32 @@
13
13
  #import <react/nativemodule/defaults/DefaultTurboModules.h>
14
14
  #import <React/RCTBridge+Private.h>
15
15
  #import <objc/runtime.h>
16
+ #import <react/featureflags/ReactNativeFeatureFlags.h>
17
+ #import <react/featureflags/ReactNativeFeatureFlagsDefaults.h>
18
+
19
+ // ---------------------------------------------------------------------------
20
+ // Feature flags provider that ensures microtasks are enabled for the widget's
21
+ // Hermes runtime. The main app may use old architecture (bridge mode) which
22
+ // leaves enableBridgelessArchitecture=false, but our widget always needs
23
+ // bridgeless + microtasks to function with React 19.
24
+ // ---------------------------------------------------------------------------
25
+ namespace {
26
+ class WidgetFeatureFlagsProvider : public facebook::react::ReactNativeFeatureFlagsDefaults {
27
+ public:
28
+ bool enableBridgelessArchitecture() override { return true; }
29
+ };
30
+ } // namespace
31
+
32
+ static void ensureBridgelessFeatureFlags(void) {
33
+ static dispatch_once_t onceToken;
34
+ dispatch_once(&onceToken, ^{
35
+ if (!facebook::react::ReactNativeFeatureFlags::enableBridgelessArchitecture()) {
36
+ facebook::react::ReactNativeFeatureFlags::dangerouslyForceOverride(
37
+ std::make_unique<WidgetFeatureFlagsProvider>());
38
+ NSLog(@"[WidgetRuntime] Force-enabled bridgeless feature flags for widget microtask support");
39
+ }
40
+ });
41
+ }
16
42
 
17
43
  // ---------------------------------------------------------------------------
18
44
  // Swizzle RCTHost's didReceiveReloadCommand so the widget host can opt out
@@ -70,6 +96,10 @@ static void swizzleReloadOnce(void) {
70
96
 
71
97
  NSLog(@"[WidgetRuntime] Starting with bundle URL: %@", _bundleURL);
72
98
 
99
+ // Ensure bridgeless feature flags are enabled so Hermes creates
100
+ // its runtime with microtask support (required by React 19).
101
+ ensureBridgelessFeatureFlags();
102
+
73
103
  // Swizzle before the factory creates the RCTHost
74
104
  swizzleReloadOnce();
75
105
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@10play/expo-air",
3
- "version": "0.13.2",
3
+ "version": "0.13.3",
4
4
  "description": "Vibe Coding for React-Native",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -79,10 +79,7 @@
79
79
  "localtunnel": "^2.0.2",
80
80
  "plist": "^3.1.0",
81
81
  "tree-kill": "^1.2.2",
82
- "ws": "^8.18.0",
83
- "expo": "~54.0.32",
84
- "react": "19.1.0",
85
- "react-native": "0.81.5"
82
+ "ws": "^8.18.0"
86
83
  },
87
84
  "devDependencies": {
88
85
  "@types/localtunnel": "^2.0.4",