expo-file-system 56.0.6 → 56.0.7

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 (56) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/filesystem/FileSystemDirectory.kt +15 -0
  4. package/android/src/main/java/expo/modules/filesystem/FileSystemFile.kt +12 -2
  5. package/android/src/main/java/expo/modules/filesystem/FileSystemModule.kt +10 -4
  6. package/android/src/main/java/expo/modules/filesystem/FileSystemPath.kt +34 -5
  7. package/android/src/main/java/expo/modules/filesystem/legacy/FileSystemLegacyModule.kt +8 -4
  8. package/build/legacy/FileSystem.d.ts +1 -1
  9. package/expo-module.config.json +1 -1
  10. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{56.0.6/expo.modules.filesystem-56.0.6-sources.jar → 56.0.7/expo.modules.filesystem-56.0.7-sources.jar} +0 -0
  11. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7-sources.jar.md5 +1 -0
  12. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7-sources.jar.sha1 +1 -0
  13. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7-sources.jar.sha256 +1 -0
  14. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7-sources.jar.sha512 +1 -0
  15. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.aar +0 -0
  16. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.aar.md5 +1 -0
  17. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.aar.sha1 +1 -0
  18. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.aar.sha256 +1 -0
  19. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.aar.sha512 +1 -0
  20. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{56.0.6/expo.modules.filesystem-56.0.6.module → 56.0.7/expo.modules.filesystem-56.0.7.module} +22 -22
  21. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.module.md5 +1 -0
  22. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.module.sha1 +1 -0
  23. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.module.sha256 +1 -0
  24. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.module.sha512 +1 -0
  25. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{56.0.6/expo.modules.filesystem-56.0.6.pom → 56.0.7/expo.modules.filesystem-56.0.7.pom} +1 -1
  26. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.pom.md5 +1 -0
  27. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.pom.sha1 +1 -0
  28. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.pom.sha256 +1 -0
  29. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.pom.sha512 +1 -0
  30. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml +4 -4
  31. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.md5 +1 -1
  32. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha1 +1 -1
  33. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha256 +1 -1
  34. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha512 +1 -1
  35. package/package.json +5 -5
  36. package/plugin/tsconfig.tsbuildinfo +1 -1
  37. package/prebuilds/output/debug/xcframeworks/ExpoFileSystem.tar.gz +0 -0
  38. package/prebuilds/output/release/xcframeworks/ExpoFileSystem.tar.gz +0 -0
  39. package/src/legacy/FileSystem.ts +1 -1
  40. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6-sources.jar.md5 +0 -1
  41. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6-sources.jar.sha1 +0 -1
  42. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6-sources.jar.sha256 +0 -1
  43. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6-sources.jar.sha512 +0 -1
  44. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6.aar +0 -0
  45. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6.aar.md5 +0 -1
  46. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6.aar.sha1 +0 -1
  47. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6.aar.sha256 +0 -1
  48. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6.aar.sha512 +0 -1
  49. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6.module.md5 +0 -1
  50. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6.module.sha1 +0 -1
  51. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6.module.sha256 +0 -1
  52. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6.module.sha512 +0 -1
  53. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6.pom.md5 +0 -1
  54. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6.pom.sha1 +0 -1
  55. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6.pom.sha256 +0 -1
  56. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.6/expo.modules.filesystem-56.0.6.pom.sha512 +0 -1
package/CHANGELOG.md CHANGED
@@ -10,6 +10,12 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 56.0.7 — 2026-05-20
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
+
13
19
  ## 56.0.6 — 2026-05-19
14
20
 
15
21
  ### 🎉 New features
@@ -19,6 +25,9 @@
19
25
  ### 🐛 Bug fixes
20
26
 
21
27
  - Fixed the jest mock's `FileSystemFileHandle` to honor `FileMode` string values (`'r'`, `'w'`, `'wa'`, `'wt'`, `'rw'`) instead of the obsolete name table, expose handle and file metadata, and match the documented default mode for `content://` URIs. The dispatch is now exhaustive over `FileMode`, so future enum additions fail to compile in the mock. (by [@radko93](https://github.com/radko93))
28
+ - [Android] Added missing permission checks to `delete()` and `openHandle()` in the next-gen File System API. ([#45967](https://github.com/expo/expo/pull/45967) by [@barthap](https://github.com/barthap))
29
+ - [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))
30
+ - [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))
22
31
 
23
32
  ### 💡 Others
24
33
 
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'host.exp.exponent'
7
- version = '56.0.6'
7
+ version = '56.0.7'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.filesystem"
11
11
  defaultConfig {
12
12
  versionCode 30
13
- versionName "56.0.6"
13
+ versionName "56.0.7"
14
14
  testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
15
15
  }
16
16
  testOptions {
@@ -2,6 +2,7 @@ package expo.modules.filesystem
2
2
 
3
3
  import android.net.Uri
4
4
  import expo.modules.kotlin.services.FilePermissionService
5
+ import java.io.File
5
6
 
6
7
  class FileSystemDirectory(uri: Uri) : FileSystemPath(uri) {
7
8
  fun validatePath() {
@@ -76,6 +77,7 @@ class FileSystemDirectory(uri: Uri) : FileSystemPath(uri) {
76
77
  fun createFile(mimeType: String?, fileName: String): FileSystemFile {
77
78
  validateType()
78
79
  validatePermission(FilePermissionService.Permission.WRITE)
80
+ validateChildTarget(fileName)
79
81
  val newFile = file.createFile(mimeType ?: "text/plain", fileName)
80
82
  ?: throw UnableToCreateException("file could not be created")
81
83
  return FileSystemFile(newFile.uri)
@@ -84,11 +86,24 @@ class FileSystemDirectory(uri: Uri) : FileSystemPath(uri) {
84
86
  fun createDirectory(fileName: String): FileSystemDirectory {
85
87
  validateType()
86
88
  validatePermission(FilePermissionService.Permission.WRITE)
89
+ validateChildTarget(fileName)
87
90
  val newDirectory = file.createDirectory(fileName)
88
91
  ?: throw UnableToCreateException("directory could not be created")
89
92
  return FileSystemDirectory(newDirectory.uri)
90
93
  }
91
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
+
92
107
  // this function is internal and will be removed in the future (when returning arrays of shared objects is supported)
93
108
  fun listAsRecords(): List<Map<String, Any>> {
94
109
  validateType()
@@ -10,6 +10,12 @@ import expo.modules.kotlin.typedarray.TypedArray
10
10
  import java.io.FileOutputStream
11
11
  import java.security.MessageDigest
12
12
 
13
+ internal fun FileMode.requiredPermissions(): List<FilePermissionService.Permission> = when (this) {
14
+ FileMode.READ -> listOf(FilePermissionService.Permission.READ)
15
+ FileMode.WRITE, FileMode.APPEND, FileMode.TRUNCATE -> listOf(FilePermissionService.Permission.WRITE)
16
+ FileMode.READ_WRITE -> listOf(FilePermissionService.Permission.READ, FilePermissionService.Permission.WRITE)
17
+ }
18
+
13
19
  class FileSystemFile(uri: Uri) : FileSystemPath(uri) {
14
20
  private val contentResolver
15
21
  get() = appContext?.reactContext?.contentResolver ?: throw Exceptions.ReactContextLost()
@@ -56,9 +62,13 @@ class FileSystemFile(uri: Uri) : FileSystemPath(uri) {
56
62
 
57
63
  fun openHandle(mode: FileMode?): FileSystemFileHandle {
58
64
  val fileImpl = file
65
+ val resolvedMode = mode ?: if (fileImpl is SAFDocumentFile) FileMode.READ else FileMode.READ_WRITE
66
+ for (permission in resolvedMode.requiredPermissions()) {
67
+ validatePermission(permission)
68
+ }
59
69
  return when (fileImpl) {
60
- is JavaFile -> FileSystemFileHandle.forJavaFile(fileImpl, mode ?: FileMode.READ_WRITE)
61
- is SAFDocumentFile -> FileSystemFileHandle.forContentURI(fileImpl.uri, mode ?: FileMode.READ, contentResolver)
70
+ is JavaFile -> FileSystemFileHandle.forJavaFile(fileImpl, resolvedMode)
71
+ is SAFDocumentFile -> FileSystemFileHandle.forContentURI(fileImpl.uri, resolvedMode, contentResolver)
62
72
  else -> throw Exceptions.IllegalStateException("File handle is not supported for ${file.uri}")
63
73
  }
64
74
  }
@@ -21,6 +21,12 @@ class FileSystemModule : Module() {
21
21
  private val context: Context
22
22
  get() = appContext.reactContext ?: throw Exceptions.AppContextLost()
23
23
 
24
+ private val filesDirectory: File
25
+ get() = appContext.persistentFilesDirectory
26
+
27
+ private val cacheDirectory: File
28
+ get() = appContext.cacheDirectory
29
+
24
30
  private val downloadStore = DownloadTaskStore()
25
31
 
26
32
  @RequiresApi(Build.VERSION_CODES.O)
@@ -30,11 +36,11 @@ class FileSystemModule : Module() {
30
36
  Events("downloadProgress")
31
37
 
32
38
  Constant("documentDirectory") {
33
- Uri.fromFile(context.filesDir).toString() + "/"
39
+ Uri.fromFile(filesDirectory).toString() + "/"
34
40
  }
35
41
 
36
42
  Constant("cacheDirectory") {
37
- Uri.fromFile(context.cacheDir).toString() + "/"
43
+ Uri.fromFile(cacheDirectory).toString() + "/"
38
44
  }
39
45
 
40
46
  Constant("bundleDirectory") {
@@ -42,11 +48,11 @@ class FileSystemModule : Module() {
42
48
  }
43
49
 
44
50
  Property("totalDiskSpace") {
45
- File(context.filesDir.path).totalSpace
51
+ filesDirectory.totalSpace
46
52
  }
47
53
 
48
54
  Property("availableDiskSpace") {
49
- File(context.filesDir.path).freeSpace
55
+ filesDirectory.freeSpace
50
56
  }
51
57
 
52
58
  AsyncFunction("downloadFileAsync") Coroutine { url: URI, to: FileSystemPath, options: DownloadOptions?, downloadUUID: String? ->
@@ -4,7 +4,6 @@ import android.content.Context
4
4
  import android.net.Uri
5
5
  import android.os.Build
6
6
  import android.provider.DocumentsContract
7
- import androidx.core.net.toUri
8
7
  import expo.modules.filesystem.unifiedfile.AssetFile
9
8
  import expo.modules.filesystem.unifiedfile.ContentProviderFile
10
9
  import expo.modules.filesystem.fsops.DestinationSpec
@@ -21,6 +20,16 @@ import java.util.EnumSet
21
20
  import java.util.regex.Pattern
22
21
  import kotlin.io.path.moveTo
23
22
 
23
+ internal fun validateFileSystemChildName(name: String) {
24
+ val invalid = name.isEmpty() ||
25
+ name == "." ||
26
+ name == ".." ||
27
+ name.any { it == '/' || it == '\\' }
28
+ if (invalid) {
29
+ throw UnableToCreateException("child name must be a single path segment")
30
+ }
31
+ }
32
+
24
33
  val Uri.isContentUri
25
34
  get(): Boolean {
26
35
  return scheme == "content"
@@ -75,6 +84,7 @@ abstract class FileSystemPath(var uri: Uri) : SharedObject() {
75
84
  }
76
85
 
77
86
  fun delete() {
87
+ validatePermission(FilePermissionService.Permission.WRITE)
78
88
  if (!file.exists()) {
79
89
  throw UnableToDeleteException("uri '${file.uri}' does not exist")
80
90
  }
@@ -134,9 +144,12 @@ abstract class FileSystemPath(var uri: Uri) : SharedObject() {
134
144
  // TODO: Consider adding a check for asset URIs – this returns asset files of Expo Go (such as root-cert), but these are already freely available on apk mirrors ect.
135
145
  return true
136
146
  }
147
+ return checkPermissionForPath(javaFile.path, permission)
148
+ }
137
149
 
150
+ private fun checkPermissionForPath(path: String, permission: FilePermissionService.Permission): Boolean {
138
151
  val permissions = appContext?.filePermission?.getPathPermissions(
139
- appContext?.reactContext ?: throw Exceptions.ReactContextLost(), javaFile.path
152
+ appContext?.reactContext ?: throw Exceptions.ReactContextLost(), path
140
153
  ) ?: EnumSet.noneOf(FilePermissionService.Permission::class.java)
141
154
  return permissions.contains(permission)
142
155
  }
@@ -176,15 +189,31 @@ abstract class FileSystemPath(var uri: Uri) : SharedObject() {
176
189
  fun rename(newName: String) {
177
190
  validateType()
178
191
  validatePermission(FilePermissionService.Permission.WRITE)
179
- val newFile = File(javaFile.parent, newName)
192
+ validateFileSystemChildName(newName)
193
+ val parent = javaFile.parentFile
194
+ ?: throw UnableToCreateException("parent directory does not exist")
195
+ // Use canonical paths only for containment checks, so symlinks and aliases cannot escape the parent.
196
+ val parentCanonicalPath = parent.canonicalPath
197
+ val newFile = File(parent, newName)
198
+ if (newFile.canonicalFile.parentFile?.canonicalPath != parentCanonicalPath) {
199
+ throw UnableToCreateException("child path escapes parent directory")
200
+ }
180
201
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
181
202
  javaFile.toPath().moveTo(newFile.toPath())
182
- uri = newFile.toUri()
183
203
  } else {
184
204
  javaFile.copyTo(newFile)
185
205
  javaFile.delete()
186
- uri = newFile.toUri()
187
206
  }
207
+ uri = renamedUri(newName)
208
+ }
209
+
210
+ private fun renamedUri(newName: String): Uri {
211
+ // Preserve the original URI spelling; canonical paths can rewrite /data/user/0 to /data/data.
212
+ val currentUri = uri.toString()
213
+ val currentPath = currentUri.trimEnd('/')
214
+ val parentUri = currentUri.substring(0, currentPath.lastIndexOf('/') + 1)
215
+ val renamedUri = Uri.withAppendedPath(Uri.parse(parentUri), newName).toString()
216
+ return Uri.parse(if (this is FileSystemDirectory) "$renamedUri/" else renamedUri)
188
217
  }
189
218
 
190
219
  val modificationTime: Long?
@@ -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
  }
@@ -245,7 +245,7 @@ export declare class DownloadResumable extends FileSystemCancellableNetworkTask<
245
245
  * # Migrating an album
246
246
  *
247
247
  * ```ts
248
- * import * as MediaLibrary from 'expo-media-library';
248
+ * import * as MediaLibrary from 'expo-media-library/legacy';
249
249
  * import * as FileSystem from 'expo-file-system/legacy';
250
250
  * const { StorageAccessFramework } = FileSystem;
251
251
  *
@@ -12,7 +12,7 @@
12
12
  "publication": {
13
13
  "groupId": "host.exp.exponent",
14
14
  "artifactId": "expo.modules.filesystem",
15
- "version": "56.0.6",
15
+ "version": "56.0.7",
16
16
  "repository": "local-maven-repo"
17
17
  }
18
18
  }
@@ -0,0 +1 @@
1
+ b5fc5f29a08c652e7361327fb756e90ca05fbaf3d0a7571ecc77434a0ac5f637
@@ -0,0 +1 @@
1
+ 8a6c843ad08a025b11c8f4648314ef10124fabc8f74d8b7ca5da1dde98d759311e8c94f38964f60a11f5637b26a7650026106c68923707a7216d2db4066babaf
@@ -0,0 +1 @@
1
+ c2cd86769ee9f7cfede39533f08e62912d4be5c82fe3faf5f718da261f5a1411
@@ -0,0 +1 @@
1
+ 69a06ff7183c02c217e59e7960dc338ef0dda278f947e75ee875513710f9c8e1e0eba0aa6c03bc40ca79c6b0c5fa66dd084660a70f2da5e88b8349c04bdb8b91
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "host.exp.exponent",
5
5
  "module": "expo.modules.filesystem",
6
- "version": "56.0.6",
6
+ "version": "56.0.7",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
@@ -68,13 +68,13 @@
68
68
  ],
69
69
  "files": [
70
70
  {
71
- "name": "expo.modules.filesystem-56.0.6.aar",
72
- "url": "expo.modules.filesystem-56.0.6.aar",
73
- "size": 689001,
74
- "sha512": "9d5a05c062694b0a80f9830a2e39a462f8e1683c304bc0496b64203468706987369437e74cfdeee056f013de1602097b6e4ff1dda3384973ea78a0fedcf30d03",
75
- "sha256": "66c88fad23aaf1b650784ba1ef259cf4f0141278893a1b42472ef36b977ccd93",
76
- "sha1": "7be8f87daeba9f7b0465da105f97f731822069b2",
77
- "md5": "14736ddcc35c6d91585e77da11129b32"
71
+ "name": "expo.modules.filesystem-56.0.7.aar",
72
+ "url": "expo.modules.filesystem-56.0.7.aar",
73
+ "size": 692387,
74
+ "sha512": "69a06ff7183c02c217e59e7960dc338ef0dda278f947e75ee875513710f9c8e1e0eba0aa6c03bc40ca79c6b0c5fa66dd084660a70f2da5e88b8349c04bdb8b91",
75
+ "sha256": "c2cd86769ee9f7cfede39533f08e62912d4be5c82fe3faf5f718da261f5a1411",
76
+ "sha1": "0380e78e9711016e203cd73e128c2446a35fd885",
77
+ "md5": "4e5fa3c7146f1ff08cefbc2fe3099e03"
78
78
  }
79
79
  ]
80
80
  },
@@ -157,13 +157,13 @@
157
157
  ],
158
158
  "files": [
159
159
  {
160
- "name": "expo.modules.filesystem-56.0.6.aar",
161
- "url": "expo.modules.filesystem-56.0.6.aar",
162
- "size": 689001,
163
- "sha512": "9d5a05c062694b0a80f9830a2e39a462f8e1683c304bc0496b64203468706987369437e74cfdeee056f013de1602097b6e4ff1dda3384973ea78a0fedcf30d03",
164
- "sha256": "66c88fad23aaf1b650784ba1ef259cf4f0141278893a1b42472ef36b977ccd93",
165
- "sha1": "7be8f87daeba9f7b0465da105f97f731822069b2",
166
- "md5": "14736ddcc35c6d91585e77da11129b32"
160
+ "name": "expo.modules.filesystem-56.0.7.aar",
161
+ "url": "expo.modules.filesystem-56.0.7.aar",
162
+ "size": 692387,
163
+ "sha512": "69a06ff7183c02c217e59e7960dc338ef0dda278f947e75ee875513710f9c8e1e0eba0aa6c03bc40ca79c6b0c5fa66dd084660a70f2da5e88b8349c04bdb8b91",
164
+ "sha256": "c2cd86769ee9f7cfede39533f08e62912d4be5c82fe3faf5f718da261f5a1411",
165
+ "sha1": "0380e78e9711016e203cd73e128c2446a35fd885",
166
+ "md5": "4e5fa3c7146f1ff08cefbc2fe3099e03"
167
167
  }
168
168
  ]
169
169
  },
@@ -177,13 +177,13 @@
177
177
  },
178
178
  "files": [
179
179
  {
180
- "name": "expo.modules.filesystem-56.0.6-sources.jar",
181
- "url": "expo.modules.filesystem-56.0.6-sources.jar",
182
- "size": 49979,
183
- "sha512": "3bdf553eb365ff56c8d0ca441a0fbe5d58a53d94f0f2dc565579dfa6124318c1d3a929d7bbd81efffced17716316872c0c2dbadb03795b1cb9a707741da486b3",
184
- "sha256": "6fb4f4458a682db136e3f8316c2c72449f51df3c9067dfab4adb7320e4cd87a0",
185
- "sha1": "39a2b329c7638063c5952630484b01530a6111fb",
186
- "md5": "2b04eac6c9efb8a798f28035910d386d"
180
+ "name": "expo.modules.filesystem-56.0.7-sources.jar",
181
+ "url": "expo.modules.filesystem-56.0.7-sources.jar",
182
+ "size": 50736,
183
+ "sha512": "8a6c843ad08a025b11c8f4648314ef10124fabc8f74d8b7ca5da1dde98d759311e8c94f38964f60a11f5637b26a7650026106c68923707a7216d2db4066babaf",
184
+ "sha256": "b5fc5f29a08c652e7361327fb756e90ca05fbaf3d0a7571ecc77434a0ac5f637",
185
+ "sha1": "0bc8ebfa190aaa1afa8a586a5c4bb97dfbedd9ec",
186
+ "md5": "8c86db6d5989787cf64c8602d3906b5a"
187
187
  }
188
188
  ]
189
189
  }
@@ -0,0 +1 @@
1
+ 9700715fc80c364e8146a039eb97f44c1e2141548c30f60d376470c3c97fc0d2
@@ -0,0 +1 @@
1
+ 42af6a5038ae52024d884d09b0135e84a58cadafef52a8997e4e58afc24154e966655e3db21b545f847144ba1585493fa1aea7b379f70d2a5b1b7f3f1522c486
@@ -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>56.0.6</version>
12
+ <version>56.0.7</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
+ 687f8ec34fe321b6901456ea396d8e6eb164947f6253406a67e896fdf0430789
@@ -0,0 +1 @@
1
+ 64a1a0c70fd22accaa634494542a5c2ae58becfcbd8d8cc2e9d85800699c8741fc87823b721a40b51261c4fb52031ddde9cc0cc2b8769aa901f8c59fc7a8d4ed
@@ -3,11 +3,11 @@
3
3
  <groupId>host.exp.exponent</groupId>
4
4
  <artifactId>expo.modules.filesystem</artifactId>
5
5
  <versioning>
6
- <latest>56.0.6</latest>
7
- <release>56.0.6</release>
6
+ <latest>56.0.7</latest>
7
+ <release>56.0.7</release>
8
8
  <versions>
9
- <version>56.0.6</version>
9
+ <version>56.0.7</version>
10
10
  </versions>
11
- <lastUpdated>20260519105313</lastUpdated>
11
+ <lastUpdated>20260520215035</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 76f4067aaa57513178fe3643c7f4fcee
1
+ a9e1745c403d87dba3e723faebf7373b
@@ -1 +1 @@
1
- 333cc2767c02f5b952922e0568c4c55adcdfbab3
1
+ 758a2ee1aa9cf6bb862d760703add1aaaba80d13
@@ -1 +1 @@
1
- 16478284a6e3560c72a519a3c7368ca80eb11795fb5a384ec3235bab9d8e2883
1
+ 0d0f0c30b81fb8176ce62eeb347736e552d955360427a1087760ddb9c353c061
@@ -1 +1 @@
1
- 5aae03f2854561fed3217710ced5e4ef5fef073e5d075c2dcecd8d1f4c80e2fbdcb3f2960cbe5278428ccd9bf240c1c09c5b92c422eebc28350e62a05e5e8c02
1
+ 949d78138c90b891645195c6ad24bc25b6cdd1a237a46e802164c4b910f84389f487cfb2ac3608627b036466a0592ff9ea69e99e01dc243c36672813983f0b5e
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-file-system",
3
- "version": "56.0.6",
3
+ "version": "56.0.7",
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",
@@ -41,15 +41,15 @@
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^22.14.0",
44
- "expo": "56.0.0-preview.13",
45
- "expo-module-scripts": "56.0.2",
46
- "jest-expo": "56.0.3"
44
+ "expo": "56.0.0",
45
+ "jest-expo": "56.0.4",
46
+ "expo-module-scripts": "56.0.2"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "expo": "*",
50
50
  "react-native": "*"
51
51
  },
52
- "gitHead": "290368bc41026449a05a4ebf991b85c3a2fb0e3a",
52
+ "gitHead": "c4c9867a0bcbb188e55ecaec4998e38d33108a5d",
53
53
  "scripts": {
54
54
  "build": "expo-module build",
55
55
  "clean": "expo-module clean",
@@ -1 +1 @@
1
- {"root":["./src/index.ts","./src/withfilesystem.ts"],"version":"5.9.3"}
1
+ {"root":["./src/withfilesystem.ts"],"version":"5.9.2"}
@@ -597,7 +597,7 @@ const baseCopyAsync = copyAsync;
597
597
  * # Migrating an album
598
598
  *
599
599
  * ```ts
600
- * import * as MediaLibrary from 'expo-media-library';
600
+ * import * as MediaLibrary from 'expo-media-library/legacy';
601
601
  * import * as FileSystem from 'expo-file-system/legacy';
602
602
  * const { StorageAccessFramework } = FileSystem;
603
603
  *
@@ -1 +0,0 @@
1
- 6fb4f4458a682db136e3f8316c2c72449f51df3c9067dfab4adb7320e4cd87a0
@@ -1 +0,0 @@
1
- 3bdf553eb365ff56c8d0ca441a0fbe5d58a53d94f0f2dc565579dfa6124318c1d3a929d7bbd81efffced17716316872c0c2dbadb03795b1cb9a707741da486b3
@@ -1 +0,0 @@
1
- 66c88fad23aaf1b650784ba1ef259cf4f0141278893a1b42472ef36b977ccd93
@@ -1 +0,0 @@
1
- 9d5a05c062694b0a80f9830a2e39a462f8e1683c304bc0496b64203468706987369437e74cfdeee056f013de1602097b6e4ff1dda3384973ea78a0fedcf30d03
@@ -1 +0,0 @@
1
- 8bb9edfa93e2e55af08f2fe6f06b864d62bb3702ddca2c1a947174350f7cfd87
@@ -1 +0,0 @@
1
- 61b3a1297673a1c18140ac284bb6e38d86ec406b40966aa5bec804e79b26a775de8024a0dc499f53b9e926a82595223fb9be379ac87e0c6869735973b62e0531
@@ -1 +0,0 @@
1
- b0e49cf8d66adb123b596568005e4ebf6a5475a43850db6e49097baf39179ec5
@@ -1 +0,0 @@
1
- 3912c1bd64aa96e0a94f5ab76ff34175f3e3939136d4671dbec661c22d79ec6d4d1d175ff1f55367cac6645d77724b1a9d7eb2ccd63385e70d059ff36b3a1dab