expo-file-system 19.0.22 → 19.0.23

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.
Files changed (51) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/filesystem/FileSystemDirectory.kt +19 -2
  4. package/android/src/main/java/expo/modules/filesystem/FileSystemModule.kt +10 -4
  5. package/android/src/main/java/expo/modules/filesystem/FileSystemPath.kt +28 -3
  6. package/android/src/main/java/expo/modules/filesystem/legacy/FileSystemLegacyModule.kt +8 -4
  7. package/expo-module.config.json +1 -1
  8. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23-sources.jar +0 -0
  9. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23-sources.jar.md5 +1 -0
  10. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23-sources.jar.sha1 +1 -0
  11. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23-sources.jar.sha256 +1 -0
  12. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23-sources.jar.sha512 +1 -0
  13. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23.aar +0 -0
  14. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23.aar.md5 +1 -0
  15. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23.aar.sha1 +1 -0
  16. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23.aar.sha256 +1 -0
  17. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23.aar.sha512 +1 -0
  18. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{19.0.22/expo.modules.filesystem-19.0.22.module → 19.0.23/expo.modules.filesystem-19.0.23.module} +22 -22
  19. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23.module.md5 +1 -0
  20. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23.module.sha1 +1 -0
  21. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23.module.sha256 +1 -0
  22. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23.module.sha512 +1 -0
  23. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{19.0.22/expo.modules.filesystem-19.0.22.pom → 19.0.23/expo.modules.filesystem-19.0.23.pom} +1 -1
  24. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23.pom.md5 +1 -0
  25. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23.pom.sha1 +1 -0
  26. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23.pom.sha256 +1 -0
  27. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.23/expo.modules.filesystem-19.0.23.pom.sha512 +1 -0
  28. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml +4 -4
  29. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.md5 +1 -1
  30. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha1 +1 -1
  31. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha256 +1 -1
  32. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha512 +1 -1
  33. package/package.json +2 -2
  34. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22-sources.jar +0 -0
  35. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22-sources.jar.md5 +0 -1
  36. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22-sources.jar.sha1 +0 -1
  37. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22-sources.jar.sha256 +0 -1
  38. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22-sources.jar.sha512 +0 -1
  39. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.aar +0 -0
  40. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.aar.md5 +0 -1
  41. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.aar.sha1 +0 -1
  42. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.aar.sha256 +0 -1
  43. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.aar.sha512 +0 -1
  44. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.module.md5 +0 -1
  45. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.module.sha1 +0 -1
  46. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.module.sha256 +0 -1
  47. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.module.sha512 +0 -1
  48. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.pom.md5 +0 -1
  49. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.pom.sha1 +0 -1
  50. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.pom.sha256 +0 -1
  51. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.pom.sha512 +0 -1
package/CHANGELOG.md CHANGED
@@ -10,6 +10,18 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 19.0.23 — 2026-05-28
14
+
15
+ ### 🛠 Breaking changes
16
+
17
+ - [Android] In Expo Go, `Paths.cache` and `Paths.document` are now pointing to experience-isolated directories. ([#45977](https://github.com/expo/expo/pull/45977) by [@barthap](https://github.com/barthap))
18
+
19
+ ### 🐛 Bug fixes
20
+
21
+ - [Android] Added missing permission check to `delete()` in the next-gen File System API. ([#45967](https://github.com/expo/expo/pull/45967) by [@barthap](https://github.com/barthap))
22
+ - [Android] Fixed path traversal vulnerability in `createFile`, `createDirectory`, and `rename` that allowed escaping the parent directory. ([#45967](https://github.com/expo/expo/pull/45967) by [@barthap](https://github.com/barthap))
23
+ - [Android] Fixed `Paths.cache` and `Paths.document` pointing to wrong directory in Expo Go. ([#45977](https://github.com/expo/expo/pull/45977) by [@barthap](https://github.com/barthap))
24
+
13
25
  ## 19.0.22 — 2026-04-27
14
26
 
15
27
  _This version does not introduce any user-facing changes._
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'host.exp.exponent'
7
- version = '19.0.22'
7
+ version = '19.0.23'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.filesystem"
11
11
  defaultConfig {
12
12
  versionCode 30
13
- versionName "19.0.22"
13
+ versionName "19.0.23"
14
14
  }
15
15
  }
16
16
 
@@ -2,6 +2,7 @@ package expo.modules.filesystem
2
2
 
3
3
  import android.net.Uri
4
4
  import expo.modules.interfaces.filesystem.Permission
5
+ import java.io.File
5
6
 
6
7
  class FileSystemDirectory(uri: Uri) : FileSystemPath(uri) {
7
8
  fun validatePath() {
@@ -76,17 +77,33 @@ class FileSystemDirectory(uri: Uri) : FileSystemPath(uri) {
76
77
  fun createFile(mimeType: String?, fileName: String): FileSystemFile {
77
78
  validateType()
78
79
  validatePermission(Permission.WRITE)
79
- val newFile = file.createFile(mimeType ?: "text/plain", fileName) ?: throw UnableToCreateException("file could not be created")
80
+ validateChildTarget(fileName)
81
+ val newFile = file.createFile(mimeType ?: "text/plain", fileName)
82
+ ?: throw UnableToCreateException("file could not be created")
80
83
  return FileSystemFile(newFile.uri)
81
84
  }
82
85
 
83
86
  fun createDirectory(fileName: String): FileSystemDirectory {
84
87
  validateType()
85
88
  validatePermission(Permission.WRITE)
86
- val newDirectory = file.createDirectory(fileName) ?: throw UnableToCreateException("directory could not be created")
89
+ validateChildTarget(fileName)
90
+ val newDirectory = file.createDirectory(fileName)
91
+ ?: throw UnableToCreateException("directory could not be created")
87
92
  return FileSystemDirectory(newDirectory.uri)
88
93
  }
89
94
 
95
+ private fun validateChildTarget(fileName: String) {
96
+ validateFileSystemChildName(fileName)
97
+ if (uri.isContentUri || uri.isAssetUri) {
98
+ return
99
+ }
100
+ val parent = javaFile.canonicalFile
101
+ val child = File(parent, fileName).canonicalFile
102
+ if (child.parentFile?.canonicalPath != parent.canonicalPath) {
103
+ throw UnableToCreateException("child path escapes parent directory")
104
+ }
105
+ }
106
+
90
107
  // this function is internal and will be removed in the future (when returning arrays of shared objects is supported)
91
108
  fun listAsRecords(): List<Map<String, Any>> {
92
109
  validateType()
@@ -27,17 +27,23 @@ class FileSystemModule : Module() {
27
27
  private val context: Context
28
28
  get() = appContext.reactContext ?: throw Exceptions.AppContextLost()
29
29
 
30
+ private val filesDirectory: File
31
+ get() = appContext.persistentFilesDirectory
32
+
33
+ private val cacheDirectory: File
34
+ get() = appContext.cacheDirectory
35
+
30
36
  @RequiresApi(Build.VERSION_CODES.O)
31
37
  @OptIn(EitherType::class)
32
38
  override fun definition() = ModuleDefinition {
33
39
  Name("FileSystem")
34
40
 
35
41
  Constant("documentDirectory") {
36
- Uri.fromFile(context.filesDir).toString() + "/"
42
+ Uri.fromFile(filesDirectory).toString() + "/"
37
43
  }
38
44
 
39
45
  Constant("cacheDirectory") {
40
- Uri.fromFile(context.cacheDir).toString() + "/"
46
+ Uri.fromFile(cacheDirectory).toString() + "/"
41
47
  }
42
48
 
43
49
  Constant("bundleDirectory") {
@@ -45,11 +51,11 @@ class FileSystemModule : Module() {
45
51
  }
46
52
 
47
53
  Property("totalDiskSpace") {
48
- File(context.filesDir.path).totalSpace
54
+ filesDirectory.totalSpace
49
55
  }
50
56
 
51
57
  Property("availableDiskSpace") {
52
- File(context.filesDir.path).freeSpace
58
+ filesDirectory.freeSpace
53
59
  }
54
60
 
55
61
  AsyncFunction("downloadFileAsync") Coroutine { url: URI, to: FileSystemPath, options: DownloadOptions? ->
@@ -14,6 +14,16 @@ import java.util.EnumSet
14
14
  import java.util.regex.Pattern
15
15
  import kotlin.io.path.moveTo
16
16
 
17
+ internal fun validateFileSystemChildName(name: String) {
18
+ val invalid = name.isEmpty() ||
19
+ name == "." ||
20
+ name == ".." ||
21
+ name.any { it == '/' || it == '\\' }
22
+ if (invalid) {
23
+ throw UnableToCreateException("child name must be a single path segment")
24
+ }
25
+ }
26
+
17
27
  val Uri.isContentUri get(): Boolean {
18
28
  return scheme == "content"
19
29
  }
@@ -58,6 +68,7 @@ abstract class FileSystemPath(var uri: Uri) : SharedObject() {
58
68
  }
59
69
 
60
70
  fun delete() {
71
+ validatePermission(Permission.WRITE)
61
72
  if (!file.exists()) {
62
73
  throw UnableToDeleteException("uri '${file.uri}' does not exist")
63
74
  }
@@ -156,15 +167,29 @@ abstract class FileSystemPath(var uri: Uri) : SharedObject() {
156
167
  fun rename(newName: String) {
157
168
  validateType()
158
169
  validatePermission(Permission.WRITE)
159
- val newFile = File(javaFile.parent, newName)
170
+ validateFileSystemChildName(newName)
171
+ val parent = javaFile.parentFile
172
+ ?: throw UnableToCreateException("parent directory does not exist")
173
+ val parentCanonicalPath = parent.canonicalPath
174
+ val newFile = File(parent, newName)
175
+ if (newFile.canonicalFile.parentFile?.canonicalPath != parentCanonicalPath) {
176
+ throw UnableToCreateException("child path escapes parent directory")
177
+ }
160
178
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
161
179
  javaFile.toPath().moveTo(newFile.toPath())
162
- uri = newFile.toUri()
163
180
  } else {
164
181
  javaFile.copyTo(newFile)
165
182
  javaFile.delete()
166
- uri = newFile.toUri()
167
183
  }
184
+ uri = renamedUri(newName)
185
+ }
186
+
187
+ private fun renamedUri(newName: String): Uri {
188
+ val currentUri = uri.toString()
189
+ val currentPath = currentUri.trimEnd('/')
190
+ val parentUri = currentUri.substring(0, currentPath.lastIndexOf('/') + 1)
191
+ val renamedUri = Uri.withAppendedPath(Uri.parse(parentUri), newName).toString()
192
+ return Uri.parse(if (this is FileSystemDirectory) "$renamedUri/" else renamedUri)
168
193
  }
169
194
 
170
195
  val modificationTime: Long? get() {
@@ -80,6 +80,10 @@ fun slashifyFilePath(path: String?): String? {
80
80
  open class FileSystemLegacyModule : Module() {
81
81
  private val context: Context
82
82
  get() = appContext.reactContext ?: throw Exceptions.AppContextLost()
83
+ private val filesDirectory: File
84
+ get() = appContext.persistentFilesDirectory
85
+ private val cacheDirectory: File
86
+ get() = appContext.cacheDirectory
83
87
  private var client: OkHttpClient? = null
84
88
  private var dirPermissionsRequest: Promise? = null
85
89
  private val taskHandlers: MutableMap<String, TaskHandler> = HashMap()
@@ -90,11 +94,11 @@ open class FileSystemLegacyModule : Module() {
90
94
  Name("ExponentFileSystem")
91
95
 
92
96
  Constant("documentDirectory") {
93
- Uri.fromFile(context.filesDir).toString() + "/"
97
+ Uri.fromFile(filesDirectory).toString() + "/"
94
98
  }
95
99
 
96
100
  Constant("cacheDirectory") {
97
- Uri.fromFile(context.cacheDir).toString() + "/"
101
+ Uri.fromFile(cacheDirectory).toString() + "/"
98
102
  }
99
103
 
100
104
  Constant("bundleDirectory") {
@@ -108,8 +112,8 @@ open class FileSystemLegacyModule : Module() {
108
112
 
109
113
  OnCreate {
110
114
  try {
111
- ensureDirExists(context.filesDir)
112
- ensureDirExists(context.cacheDir)
115
+ ensureDirExists(filesDirectory)
116
+ ensureDirExists(cacheDirectory)
113
117
  } catch (e: Exception) {
114
118
  e.printStackTrace()
115
119
  }
@@ -12,7 +12,7 @@
12
12
  "publication": {
13
13
  "groupId": "host.exp.exponent",
14
14
  "artifactId": "expo.modules.filesystem",
15
- "version": "19.0.22",
15
+ "version": "19.0.23",
16
16
  "repository": "local-maven-repo"
17
17
  }
18
18
  }
@@ -0,0 +1 @@
1
+ d428a168e1bcc9bd245dd02994ebdb842d5fff9fc54742a4b00f063acab54e2b
@@ -0,0 +1 @@
1
+ 96de559820b3ffe4e7ece50d2308dd1326d06e9c808a9e1dd8ee833f326f7829acd44107c6fc43f11e5cc4eb6bb40f6dc0872b0bf0ba725bc40d56e8c94b9bd6
@@ -0,0 +1 @@
1
+ e3be225b12a23c52a6b4ca021e200accfe39d7ab2e122fde8370631a56f7a6a7
@@ -0,0 +1 @@
1
+ 8b97a42b0f6112e8e0bdb6c0d2f3baeab0458e694e1fd1a1f5abd998ad9e42b0d01ce3cbf1650e582e65720fd845faab483264502d41f899240e88ebdf773b2c
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "host.exp.exponent",
5
5
  "module": "expo.modules.filesystem",
6
- "version": "19.0.22",
6
+ "version": "19.0.23",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
@@ -75,13 +75,13 @@
75
75
  ],
76
76
  "files": [
77
77
  {
78
- "name": "expo.modules.filesystem-19.0.22.aar",
79
- "url": "expo.modules.filesystem-19.0.22.aar",
80
- "size": 393129,
81
- "sha512": "66cca546f6f55437628c6fad443bb817e5c0eef007414292fed3f907c68b11d718a3f3d816ee0ea78835567fdaa5686f525ab9f1a27137d5f799b9459d9719d1",
82
- "sha256": "addebabe9511120923e9a0f4490c31306162dc95ae60cb64867a27847d99dfaf",
83
- "sha1": "0d42a8415fa94ce162b33e740bb63f1602d7cc21",
84
- "md5": "083a9a998bd18c4424272ba3827a26ee"
78
+ "name": "expo.modules.filesystem-19.0.23.aar",
79
+ "url": "expo.modules.filesystem-19.0.23.aar",
80
+ "size": 394724,
81
+ "sha512": "8b97a42b0f6112e8e0bdb6c0d2f3baeab0458e694e1fd1a1f5abd998ad9e42b0d01ce3cbf1650e582e65720fd845faab483264502d41f899240e88ebdf773b2c",
82
+ "sha256": "e3be225b12a23c52a6b4ca021e200accfe39d7ab2e122fde8370631a56f7a6a7",
83
+ "sha1": "dd4f24371bad94ee0284b13df5a55a1a9bf4db0b",
84
+ "md5": "b245fa9588bc9f824a895686e7f75175"
85
85
  }
86
86
  ]
87
87
  },
@@ -153,13 +153,13 @@
153
153
  ],
154
154
  "files": [
155
155
  {
156
- "name": "expo.modules.filesystem-19.0.22.aar",
157
- "url": "expo.modules.filesystem-19.0.22.aar",
158
- "size": 393129,
159
- "sha512": "66cca546f6f55437628c6fad443bb817e5c0eef007414292fed3f907c68b11d718a3f3d816ee0ea78835567fdaa5686f525ab9f1a27137d5f799b9459d9719d1",
160
- "sha256": "addebabe9511120923e9a0f4490c31306162dc95ae60cb64867a27847d99dfaf",
161
- "sha1": "0d42a8415fa94ce162b33e740bb63f1602d7cc21",
162
- "md5": "083a9a998bd18c4424272ba3827a26ee"
156
+ "name": "expo.modules.filesystem-19.0.23.aar",
157
+ "url": "expo.modules.filesystem-19.0.23.aar",
158
+ "size": 394724,
159
+ "sha512": "8b97a42b0f6112e8e0bdb6c0d2f3baeab0458e694e1fd1a1f5abd998ad9e42b0d01ce3cbf1650e582e65720fd845faab483264502d41f899240e88ebdf773b2c",
160
+ "sha256": "e3be225b12a23c52a6b4ca021e200accfe39d7ab2e122fde8370631a56f7a6a7",
161
+ "sha1": "dd4f24371bad94ee0284b13df5a55a1a9bf4db0b",
162
+ "md5": "b245fa9588bc9f824a895686e7f75175"
163
163
  }
164
164
  ]
165
165
  },
@@ -173,13 +173,13 @@
173
173
  },
174
174
  "files": [
175
175
  {
176
- "name": "expo.modules.filesystem-19.0.22-sources.jar",
177
- "url": "expo.modules.filesystem-19.0.22-sources.jar",
178
- "size": 29329,
179
- "sha512": "6cac7b2fa58a18696e1468e4e9afe7e6092ca1a404351400345349e028cbaeda51386f4303d05372a2be2baf8de77fd97490ea91caa74bfc2a8cfe7b62619bfe",
180
- "sha256": "4177d9bd9a22a528b97cc2f2bd7ba47f6cbf7fb1c09d93a1cacdce6f553b05d6",
181
- "sha1": "464959bdf2015e626f82e9af6c6c28a6498240e3",
182
- "md5": "d3f99d83252bbc8fcf013f07d3d86ea8"
176
+ "name": "expo.modules.filesystem-19.0.23-sources.jar",
177
+ "url": "expo.modules.filesystem-19.0.23-sources.jar",
178
+ "size": 29833,
179
+ "sha512": "96de559820b3ffe4e7ece50d2308dd1326d06e9c808a9e1dd8ee833f326f7829acd44107c6fc43f11e5cc4eb6bb40f6dc0872b0bf0ba725bc40d56e8c94b9bd6",
180
+ "sha256": "d428a168e1bcc9bd245dd02994ebdb842d5fff9fc54742a4b00f063acab54e2b",
181
+ "sha1": "563dd7955f841fd114783d27a6e60f4af71e9a58",
182
+ "md5": "e11b59b1623ed7ba296d04a51e378e23"
183
183
  }
184
184
  ]
185
185
  }
@@ -0,0 +1 @@
1
+ 81a8a66ad8913d95276169449e8877d1f9731efbf863ce06856bc99bb3352f97
@@ -0,0 +1 @@
1
+ bd81c50c69dcb5b699b225c1585e164dc4cda5c557851a3e47f4e9c7667b682fc5062625162b27d42bbd8e149f33e51d416c3a4f5c9e49a4a7ccce6e095df82d
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>host.exp.exponent</groupId>
11
11
  <artifactId>expo.modules.filesystem</artifactId>
12
- <version>19.0.22</version>
12
+ <version>19.0.23</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.filesystem</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -0,0 +1 @@
1
+ 97660d5d8cca93c55804537b71bdc8727524aab6ba727829a5d7e577c57dde8a
@@ -0,0 +1 @@
1
+ 47af8accfae7dbe9c9d2546e2ec1f06b6abcccf96593b0861053e01d8c4d1c1f0b6e0124989881fdae19b0127e4011c7af3ad0ca72024d62fe43e21a66df1340
@@ -3,11 +3,11 @@
3
3
  <groupId>host.exp.exponent</groupId>
4
4
  <artifactId>expo.modules.filesystem</artifactId>
5
5
  <versioning>
6
- <latest>19.0.22</latest>
7
- <release>19.0.22</release>
6
+ <latest>19.0.23</latest>
7
+ <release>19.0.23</release>
8
8
  <versions>
9
- <version>19.0.22</version>
9
+ <version>19.0.23</version>
10
10
  </versions>
11
- <lastUpdated>20260427134253</lastUpdated>
11
+ <lastUpdated>20260528211919</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- f3621580c331192ee685516409ad4f1f
1
+ d2f85282b399e04af62eb855e6161ef0
@@ -1 +1 @@
1
- 91766dd6bca434c23754bb7a394edeedc0468b6f
1
+ 76bfd1ad5ce1c204d807948a160bb90f21584508
@@ -1 +1 @@
1
- ace4ec848e1f93cdf578a287a0fd9fce2795707cea6b43dcb4973f8bfd8e15c1
1
+ 78959c7cbda6794c7a0ac517ca290d49e3be9299476e47e09628ee35829f1cd5
@@ -1 +1 @@
1
- 022a219ed13d181cc7cfe1265845e2124e8e52b4c129f3320be8ad3d5c5454670972dc42ed81b2fd0ea8f68f001a6e07b37cd41c5888bd581d92f836af2dd9d0
1
+ f04eb41740bf9e9c77f2bc5346dca9ac9c1a74f6238389d960c5271cb803d81e188ebab3694bb9e1462d47fc1177307ce25875a7a277952f824da8f8717a555c
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-file-system",
3
- "version": "19.0.22",
3
+ "version": "19.0.23",
4
4
  "description": "Provides access to the local file system on the device.",
5
5
  "main": "src/index.ts",
6
6
  "types": "build/index.d.ts",
@@ -42,5 +42,5 @@
42
42
  "expo": "*",
43
43
  "react-native": "*"
44
44
  },
45
- "gitHead": "dd4e87727c4ef32ac5d8a7b5a42fd80da254140f"
45
+ "gitHead": "45c60e10956764bbac6c62454890eeb25c74bbd6"
46
46
  }
@@ -1 +0,0 @@
1
- 4177d9bd9a22a528b97cc2f2bd7ba47f6cbf7fb1c09d93a1cacdce6f553b05d6
@@ -1 +0,0 @@
1
- 6cac7b2fa58a18696e1468e4e9afe7e6092ca1a404351400345349e028cbaeda51386f4303d05372a2be2baf8de77fd97490ea91caa74bfc2a8cfe7b62619bfe
@@ -1 +0,0 @@
1
- addebabe9511120923e9a0f4490c31306162dc95ae60cb64867a27847d99dfaf
@@ -1 +0,0 @@
1
- 66cca546f6f55437628c6fad443bb817e5c0eef007414292fed3f907c68b11d718a3f3d816ee0ea78835567fdaa5686f525ab9f1a27137d5f799b9459d9719d1
@@ -1 +0,0 @@
1
- cc3333f08bcb4c135c215ed6eb3b5db08d8865a300ef0667433c67d3cc07c242
@@ -1 +0,0 @@
1
- 50e0b783ddf6266ead1df7a9f61cfef2b77eb6a0a3938455435c846ed215d19e25286195bc41d39d8abf008928b000e396d24d1c22790934637ff1a0dfe4c8e9
@@ -1 +0,0 @@
1
- 7dc7692d5391d00b94e23dee5602d8eab2af3ea7574928bdbcd5c6b7ced25bc5
@@ -1 +0,0 @@
1
- 27873a7579e0f70c4dcbfb4b3925d2e54e56ec1a803abf12a77e0d0cc1b128b1745bbe0d090f641da3c9fe172ce5ae1ed1bae05498c906734312361caae619c6