expo-file-system 58.0.3 → 58.0.5
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 +7 -5
- package/android/build.gradle +2 -2
- package/android/src/main/java/expo/modules/filesystem/FileSystemDirectory.kt +10 -2
- package/android/src/main/java/expo/modules/filesystem/FileSystemDownloadTask.kt +5 -1
- package/android/src/main/java/expo/modules/filesystem/FileSystemFile.kt +5 -1
- package/android/src/main/java/expo/modules/filesystem/FileSystemFileHandle.kt +11 -3
- package/android/src/main/java/expo/modules/filesystem/FileSystemPath.kt +7 -1
- package/android/src/main/java/expo/modules/filesystem/FileSystemWatcher.kt +10 -2
- package/android/src/main/java/expo/modules/filesystem/fsops/CopyMoveStrategy.kt +24 -8
- package/android/src/main/java/expo/modules/filesystem/legacy/FileSystemLegacyModule.kt +18 -3
- package/android/src/main/java/expo/modules/filesystem/unifiedfile/AssetFile.kt +10 -2
- package/android/src/main/java/expo/modules/filesystem/unifiedfile/SAFDocumentFile.kt +5 -1
- package/expo-module.config.json +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5-sources.jar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5-sources.jar.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5-sources.jar.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5-sources.jar.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5-sources.jar.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5.aar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5.aar.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5.aar.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5.aar.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5.aar.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{58.0.3/expo.modules.filesystem-58.0.3.module → 58.0.5/expo.modules.filesystem-58.0.5.module} +22 -22
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5.module.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5.module.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5.module.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5.module.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{58.0.3/expo.modules.filesystem-58.0.3.pom → 58.0.5/expo.modules.filesystem-58.0.5.pom} +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5.pom.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5.pom.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5.pom.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.5/expo.modules.filesystem-58.0.5.pom.sha512 +1 -0
- package/package.json +4 -4
- package/prebuilds/output/debug/xcframeworks/ExpoFileSystem.tar.gz +0 -0
- package/prebuilds/output/release/xcframeworks/ExpoFileSystem.tar.gz +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3-sources.jar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3-sources.jar.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3-sources.jar.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3-sources.jar.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3-sources.jar.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3.aar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3.aar.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3.aar.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3.aar.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3.aar.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3.module.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3.module.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3.module.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3.module.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3.pom.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3.pom.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3.pom.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/58.0.3/expo.modules.filesystem-58.0.3.pom.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml +0 -13
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha512 +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 58.0.5
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### Patch Changes
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- Bump precompiled artifacts due to ABI breakage in expo-modules-jsi@58.0.6. ([#50881](https://github.com/expo/expo/pull/50881) by [@kitten](https://github.com/kitten))
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## 58.0.4
|
|
10
10
|
|
|
11
|
-
###
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Force-bump all packages, due to migration to changesets. ([#50762](https://github.com/expo/expo/pull/50762) by [@kitten](https://github.com/kitten))
|
|
12
14
|
|
|
13
15
|
## 58.0.3 — 2026-09-28
|
|
14
16
|
|
package/android/build.gradle
CHANGED
|
@@ -4,13 +4,13 @@ plugins {
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
group = 'host.exp.exponent'
|
|
7
|
-
version = '58.0.
|
|
7
|
+
version = '58.0.5'
|
|
8
8
|
|
|
9
9
|
android {
|
|
10
10
|
namespace "expo.modules.filesystem"
|
|
11
11
|
defaultConfig {
|
|
12
12
|
versionCode 30
|
|
13
|
-
versionName "58.0.
|
|
13
|
+
versionName "58.0.5"
|
|
14
14
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
15
15
|
}
|
|
16
16
|
testOptions {
|
|
@@ -114,7 +114,11 @@ class FileSystemDirectory(uri: Uri) : FileSystemPath(uri) {
|
|
|
114
114
|
mapOf(
|
|
115
115
|
"isDirectory" to isDir,
|
|
116
116
|
"uri" to if (isDir) {
|
|
117
|
-
if (uriString.endsWith("/"))
|
|
117
|
+
if (uriString.endsWith("/")) {
|
|
118
|
+
uriString
|
|
119
|
+
} else {
|
|
120
|
+
"$uriString/"
|
|
121
|
+
}
|
|
118
122
|
} else {
|
|
119
123
|
uriString
|
|
120
124
|
}
|
|
@@ -124,7 +128,11 @@ class FileSystemDirectory(uri: Uri) : FileSystemPath(uri) {
|
|
|
124
128
|
|
|
125
129
|
fun asString(): String {
|
|
126
130
|
val uriString = file.uri.toString()
|
|
127
|
-
return if (uriString.endsWith("/"))
|
|
131
|
+
return if (uriString.endsWith("/")) {
|
|
132
|
+
uriString
|
|
133
|
+
} else {
|
|
134
|
+
"$uriString/"
|
|
135
|
+
}
|
|
128
136
|
}
|
|
129
137
|
|
|
130
138
|
fun needsCreation(options: CreateOptions): Boolean {
|
|
@@ -207,7 +207,11 @@ class FileSystemDownloadTask : SharedObject() {
|
|
|
207
207
|
|
|
208
208
|
// 206 = server supports Range, 200 = server ignored it (sends full content)
|
|
209
209
|
val isPartial = resp.code == 206
|
|
210
|
-
val effectiveOffset = if (isResume && isPartial)
|
|
210
|
+
val effectiveOffset = if (isResume && isPartial) {
|
|
211
|
+
offset
|
|
212
|
+
} else {
|
|
213
|
+
0L
|
|
214
|
+
}
|
|
211
215
|
|
|
212
216
|
val contentLength = responseBody.contentLength()
|
|
213
217
|
val totalBytes = calculateDownloadTotalBytes(resp.code, contentLength, effectiveOffset)
|
|
@@ -141,7 +141,11 @@ class FileSystemFile(uri: Uri) : FileSystemPath(uri) {
|
|
|
141
141
|
|
|
142
142
|
fun asString(): String {
|
|
143
143
|
val uriString = file.uri.toString()
|
|
144
|
-
return if (uriString.endsWith("/"))
|
|
144
|
+
return if (uriString.endsWith("/")) {
|
|
145
|
+
uriString.dropLast(1)
|
|
146
|
+
} else {
|
|
147
|
+
uriString
|
|
148
|
+
}
|
|
145
149
|
}
|
|
146
150
|
|
|
147
151
|
fun text(): String {
|
|
@@ -37,7 +37,11 @@ enum class FileMode(val descriptor: String) : Enumerable {
|
|
|
37
37
|
* Other modes like `"wa"` or `"wt"` need to be handled manually.
|
|
38
38
|
*/
|
|
39
39
|
val rafMode: String
|
|
40
|
-
get() = if (this == READ)
|
|
40
|
+
get() = if (this == READ) {
|
|
41
|
+
"r"
|
|
42
|
+
} else {
|
|
43
|
+
"rw"
|
|
44
|
+
}
|
|
41
45
|
|
|
42
46
|
fun ensureCanRead() = when (this) {
|
|
43
47
|
READ, READ_WRITE -> {}
|
|
@@ -133,7 +137,9 @@ class FileSystemFileHandle private constructor(
|
|
|
133
137
|
var bytesRead = 0
|
|
134
138
|
while (bytesRead < readAmount) {
|
|
135
139
|
val result = fileChannel.read(buffer)
|
|
136
|
-
if (result == -1)
|
|
140
|
+
if (result == -1) {
|
|
141
|
+
break
|
|
142
|
+
}
|
|
137
143
|
bytesRead += result
|
|
138
144
|
}
|
|
139
145
|
|
|
@@ -171,7 +177,9 @@ class FileSystemFileHandle private constructor(
|
|
|
171
177
|
}
|
|
172
178
|
}
|
|
173
179
|
set(value) {
|
|
174
|
-
if (value == null)
|
|
180
|
+
if (value == null) {
|
|
181
|
+
return
|
|
182
|
+
}
|
|
175
183
|
synchronized(lock) {
|
|
176
184
|
fileChannel.position(value)
|
|
177
185
|
}
|
|
@@ -276,7 +276,13 @@ abstract class FileSystemPath(var uri: Uri) : SharedObject() {
|
|
|
276
276
|
val currentPath = currentUri.trimEnd('/')
|
|
277
277
|
val parentUri = currentUri.substring(0, currentPath.lastIndexOf('/') + 1)
|
|
278
278
|
val renamedUri = Uri.parse(parentUri).buildUpon().appendPath(newName).build().toString()
|
|
279
|
-
return Uri.parse(
|
|
279
|
+
return Uri.parse(
|
|
280
|
+
if (this is FileSystemDirectory) {
|
|
281
|
+
"$renamedUri/"
|
|
282
|
+
} else {
|
|
283
|
+
renamedUri
|
|
284
|
+
}
|
|
285
|
+
)
|
|
280
286
|
}
|
|
281
287
|
|
|
282
288
|
val modificationTime: Long?
|
|
@@ -267,7 +267,11 @@ internal class FileSystemWatcher(
|
|
|
267
267
|
isDirectory = isDirectory,
|
|
268
268
|
nativeEventFlags = flags.rawValue,
|
|
269
269
|
newPath = newPath,
|
|
270
|
-
newPathIsDirectory = if (newPath != null)
|
|
270
|
+
newPathIsDirectory = if (newPath != null) {
|
|
271
|
+
newPathIsDirectory ?: isDirectory
|
|
272
|
+
} else {
|
|
273
|
+
null
|
|
274
|
+
}
|
|
271
275
|
)
|
|
272
276
|
)
|
|
273
277
|
}
|
|
@@ -310,7 +314,11 @@ internal class FileSystemWatcher(
|
|
|
310
314
|
get() = flags.isSelfEvent
|
|
311
315
|
|
|
312
316
|
val selfEventType: WatchEventType
|
|
313
|
-
get() = if (flags.isSelfDelete)
|
|
317
|
+
get() = if (flags.isSelfDelete) {
|
|
318
|
+
WatchEventType.DELETED
|
|
319
|
+
} else {
|
|
320
|
+
WatchEventType.RENAMED
|
|
321
|
+
}
|
|
314
322
|
|
|
315
323
|
fun resolveIsDirectory(watchedFile: File, defaultValue: Boolean): Boolean {
|
|
316
324
|
return when {
|
|
@@ -69,24 +69,32 @@ sealed class CopyMoveStrategy(
|
|
|
69
69
|
if (file.exists()) {
|
|
70
70
|
JavaFile(File(file, fileName).toUri())
|
|
71
71
|
} else {
|
|
72
|
-
if (file.parentFile?.exists() != true)
|
|
72
|
+
if (file.parentFile?.exists() != true) {
|
|
73
|
+
throw DestinationDoesNotExistException()
|
|
74
|
+
}
|
|
73
75
|
file
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
// File → Directory
|
|
77
79
|
!sourceIsDir && spec.isDirectory -> {
|
|
78
|
-
if (!file.exists())
|
|
80
|
+
if (!file.exists()) {
|
|
81
|
+
throw DestinationDoesNotExistException()
|
|
82
|
+
}
|
|
79
83
|
JavaFile(File(file, fileName).toUri())
|
|
80
84
|
}
|
|
81
85
|
// File → File
|
|
82
86
|
else -> {
|
|
83
|
-
if (file.parentFile?.exists() != true)
|
|
87
|
+
if (file.parentFile?.exists() != true) {
|
|
88
|
+
throw DestinationDoesNotExistException()
|
|
89
|
+
}
|
|
84
90
|
file
|
|
85
91
|
}
|
|
86
92
|
}
|
|
87
93
|
|
|
88
94
|
target.takeIf { it.exists() }?.let {
|
|
89
|
-
if (!spec.overwrite)
|
|
95
|
+
if (!spec.overwrite) {
|
|
96
|
+
throw DestinationAlreadyExistsException()
|
|
97
|
+
}
|
|
90
98
|
it.deleteRecursively()
|
|
91
99
|
}
|
|
92
100
|
|
|
@@ -125,7 +133,9 @@ sealed class CopyMoveStrategy(
|
|
|
125
133
|
// → SAF File (not a directory spec)
|
|
126
134
|
if (!spec.isDirectory) {
|
|
127
135
|
if (file.exists()) {
|
|
128
|
-
if (!spec.overwrite)
|
|
136
|
+
if (!spec.overwrite) {
|
|
137
|
+
throw DestinationAlreadyExistsException()
|
|
138
|
+
}
|
|
129
139
|
file.deleteRecursively()
|
|
130
140
|
}
|
|
131
141
|
return DestinationSink.SAF(spec, file, isContainer = false)
|
|
@@ -134,7 +144,9 @@ sealed class CopyMoveStrategy(
|
|
|
134
144
|
// → SAF Directory that doesn't exist
|
|
135
145
|
if (!file.exists()) {
|
|
136
146
|
if (source.isDirectory()) {
|
|
137
|
-
if (file.parentFile?.exists() != true)
|
|
147
|
+
if (file.parentFile?.exists() != true) {
|
|
148
|
+
throw DestinationDoesNotExistException()
|
|
149
|
+
}
|
|
138
150
|
return DestinationSink.SAF(spec, file, isContainer = false)
|
|
139
151
|
} else {
|
|
140
152
|
throw DestinationDoesNotExistException()
|
|
@@ -180,7 +192,9 @@ sealed class CopyMoveStrategy(
|
|
|
180
192
|
|
|
181
193
|
class ContentProvider(override val file: ContentProviderFile) : CopyMoveStrategy(file) {
|
|
182
194
|
override fun prepareAsDestination(source: UnifiedFileInterface, spec: DestinationSpec): DestinationSink {
|
|
183
|
-
if (file.exists() && !spec.overwrite)
|
|
195
|
+
if (file.exists() && !spec.overwrite) {
|
|
196
|
+
throw DestinationAlreadyExistsException()
|
|
197
|
+
}
|
|
184
198
|
return DestinationSink.ContentResource(spec)
|
|
185
199
|
}
|
|
186
200
|
|
|
@@ -191,7 +205,9 @@ sealed class CopyMoveStrategy(
|
|
|
191
205
|
|
|
192
206
|
class Asset(override val file: AssetFile) : CopyMoveStrategy(file) {
|
|
193
207
|
override fun prepareAsDestination(source: UnifiedFileInterface, spec: DestinationSpec): DestinationSink {
|
|
194
|
-
if (file.exists() && !spec.overwrite)
|
|
208
|
+
if (file.exists() && !spec.overwrite) {
|
|
209
|
+
throw DestinationAlreadyExistsException()
|
|
210
|
+
}
|
|
195
211
|
return DestinationSink.Asset(spec)
|
|
196
212
|
}
|
|
197
213
|
|
|
@@ -343,7 +343,11 @@ open class FileSystemLegacyModule : Module() {
|
|
|
343
343
|
val file = uri.toFile()
|
|
344
344
|
val previouslyCreated = file.isDirectory
|
|
345
345
|
val setIntermediates = options.intermediates
|
|
346
|
-
val success = if (setIntermediates)
|
|
346
|
+
val success = if (setIntermediates) {
|
|
347
|
+
file.mkdirs()
|
|
348
|
+
} else {
|
|
349
|
+
file.mkdir()
|
|
350
|
+
}
|
|
347
351
|
if (success || setIntermediates && previouslyCreated) {
|
|
348
352
|
return@AsyncFunction
|
|
349
353
|
} else {
|
|
@@ -971,7 +975,11 @@ open class FileSystemLegacyModule : Module() {
|
|
|
971
975
|
override fun read(sink: Buffer, byteCount: Long): Long {
|
|
972
976
|
val bytesRead = super.read(sink, byteCount)
|
|
973
977
|
// read() returns the number of bytes read, or -1 if this source is exhausted.
|
|
974
|
-
totalBytesRead += if (bytesRead != -1L)
|
|
978
|
+
totalBytesRead += if (bytesRead != -1L) {
|
|
979
|
+
bytesRead
|
|
980
|
+
} else {
|
|
981
|
+
0
|
|
982
|
+
}
|
|
975
983
|
progressListener.update(
|
|
976
984
|
totalBytesRead,
|
|
977
985
|
responseBody?.contentLength()
|
|
@@ -1060,7 +1068,14 @@ open class FileSystemLegacyModule : Module() {
|
|
|
1060
1068
|
@Throws(IOException::class)
|
|
1061
1069
|
private fun getOutputStream(uri: Uri, append: Boolean = false) = when {
|
|
1062
1070
|
uri.scheme == "file" -> FileOutputStream(uri.toFile(), append)
|
|
1063
|
-
uri.isSAFUri -> context.contentResolver.openOutputStream(
|
|
1071
|
+
uri.isSAFUri -> context.contentResolver.openOutputStream(
|
|
1072
|
+
uri,
|
|
1073
|
+
if (append) {
|
|
1074
|
+
"wa"
|
|
1075
|
+
} else {
|
|
1076
|
+
"w"
|
|
1077
|
+
}
|
|
1078
|
+
)!!
|
|
1064
1079
|
else -> throw IOException("Unsupported scheme for location '$uri'.")
|
|
1065
1080
|
}
|
|
1066
1081
|
|
|
@@ -71,7 +71,11 @@ class AssetFile(private val context: Context, override val uri: Uri) : UnifiedFi
|
|
|
71
71
|
override fun listFilesAsUnified(): List<UnifiedFileInterface> {
|
|
72
72
|
val list = context.assets.list(path)
|
|
73
73
|
return list?.map { name ->
|
|
74
|
-
val childPath = if (path.isEmpty())
|
|
74
|
+
val childPath = if (path.isEmpty()) {
|
|
75
|
+
name
|
|
76
|
+
} else {
|
|
77
|
+
"$path/$name"
|
|
78
|
+
}
|
|
75
79
|
AssetFile(context, "asset:///$childPath".toUri()) as UnifiedFileInterface
|
|
76
80
|
} ?: emptyList()
|
|
77
81
|
}
|
|
@@ -135,7 +139,11 @@ class AssetFile(private val context: Context, override val uri: Uri) : UnifiedFi
|
|
|
135
139
|
if (isDirectory()) {
|
|
136
140
|
val assets = context.assets.list(path)
|
|
137
141
|
assets?.forEach { assetName ->
|
|
138
|
-
val childPath = if (path.isEmpty())
|
|
142
|
+
val childPath = if (path.isEmpty()) {
|
|
143
|
+
assetName
|
|
144
|
+
} else {
|
|
145
|
+
"$path/$assetName"
|
|
146
|
+
}
|
|
139
147
|
val childFile = AssetFile(context, "asset:///$childPath".toUri())
|
|
140
148
|
yieldAll(childFile.walkTopDown())
|
|
141
149
|
}
|
|
@@ -73,7 +73,11 @@ class SAFDocumentFile(private val context: Context, override val uri: Uri) : Uni
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
override fun outputStream(append: Boolean): OutputStream {
|
|
76
|
-
val mode = if (append)
|
|
76
|
+
val mode = if (append) {
|
|
77
|
+
"wa"
|
|
78
|
+
} else {
|
|
79
|
+
"w"
|
|
80
|
+
}
|
|
77
81
|
return context.contentResolver.openOutputStream(uri, mode)
|
|
78
82
|
?: throw IllegalStateException("Unable to open output stream for URI: $uri")
|
|
79
83
|
}
|
package/expo-module.config.json
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
17881c3c1444cadea54a0651e8e38942
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
886d3dd249542cd4a28e964672045bee75e9948d
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
f7e5c1cad0657e9a1bde5fb97e17ed278c6aa6d7b64179446868a5d908cc41ed
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3b89dab4259e235e6fb8b41b4e79ad32f0a8e3b78235fe36b49bfa54a029c82da70c0ae85484e6629505b3e31ef7b96ccdfe226cc31b3fdaeb0b48358a412b1e
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
f7847861e50034679000abd6f6af9e68
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
062c7a07305b6e73c0c16068d81b88fc67bf8587
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
6c6e9298933f2d5b8bf50b137594c444dc6556be7a105cfd7afab56eae332aa6
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
b102fd9189898416c4801647b4c34a895dfd69cfcaeacfd07fd70ed477742afb1a15c1e26e754032ce36c181dff4e8fa72d99da0d01ae90340c022a897301362
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"component": {
|
|
4
4
|
"group": "host.exp.exponent",
|
|
5
5
|
"module": "expo.modules.filesystem",
|
|
6
|
-
"version": "58.0.
|
|
6
|
+
"version": "58.0.5",
|
|
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-58.0.
|
|
72
|
-
"url": "expo.modules.filesystem-58.0.
|
|
73
|
-
"size":
|
|
74
|
-
"sha512": "
|
|
75
|
-
"sha256": "
|
|
76
|
-
"sha1": "
|
|
77
|
-
"md5": "
|
|
71
|
+
"name": "expo.modules.filesystem-58.0.5.aar",
|
|
72
|
+
"url": "expo.modules.filesystem-58.0.5.aar",
|
|
73
|
+
"size": 764215,
|
|
74
|
+
"sha512": "b102fd9189898416c4801647b4c34a895dfd69cfcaeacfd07fd70ed477742afb1a15c1e26e754032ce36c181dff4e8fa72d99da0d01ae90340c022a897301362",
|
|
75
|
+
"sha256": "6c6e9298933f2d5b8bf50b137594c444dc6556be7a105cfd7afab56eae332aa6",
|
|
76
|
+
"sha1": "062c7a07305b6e73c0c16068d81b88fc67bf8587",
|
|
77
|
+
"md5": "f7847861e50034679000abd6f6af9e68"
|
|
78
78
|
}
|
|
79
79
|
]
|
|
80
80
|
},
|
|
@@ -157,13 +157,13 @@
|
|
|
157
157
|
],
|
|
158
158
|
"files": [
|
|
159
159
|
{
|
|
160
|
-
"name": "expo.modules.filesystem-58.0.
|
|
161
|
-
"url": "expo.modules.filesystem-58.0.
|
|
162
|
-
"size":
|
|
163
|
-
"sha512": "
|
|
164
|
-
"sha256": "
|
|
165
|
-
"sha1": "
|
|
166
|
-
"md5": "
|
|
160
|
+
"name": "expo.modules.filesystem-58.0.5.aar",
|
|
161
|
+
"url": "expo.modules.filesystem-58.0.5.aar",
|
|
162
|
+
"size": 764215,
|
|
163
|
+
"sha512": "b102fd9189898416c4801647b4c34a895dfd69cfcaeacfd07fd70ed477742afb1a15c1e26e754032ce36c181dff4e8fa72d99da0d01ae90340c022a897301362",
|
|
164
|
+
"sha256": "6c6e9298933f2d5b8bf50b137594c444dc6556be7a105cfd7afab56eae332aa6",
|
|
165
|
+
"sha1": "062c7a07305b6e73c0c16068d81b88fc67bf8587",
|
|
166
|
+
"md5": "f7847861e50034679000abd6f6af9e68"
|
|
167
167
|
}
|
|
168
168
|
]
|
|
169
169
|
},
|
|
@@ -177,13 +177,13 @@
|
|
|
177
177
|
},
|
|
178
178
|
"files": [
|
|
179
179
|
{
|
|
180
|
-
"name": "expo.modules.filesystem-58.0.
|
|
181
|
-
"url": "expo.modules.filesystem-58.0.
|
|
182
|
-
"size":
|
|
183
|
-
"sha512": "
|
|
184
|
-
"sha256": "
|
|
185
|
-
"sha1": "
|
|
186
|
-
"md5": "
|
|
180
|
+
"name": "expo.modules.filesystem-58.0.5-sources.jar",
|
|
181
|
+
"url": "expo.modules.filesystem-58.0.5-sources.jar",
|
|
182
|
+
"size": 54065,
|
|
183
|
+
"sha512": "3b89dab4259e235e6fb8b41b4e79ad32f0a8e3b78235fe36b49bfa54a029c82da70c0ae85484e6629505b3e31ef7b96ccdfe226cc31b3fdaeb0b48358a412b1e",
|
|
184
|
+
"sha256": "f7e5c1cad0657e9a1bde5fb97e17ed278c6aa6d7b64179446868a5d908cc41ed",
|
|
185
|
+
"sha1": "886d3dd249542cd4a28e964672045bee75e9948d",
|
|
186
|
+
"md5": "17881c3c1444cadea54a0651e8e38942"
|
|
187
187
|
}
|
|
188
188
|
]
|
|
189
189
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
384d4fe9e380840f9cf7024741703f35
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0383d181e4cb3fdb7b73fb88ccfee43da560a4c6
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
f3868fa574148e21fa0962ba6a9169d72d6804bce5420a1103b5ed49aadadaae
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3439f061251cf9e40ce5462847b8d277d858ddc279d177b6cc9a23485839d837366ba5d73b9a50e5a65b8e32da9c90ce58651420658b0735dfbaa75b8a26c668
|
|
@@ -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>58.0.
|
|
12
|
+
<version>58.0.5</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
|
+
90e63a470b5a4c9e86296a7a840148fe
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
cdb888c68fe4750a487044e96ba77c0e6a851ced
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
618011ef4bab104361a6c263a69db54b43df09afdd04d1e2ff2af1f90ecb6a45
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
b6f8c3111561bac4fbccedd3b03d4ef658c8d658bfa69d17fc52c82210dfe4cad783576a22ca8f59dfcae254a3876a3921ad46f4463df62d1dcd29e0fa11fc8f
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-file-system",
|
|
3
|
-
"version": "58.0.
|
|
3
|
+
"version": "58.0.5",
|
|
4
4
|
"description": "Provides access to the local file system on the device.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"expo",
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@types/jest": "^29.2.1",
|
|
57
57
|
"@types/node": "^22.14.0",
|
|
58
|
-
"expo-module-scripts": "56.0.
|
|
59
|
-
"jest-expo": "58.0.
|
|
58
|
+
"expo-module-scripts": "56.0.5",
|
|
59
|
+
"jest-expo": "58.0.6"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"expo": "*",
|
|
@@ -65,9 +65,9 @@
|
|
|
65
65
|
"jest": {
|
|
66
66
|
"preset": "expo-module-scripts"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "74f6d2b90bc50bd8df7b160d6e6b2204b37a8ce7",
|
|
69
68
|
"scripts": {
|
|
70
69
|
"precompile-ios": "et prebuild-package-for-publish",
|
|
70
|
+
"precompile-android": "et prebuild-android-package-for-publish",
|
|
71
71
|
"build": "pnpm run build:lib && pnpm run build:plugin",
|
|
72
72
|
"build:lib": "expo-build src",
|
|
73
73
|
"build:plugin": "expo-build --base plugin cjs:src",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
fe8eefe17b59a662796cf3943c21a194
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e550922137f77454a0d11fa3ad650256082de0c0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
36cf581996460a6e5255566cd49701d7da5d9eeeedce8c384d5506c87d4c4745
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
d2ddca5f614fec6403246c467e804fd0c53d8dc57bcdf2e369690b442f375fa9d2a328af645125f22de9ec796dc984acd062f82c33fbc59632c3ac1713063609
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
4060c08ec71f069364aa1b8ed64329d7
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e27167b5cb8e3ae35ef824839c878da25e3e79be
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
285b393ab98bddc521bd3cb71eb8c1927671b44bb2a10d46382a5bcbb27049e7
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
afb749d79c17718b5f03123d1d77c194c7e67c2fee5cb4ae120f32b5222e66fdc26834dcbb7ff3b1a9b8a6ec65e56ac46bfea77a2765f7ac6ec4289ec83ae6dd
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
34644a6f893c998481b85ae57ef1aa2f
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
c1694dc81439abd57ca0addddc493c12bfa8dbe3
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ef7c9c2f345577ad543fb52f09f2db0d6879a8501537d660c14a946a648a26c5
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
b2e335a9ba52a340db15c05e6374d177f54ca10f7d570cf6a534bb6090e3f254498edfa3ab78eb6919b8a4f478b9b5f2421828fcd48e82795ecaf9cdef793108
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
d57e1938abb5d69c8c19c242e521502b
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2bab6cf4d125f2b3ec68a73ad63927461c5460a4
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
75457bb40f2482811ea8d006da864c3b70d5ee1f5f1c15bf907c0b219cb2b5ab
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
5bf716c48060e32d2545bab8d4e4382c22ecd8c921e1972e398eb9753b93168c114a09dd1dcb162f0ab8c0591d8cc3d792f5c676d5830d01c4ca58ce06452d1b
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<metadata>
|
|
3
|
-
<groupId>host.exp.exponent</groupId>
|
|
4
|
-
<artifactId>expo.modules.filesystem</artifactId>
|
|
5
|
-
<versioning>
|
|
6
|
-
<latest>58.0.3</latest>
|
|
7
|
-
<release>58.0.3</release>
|
|
8
|
-
<versions>
|
|
9
|
-
<version>58.0.3</version>
|
|
10
|
-
</versions>
|
|
11
|
-
<lastUpdated>20260928121121</lastUpdated>
|
|
12
|
-
</versioning>
|
|
13
|
-
</metadata>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ea82a8a8961e907f1c0a75c8cf084c34
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
a8bd1820403f7e78f85202370b02425367931e17
|
package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha256
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
89ae118d4e04198ba618f729a7d45ed36c975302e503315a1ffc4af17c2f30df
|
package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha512
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ab4b24eae863512505dc703280833f835cf39d5932569e0cff4b75234e2e0cf15dbb05221a4cdc37b71ffa81be9680b2e5be820b70d54c8f2e6ee1c314c5e54f
|