expo-file-system 56.0.5 → 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.
- package/CHANGELOG.md +24 -0
- package/android/build.gradle +2 -3
- package/android/src/main/java/expo/modules/filesystem/FileSystemDirectory.kt +15 -0
- package/android/src/main/java/expo/modules/filesystem/FileSystemFile.kt +12 -2
- package/android/src/main/java/expo/modules/filesystem/FileSystemModule.kt +10 -4
- package/android/src/main/java/expo/modules/filesystem/FileSystemPath.kt +34 -5
- package/android/src/main/java/expo/modules/filesystem/legacy/FileSystemLegacyModule.kt +8 -4
- package/build/Directory.d.ts.map +1 -1
- package/build/File.d.ts +2 -0
- package/build/File.d.ts.map +1 -1
- package/build/legacy/FileSystem.d.ts +1 -1
- package/expo-module.config.json +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{56.0.5/expo.modules.filesystem-56.0.5-sources.jar → 56.0.7/expo.modules.filesystem-56.0.7-sources.jar} +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7-sources.jar.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7-sources.jar.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7-sources.jar.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7-sources.jar.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.aar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.aar.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.aar.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.aar.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.aar.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{56.0.5/expo.modules.filesystem-56.0.5.module → 56.0.7/expo.modules.filesystem-56.0.7.module} +22 -36
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.module.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.module.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.module.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.module.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{56.0.5/expo.modules.filesystem-56.0.5.pom → 56.0.7/expo.modules.filesystem-56.0.7.pom} +1 -7
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.pom.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.pom.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.pom.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.7/expo.modules.filesystem-56.0.7.pom.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml +4 -4
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.md5 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha1 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha256 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha512 +1 -1
- package/mocks/FileSystem.ts +787 -51
- package/package.json +4 -4
- package/plugin/tsconfig.tsbuildinfo +1 -1
- package/prebuilds/output/debug/xcframeworks/ExpoFileSystem.tar.gz +0 -0
- package/prebuilds/output/release/xcframeworks/ExpoFileSystem.tar.gz +0 -0
- package/src/Directory.ts +0 -2
- package/src/File.ts +10 -0
- package/src/legacy/FileSystem.ts +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5-sources.jar.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5-sources.jar.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5-sources.jar.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5-sources.jar.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5.aar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5.aar.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5.aar.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5.aar.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5.aar.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5.module.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5.module.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5.module.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5.module.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5.pom.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5.pom.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5.pom.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/56.0.5/expo.modules.filesystem-56.0.5.pom.sha512 +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,29 @@
|
|
|
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
|
+
|
|
19
|
+
## 56.0.6 — 2026-05-19
|
|
20
|
+
|
|
21
|
+
### 🎉 New features
|
|
22
|
+
|
|
23
|
+
- Added `File.json()` and `File.formData()` to satisfy `Blob` type augmentations in consumer projects. ([#45685](https://github.com/expo/expo/pull/45685) by [@mvincentong](https://github.com/mvincentong))
|
|
24
|
+
|
|
25
|
+
### 🐛 Bug fixes
|
|
26
|
+
|
|
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))
|
|
31
|
+
|
|
32
|
+
### 💡 Others
|
|
33
|
+
|
|
34
|
+
- [Android] Remove unused native dependencies. ([#45939](https://github.com/expo/expo/pull/45939) by [@jakex7](https://github.com/jakex7))
|
|
35
|
+
|
|
13
36
|
## 56.0.5 — 2026-05-15
|
|
14
37
|
|
|
15
38
|
### 💡 Others
|
|
@@ -64,6 +87,7 @@ _This version does not introduce any user-facing changes._
|
|
|
64
87
|
|
|
65
88
|
### 💡 Others
|
|
66
89
|
|
|
90
|
+
- Add behavioral Jest mocks for the class-based `File` / `Directory` / `Paths` API, backed by an in-memory filesystem so tests can exercise create/write/read/move/copy/delete roundtrips without hand-rolling a `jest.mock`. ([#45027](https://github.com/expo/expo/pull/45027) by [@radko93](https://github.com/radko93))
|
|
67
91
|
- Deprecate `modificationTime` in favor of new `lastModified`, compatible with web `File` interface. ([#43411](https://github.com/expo/expo/pull/43411) by [@HubertBer](https://github.com/HubertBer))
|
|
68
92
|
- Deprecate `File.pickFileAsync(arg1, arg2)` in favour of new `File.pickFileAsync(options)`. ([#43411](https://github.com/expo/expo/pull/43411) by [@HubertBer](https://github.com/HubertBer))
|
|
69
93
|
- [Android] Optimized performance of copy and move operations. ([#44357](https://github.com/expo/expo/pull/44357), [#44358](https://github.com/expo/expo/pull/44358) by [@barthap](https://github.com/barthap))
|
package/android/build.gradle
CHANGED
|
@@ -4,13 +4,13 @@ plugins {
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
group = 'host.exp.exponent'
|
|
7
|
-
version = '56.0.
|
|
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.
|
|
13
|
+
versionName "56.0.7"
|
|
14
14
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
15
15
|
}
|
|
16
16
|
testOptions {
|
|
@@ -24,7 +24,6 @@ dependencies {
|
|
|
24
24
|
api 'com.squareup.okhttp3:okhttp:4.9.2'
|
|
25
25
|
api 'com.squareup.okhttp3:okhttp-urlconnection:4.9.2'
|
|
26
26
|
api 'com.squareup.okio:okio:2.9.0'
|
|
27
|
-
api "androidx.legacy:legacy-support-v4:1.0.0"
|
|
28
27
|
api "androidx.documentfile:documentfile:1.1.0"
|
|
29
28
|
implementation 'com.facebook.react:react-android'
|
|
30
29
|
|
|
@@ -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,
|
|
61
|
-
is SAFDocumentFile -> FileSystemFileHandle.forContentURI(fileImpl.uri,
|
|
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(
|
|
39
|
+
Uri.fromFile(filesDirectory).toString() + "/"
|
|
34
40
|
}
|
|
35
41
|
|
|
36
42
|
Constant("cacheDirectory") {
|
|
37
|
-
Uri.fromFile(
|
|
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
|
-
|
|
51
|
+
filesDirectory.totalSpace
|
|
46
52
|
}
|
|
47
53
|
|
|
48
54
|
Property("availableDiskSpace") {
|
|
49
|
-
|
|
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(),
|
|
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
|
-
|
|
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(
|
|
97
|
+
Uri.fromFile(filesDirectory).toString() + "/"
|
|
94
98
|
}
|
|
95
99
|
|
|
96
100
|
Constant("cacheDirectory") {
|
|
97
|
-
Uri.fromFile(
|
|
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(
|
|
112
|
-
ensureDirExists(
|
|
115
|
+
ensureDirExists(filesDirectory)
|
|
116
|
+
ensureDirExists(cacheDirectory)
|
|
113
117
|
} catch (e: Exception) {
|
|
114
118
|
e.printStackTrace()
|
|
115
119
|
}
|
package/build/Directory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Directory.d.ts","sourceRoot":"","sources":["../src/Directory.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAI7F;;;;;;;;;;GAUG;AACH,qBAAa,SAAU,SAAQ,cAAc,CAAC,mBAAmB;IAC/D,MAAM,CAAC,kBAAkB,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvE;;;;;;;;;OASG;gBACS,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;IAQlD,IAAI,eAAe,cAElB;IAED;;;;OAIG;IACM,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"Directory.d.ts","sourceRoot":"","sources":["../src/Directory.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAI7F;;;;;;;;;;GAUG;AACH,qBAAa,SAAU,SAAQ,cAAc,CAAC,mBAAmB;IAC/D,MAAM,CAAC,kBAAkB,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvE;;;;;;;;;OASG;gBACS,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;IAQlD,IAAI,eAAe,cAElB;IAED;;;;OAIG;IACM,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE;IAMrC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIvD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAIxC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CACH,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,IAAI,EACvD,OAAO,CAAC,EAAE,YAAY,GACrB,iBAAiB;CAQrB"}
|
package/build/File.d.ts
CHANGED
|
@@ -103,6 +103,8 @@ export declare class File extends ExpoFileSystem.FileSystemFile implements Blob
|
|
|
103
103
|
readableStream(): ReadableStream<Uint8Array<ArrayBuffer>>;
|
|
104
104
|
writableStream(): WritableStream<Uint8Array<ArrayBufferLike>>;
|
|
105
105
|
arrayBuffer(): Promise<ArrayBuffer>;
|
|
106
|
+
json(): Promise<any>;
|
|
107
|
+
formData(): ReturnType<Response['formData']>;
|
|
106
108
|
stream(): ReadableStream<Uint8Array<ArrayBuffer>>;
|
|
107
109
|
slice(start?: number, end?: number, contentType?: string): Blob;
|
|
108
110
|
/**
|
package/build/File.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"File.d.ts","sourceRoot":"","sources":["../src/File.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAK9B;;;;;;;;;;GAUG;AACH,qBAAa,IAAK,SAAQ,cAAc,CAAC,cAAe,YAAW,IAAI;IACrE;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,iBAAiB,EAAE,CACxB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,SAAS,GAAG,IAAI,EAC7B,OAAO,CAAC,EAAE,eAAe,KACtB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IACpF;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAC1F;;;;;;;;;OASG;IACH,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;IA8BpF;;;;;;;;;OASG;gBACS,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;IAQlD,IAAI,eAAe,cAElB;IAED;;;OAGG;IACH,IAAI,SAAS,WAEZ;IAED;;OAEG;IACH,IAAI,IAAI,WAEP;IAED,cAAc;IAId,cAAc;IAMR,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"File.d.ts","sourceRoot":"","sources":["../src/File.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAK9B;;;;;;;;;;GAUG;AACH,qBAAa,IAAK,SAAQ,cAAc,CAAC,cAAe,YAAW,IAAI;IACrE;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,iBAAiB,EAAE,CACxB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,SAAS,GAAG,IAAI,EAC7B,OAAO,CAAC,EAAE,eAAe,KACtB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IACpF;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAC1F;;;;;;;;;OASG;IACH,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;IA8BpF;;;;;;;;;OASG;gBACS,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;IAQlD,IAAI,eAAe,cAElB;IAED;;;OAGG;IACH,IAAI,SAAS,WAEZ;IAED;;OAEG;IACH,IAAI,IAAI,WAEP;IAED,cAAc;IAId,cAAc;IAMR,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAKnC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;IAIpB,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAMlD,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAIjD,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAI/D;;;;;;;;;;OAUG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAInE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,UAAU;IAIlE;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,kBAAkB,CACvB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,IAAI,GAAG,SAAS,EAC7B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,YAAY;IAIf;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,iBAAiB;CAG9F"}
|
|
@@ -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
|
*
|
package/expo-module.config.json
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
8c86db6d5989787cf64c8602d3906b5a
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0bc8ebfa190aaa1afa8a586a5c4bb97dfbedd9ec
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
b5fc5f29a08c652e7361327fb756e90ca05fbaf3d0a7571ecc77434a0ac5f637
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
8a6c843ad08a025b11c8f4648314ef10124fabc8f74d8b7ca5da1dde98d759311e8c94f38964f60a11f5637b26a7650026106c68923707a7216d2db4066babaf
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4e5fa3c7146f1ff08cefbc2fe3099e03
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0380e78e9711016e203cd73e128c2446a35fd885
|
|
@@ -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
|
+
"version": "56.0.7",
|
|
7
7
|
"attributes": {
|
|
8
8
|
"org.gradle.status": "release"
|
|
9
9
|
}
|
|
@@ -58,13 +58,6 @@
|
|
|
58
58
|
"requires": "2.9.0"
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
|
-
{
|
|
62
|
-
"group": "androidx.legacy",
|
|
63
|
-
"module": "legacy-support-v4",
|
|
64
|
-
"version": {
|
|
65
|
-
"requires": "1.0.0"
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
61
|
{
|
|
69
62
|
"group": "androidx.documentfile",
|
|
70
63
|
"module": "documentfile",
|
|
@@ -75,13 +68,13 @@
|
|
|
75
68
|
],
|
|
76
69
|
"files": [
|
|
77
70
|
{
|
|
78
|
-
"name": "expo.modules.filesystem-56.0.
|
|
79
|
-
"url": "expo.modules.filesystem-56.0.
|
|
80
|
-
"size":
|
|
81
|
-
"sha512": "
|
|
82
|
-
"sha256": "
|
|
83
|
-
"sha1": "
|
|
84
|
-
"md5": "
|
|
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"
|
|
85
78
|
}
|
|
86
79
|
]
|
|
87
80
|
},
|
|
@@ -147,13 +140,6 @@
|
|
|
147
140
|
"requires": "2.9.0"
|
|
148
141
|
}
|
|
149
142
|
},
|
|
150
|
-
{
|
|
151
|
-
"group": "androidx.legacy",
|
|
152
|
-
"module": "legacy-support-v4",
|
|
153
|
-
"version": {
|
|
154
|
-
"requires": "1.0.0"
|
|
155
|
-
}
|
|
156
|
-
},
|
|
157
143
|
{
|
|
158
144
|
"group": "androidx.documentfile",
|
|
159
145
|
"module": "documentfile",
|
|
@@ -171,13 +157,13 @@
|
|
|
171
157
|
],
|
|
172
158
|
"files": [
|
|
173
159
|
{
|
|
174
|
-
"name": "expo.modules.filesystem-56.0.
|
|
175
|
-
"url": "expo.modules.filesystem-56.0.
|
|
176
|
-
"size":
|
|
177
|
-
"sha512": "
|
|
178
|
-
"sha256": "
|
|
179
|
-
"sha1": "
|
|
180
|
-
"md5": "
|
|
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"
|
|
181
167
|
}
|
|
182
168
|
]
|
|
183
169
|
},
|
|
@@ -191,13 +177,13 @@
|
|
|
191
177
|
},
|
|
192
178
|
"files": [
|
|
193
179
|
{
|
|
194
|
-
"name": "expo.modules.filesystem-56.0.
|
|
195
|
-
"url": "expo.modules.filesystem-56.0.
|
|
196
|
-
"size":
|
|
197
|
-
"sha512": "
|
|
198
|
-
"sha256": "
|
|
199
|
-
"sha1": "
|
|
200
|
-
"md5": "
|
|
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"
|
|
201
187
|
}
|
|
202
188
|
]
|
|
203
189
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
53524b1223178b29f1b0fd3c230a0284
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
98e5c5da826ea6231c71d6321ac8467ff1224d36
|
|
@@ -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.
|
|
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>
|
|
@@ -67,12 +67,6 @@
|
|
|
67
67
|
<version>2.9.0</version>
|
|
68
68
|
<scope>compile</scope>
|
|
69
69
|
</dependency>
|
|
70
|
-
<dependency>
|
|
71
|
-
<groupId>androidx.legacy</groupId>
|
|
72
|
-
<artifactId>legacy-support-v4</artifactId>
|
|
73
|
-
<version>1.0.0</version>
|
|
74
|
-
<scope>compile</scope>
|
|
75
|
-
</dependency>
|
|
76
70
|
<dependency>
|
|
77
71
|
<groupId>androidx.documentfile</groupId>
|
|
78
72
|
<artifactId>documentfile</artifactId>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1902da137d5b9781afbe3ea28bc7b367
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
18e6d729a5d81e949cb77d30558cd9a674719b10
|
|
@@ -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.
|
|
7
|
-
<release>56.0.
|
|
6
|
+
<latest>56.0.7</latest>
|
|
7
|
+
<release>56.0.7</release>
|
|
8
8
|
<versions>
|
|
9
|
-
<version>56.0.
|
|
9
|
+
<version>56.0.7</version>
|
|
10
10
|
</versions>
|
|
11
|
-
<lastUpdated>
|
|
11
|
+
<lastUpdated>20260520215035</lastUpdated>
|
|
12
12
|
</versioning>
|
|
13
13
|
</metadata>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
a9e1745c403d87dba3e723faebf7373b
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
758a2ee1aa9cf6bb862d760703add1aaaba80d13
|
package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha256
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
0d0f0c30b81fb8176ce62eeb347736e552d955360427a1087760ddb9c353c061
|
package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha512
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
949d78138c90b891645195c6ad24bc25b6cdd1a237a46e802164c4b910f84389f487cfb2ac3608627b036466a0592ff9ea69e99e01dc243c36672813983f0b5e
|