expo-file-system 19.0.22 → 19.0.24

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 +18 -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/ios/Legacy/FileSystemHelpers.swift +17 -3
  9. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24-sources.jar +0 -0
  10. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24-sources.jar.md5 +1 -0
  11. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24-sources.jar.sha1 +1 -0
  12. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24-sources.jar.sha256 +1 -0
  13. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24-sources.jar.sha512 +1 -0
  14. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24.aar +0 -0
  15. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24.aar.md5 +1 -0
  16. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24.aar.sha1 +1 -0
  17. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24.aar.sha256 +1 -0
  18. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24.aar.sha512 +1 -0
  19. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{19.0.22/expo.modules.filesystem-19.0.22.module → 19.0.24/expo.modules.filesystem-19.0.24.module} +22 -22
  20. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24.module.md5 +1 -0
  21. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24.module.sha1 +1 -0
  22. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24.module.sha256 +1 -0
  23. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24.module.sha512 +1 -0
  24. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{19.0.22/expo.modules.filesystem-19.0.22.pom → 19.0.24/expo.modules.filesystem-19.0.24.pom} +1 -1
  25. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24.pom.md5 +1 -0
  26. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24.pom.sha1 +1 -0
  27. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.24/expo.modules.filesystem-19.0.24.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 +3 -3
  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.sha512 +0 -1
  43. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.module.md5 +0 -1
  44. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.module.sha1 +0 -1
  45. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.module.sha256 +0 -1
  46. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.module.sha512 +0 -1
  47. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.pom.md5 +0 -1
  48. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.pom.sha1 +0 -1
  49. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.pom.sha256 +0 -1
  50. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.22/expo.modules.filesystem-19.0.22.pom.sha512 +0 -1
  51. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{19.0.22/expo.modules.filesystem-19.0.22.aar.sha256 → 19.0.24/expo.modules.filesystem-19.0.24.pom.sha256} +1 -1
package/CHANGELOG.md CHANGED
@@ -10,6 +10,24 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 19.0.24 — 2026-08-17
14
+
15
+ ### 🐛 Bug fixes
16
+
17
+ - Fixed `copyAsync` on iOS copying the unedited original when a `ph://` asset has edits applied in Photos. ([#48248](https://github.com/expo/expo/pull/48248) by [@CoffeeFlux](https://github.com/CoffeeFlux))
18
+
19
+ ## 19.0.23 — 2026-05-28
20
+
21
+ ### 🛠 Breaking changes
22
+
23
+ - [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))
24
+
25
+ ### 🐛 Bug fixes
26
+
27
+ - [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))
28
+ - [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))
29
+ - [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))
30
+
13
31
  ## 19.0.22 — 2026-04-27
14
32
 
15
33
  _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.24'
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.24"
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.24",
16
16
  "repository": "local-maven-repo"
17
17
  }
18
18
  }
@@ -86,9 +86,23 @@ internal func copyPHAsset(fromUrl: URL, toUrl: URL, with resourceManager: PHAsse
86
86
  return
87
87
  }
88
88
 
89
- let firstResource = PHAssetResource.assetResources(for: asset).first
90
- if let firstResource {
91
- resourceManager.writeData(for: firstResource, toFile: toUrl, options: nil) { error in
89
+ // An edited asset carries both its original resource (`.photo`/`.video`) and the
90
+ // rendered current version (`.fullSizePhoto`/`.fullSizeVideo`). Prefer the
91
+ // rendition matching the asset's media type, since an edited video can also
92
+ // include a `.fullSizePhoto` poster image.
93
+ let resources = PHAssetResource.assetResources(for: asset)
94
+ let isVideo = asset.mediaType == .video
95
+ let editedResourceType: PHAssetResourceType = isVideo ? .fullSizeVideo : .fullSizePhoto
96
+ let originalResourceType: PHAssetResourceType = isVideo ? .video : .photo
97
+ let resource =
98
+ resources.first { $0.type == editedResourceType }
99
+ ?? resources.first { $0.type == originalResourceType }
100
+ ?? resources.first
101
+ if let resource {
102
+ let resourceOptions = PHAssetResourceRequestOptions()
103
+ // Assets that only exist in iCloud have no local resource data to write.
104
+ resourceOptions.isNetworkAccessAllowed = true
105
+ resourceManager.writeData(for: resource, toFile: toUrl, options: resourceOptions) { error in
92
106
  if error != nil {
93
107
  promise.reject(FailedToCopyAssetException(fromUrl.absoluteString))
94
108
  return
@@ -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.24",
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.24.aar",
79
+ "url": "expo.modules.filesystem-19.0.24.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.24.aar",
157
+ "url": "expo.modules.filesystem-19.0.24.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.24-sources.jar",
177
+ "url": "expo.modules.filesystem-19.0.24-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
+ 3a50a26d98e59ae8db273da9b9679315aeda78b10787e24279dcc5a9e5a99a57
@@ -0,0 +1 @@
1
+ 056474035eb90880b4989b9fa6b3f96be27cbe9600f77e8bd16c9a11944b879d796d19f87ae8893872bc44914b2e9521bafe412c69a3d347a36be99e9b3c4158
@@ -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.24</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
+ eb011a17f11201057c0c2bcec7c3d571547f2bdf50ea7ba3180496124038e884ba0729aefc8943fb0ab2f8ddb6886a35f22c01d1392b0b44c89f3fdf416fd0e5
@@ -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.24</latest>
7
+ <release>19.0.24</release>
8
8
  <versions>
9
- <version>19.0.22</version>
9
+ <version>19.0.24</version>
10
10
  </versions>
11
- <lastUpdated>20260427134253</lastUpdated>
11
+ <lastUpdated>20260817144848</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- f3621580c331192ee685516409ad4f1f
1
+ 3211aefc079588c6a7ca05c361a48648
@@ -1 +1 @@
1
- 91766dd6bca434c23754bb7a394edeedc0468b6f
1
+ c14ce082296c86939c5979459345b47da3f0a8d2
@@ -1 +1 @@
1
- ace4ec848e1f93cdf578a287a0fd9fce2795707cea6b43dcb4973f8bfd8e15c1
1
+ 5c66a759dc5797971899ce429a8c4c0f36bc94c1c4c9e575ef771a36ecbd28e4
@@ -1 +1 @@
1
- 022a219ed13d181cc7cfe1265845e2124e8e52b4c129f3320be8ad3d5c5454670972dc42ed81b2fd0ea8f68f001a6e07b37cd41c5888bd581d92f836af2dd9d0
1
+ 13085428f2fc4a4c24e04427ccb8c8a6207f6f0e3b20fdafb3264c04564e0b027ab4eac621becc91567e942f2e2125acacad6a0a044736fcc31f74cf28037f3e
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.24",
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",
@@ -36,11 +36,11 @@
36
36
  },
37
37
  "devDependencies": {
38
38
  "expo-module-scripts": "^5.0.8",
39
- "jest-expo": "~54.0.17"
39
+ "jest-expo": "~54.0.18"
40
40
  },
41
41
  "peerDependencies": {
42
42
  "expo": "*",
43
43
  "react-native": "*"
44
44
  },
45
- "gitHead": "dd4e87727c4ef32ac5d8a7b5a42fd80da254140f"
45
+ "gitHead": "5b42e3d21e0ac5e086752361ca8a5cb4de53bec1"
46
46
  }
@@ -1 +0,0 @@
1
- 4177d9bd9a22a528b97cc2f2bd7ba47f6cbf7fb1c09d93a1cacdce6f553b05d6
@@ -1 +0,0 @@
1
- 6cac7b2fa58a18696e1468e4e9afe7e6092ca1a404351400345349e028cbaeda51386f4303d05372a2be2baf8de77fd97490ea91caa74bfc2a8cfe7b62619bfe
@@ -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
@@ -1 +1 @@
1
- addebabe9511120923e9a0f4490c31306162dc95ae60cb64867a27847d99dfaf
1
+ df6d74f59b67050bf273b87286037315621d9df8af0323c5e92d3b996729dec6