expo-brownfield 58.0.5 → 58.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/android/build.gradle +2 -2
- package/ios/ExpoBrownfieldModule.swift +1 -1
- package/ios/ExpoBrownfieldStateModule.swift +1 -1
- package/ios/Messaging.swift +17 -2
- package/ios/State.swift +21 -8
- package/package.json +4 -4
- package/prebuilds/output/debug/xcframeworks/ExpoBrownfield.tar.gz +0 -0
- package/prebuilds/output/release/xcframeworks/ExpoBrownfield.tar.gz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
### 💡 Others
|
|
12
12
|
|
|
13
|
+
## 58.0.6 — 2026-09-23
|
|
14
|
+
|
|
15
|
+
### 🐛 Bug fixes
|
|
16
|
+
|
|
17
|
+
- [iOS] Fix a data race on reload that could crash the app or stop the delivery of `onKeyRecreated` events and messages. ([#49560](https://github.com/expo/expo/pull/49560) by [@vonovak](https://github.com/vonovak))
|
|
18
|
+
|
|
13
19
|
## 58.0.5 — 2026-09-22
|
|
14
20
|
|
|
15
21
|
_This version does not introduce any user-facing changes._
|
package/android/build.gradle
CHANGED
|
@@ -4,7 +4,7 @@ plugins {
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
group = 'expo.modules.brownfield'
|
|
7
|
-
version = '58.0.
|
|
7
|
+
version = '58.0.6'
|
|
8
8
|
|
|
9
9
|
expoModule {
|
|
10
10
|
canBePublished false
|
|
@@ -14,7 +14,7 @@ android {
|
|
|
14
14
|
namespace "expo.modules.brownfield"
|
|
15
15
|
defaultConfig {
|
|
16
16
|
versionCode 1
|
|
17
|
-
versionName '58.0.
|
|
17
|
+
versionName '58.0.6'
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
|
package/ios/Messaging.swift
CHANGED
|
@@ -8,6 +8,7 @@ public typealias BrownfieldCallback = (BrownfieldMessage) -> Void
|
|
|
8
8
|
public class BrownfieldMessagingInternal {
|
|
9
9
|
public static let shared = BrownfieldMessagingInternal()
|
|
10
10
|
|
|
11
|
+
private let lock = NSLock()
|
|
11
12
|
private var listeners: [String: BrownfieldCallback] = [:]
|
|
12
13
|
private var expoModule: ExpoBrownfieldModule?
|
|
13
14
|
|
|
@@ -27,7 +28,11 @@ public class BrownfieldMessagingInternal {
|
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
public func sendMessage(_ message: BrownfieldMessage) {
|
|
30
|
-
|
|
31
|
+
lock.lock()
|
|
32
|
+
let module = expoModule
|
|
33
|
+
lock.unlock()
|
|
34
|
+
|
|
35
|
+
module?.sendMessage(message)
|
|
31
36
|
}
|
|
32
37
|
|
|
33
38
|
func emit(_ message: BrownfieldMessage) {
|
|
@@ -36,7 +41,17 @@ public class BrownfieldMessagingInternal {
|
|
|
36
41
|
}
|
|
37
42
|
}
|
|
38
43
|
|
|
39
|
-
func setExpoModule(_ expoModule: ExpoBrownfieldModule
|
|
44
|
+
func setExpoModule(_ expoModule: ExpoBrownfieldModule) {
|
|
45
|
+
lock.lock()
|
|
40
46
|
self.expoModule = expoModule
|
|
47
|
+
lock.unlock()
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
func clearExpoModule(_ expoModule: ExpoBrownfieldModule) {
|
|
51
|
+
lock.lock()
|
|
52
|
+
if self.expoModule === expoModule {
|
|
53
|
+
self.expoModule = nil
|
|
54
|
+
}
|
|
55
|
+
lock.unlock()
|
|
41
56
|
}
|
|
42
57
|
}
|
package/ios/State.swift
CHANGED
|
@@ -78,19 +78,32 @@ public final class BrownfieldStateInternal {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
public func maybeNotifyKeyRecreated(_ key: String) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
lock.
|
|
84
|
-
|
|
81
|
+
let module: ExpoBrownfieldStateModule?
|
|
82
|
+
do {
|
|
83
|
+
lock.lock()
|
|
84
|
+
defer { lock.unlock() }
|
|
85
|
+
if !deletedKeys.contains(key) {
|
|
86
|
+
return
|
|
87
|
+
}
|
|
88
|
+
deletedKeys.remove(key)
|
|
89
|
+
module = expoModule
|
|
85
90
|
}
|
|
86
|
-
deletedKeys.remove(key)
|
|
87
|
-
lock.unlock()
|
|
88
91
|
|
|
89
|
-
|
|
92
|
+
module?.notifyKeyRecreated(key)
|
|
90
93
|
}
|
|
91
94
|
|
|
92
|
-
public func setExpoModule(_ expoModule: ExpoBrownfieldStateModule
|
|
95
|
+
public func setExpoModule(_ expoModule: ExpoBrownfieldStateModule) {
|
|
96
|
+
lock.lock()
|
|
93
97
|
self.expoModule = expoModule
|
|
98
|
+
lock.unlock()
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
public func clearExpoModule(_ expoModule: ExpoBrownfieldStateModule) {
|
|
102
|
+
lock.lock()
|
|
103
|
+
if self.expoModule === expoModule {
|
|
104
|
+
self.expoModule = nil
|
|
105
|
+
}
|
|
106
|
+
lock.unlock()
|
|
94
107
|
}
|
|
95
108
|
|
|
96
109
|
public func notifySubscribers(_ key: String, _ value: Any?) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-brownfield",
|
|
3
|
-
"version": "58.0.
|
|
3
|
+
"version": "58.0.6",
|
|
4
4
|
"description": "Toolkit and APIs for adding brownfield setup to Expo projects",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"brownfield",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"chalk": "^4.1.2",
|
|
44
44
|
"commander": "^14.0.3",
|
|
45
45
|
"diff": "^5.2.0",
|
|
46
|
-
"expo-build-properties": "~58.0.
|
|
46
|
+
"expo-build-properties": "~58.0.6",
|
|
47
47
|
"expo-manifests": "~58.0.0",
|
|
48
48
|
"ora": "^5.4.1",
|
|
49
49
|
"prompts": "^2.4.2"
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@types/prompts": "^2.0.6",
|
|
57
57
|
"@types/react": "~19.3.0",
|
|
58
58
|
"create-expo": "5.1.2",
|
|
59
|
-
"expo": "58.0.0-preview.
|
|
59
|
+
"expo": "58.0.0-preview.6",
|
|
60
60
|
"expo-module-scripts": "56.0.3",
|
|
61
61
|
"glob": "^13.0.6"
|
|
62
62
|
},
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"react": "*",
|
|
66
66
|
"react-native": "*"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "8aeb4368d396d2d71a2fc8c652c4d1d4d53ed858",
|
|
69
69
|
"scripts": {
|
|
70
70
|
"precompile-ios": "et prebuild-package-for-publish",
|
|
71
71
|
"build": "pnpm run build:lib && pnpm run build:plugin && pnpm run build:cli",
|
|
Binary file
|
|
Binary file
|