expo-file-system 55.0.4 → 55.0.6
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 +12 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/expo/modules/filesystem/FileSystemDirectory.kt +7 -2
- package/android/src/main/java/expo/modules/filesystem/FileSystemFile.kt +8 -8
- package/android/src/main/java/expo/modules/filesystem/FileSystemModule.kt +4 -3
- package/android/src/main/java/expo/modules/filesystem/FileSystemNextRecords.kt +3 -1
- package/android/src/main/java/expo/modules/filesystem/legacy/FileSystemLegacyModule.kt +5 -4
- package/android/src/main/java/expo/modules/filesystem/legacy/FileSystemRecords.kt +3 -1
- package/android/src/main/java/expo/modules/filesystem/unifiedfile/AssetFile.kt +8 -5
- package/android/src/main/java/expo/modules/filesystem/unifiedfile/JavaFile.kt +2 -2
- package/android/src/main/java/expo/modules/filesystem/unifiedfile/SAFDocumentFile.kt +4 -3
- package/android/src/main/java/expo/modules/filesystem/unifiedfile/UnifiedFileInterface.kt +1 -1
- package/build/ExpoFileSystem.types.d.ts +5 -0
- package/build/ExpoFileSystem.types.d.ts.map +1 -1
- package/build/legacy/FileSystem.types.d.ts +5 -0
- package/build/legacy/FileSystem.types.d.ts.map +1 -1
- package/expo-module.config.json +1 -1
- package/ios/FileSystemFile.swift +32 -6
- package/ios/FileSystemModule.swift +4 -3
- package/ios/FileSystemRecords.swift +1 -0
- package/ios/Legacy/FileSystemLegacyModule.swift +23 -3
- package/ios/Legacy/FileSystemLegacyRecords.swift +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6-sources.jar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6-sources.jar.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6-sources.jar.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6-sources.jar.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6-sources.jar.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6.aar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6.aar.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6.aar.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6.aar.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6.aar.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{55.0.4/expo.modules.filesystem-55.0.4.module → 55.0.6/expo.modules.filesystem-55.0.6.module} +22 -22
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6.module.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6.module.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6.module.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6.module.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{55.0.4/expo.modules.filesystem-55.0.4.pom → 55.0.6/expo.modules.filesystem-55.0.6.pom} +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6.pom.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6.pom.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6.pom.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.6/expo.modules.filesystem-55.0.6.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/package.json +2 -2
- package/src/ExpoFileSystem.types.ts +5 -0
- package/src/legacy/FileSystem.types.ts +5 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4-sources.jar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4-sources.jar.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4-sources.jar.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4-sources.jar.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4-sources.jar.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4.aar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4.aar.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4.aar.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4.aar.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4.aar.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4.module.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4.module.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4.module.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4.module.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4.pom.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4.pom.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4.pom.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/55.0.4/expo.modules.filesystem-55.0.4.pom.sha512 +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,18 @@
|
|
|
10
10
|
|
|
11
11
|
### 💡 Others
|
|
12
12
|
|
|
13
|
+
## 55.0.6 — 2026-02-16
|
|
14
|
+
|
|
15
|
+
### 🐛 Bug fixes
|
|
16
|
+
|
|
17
|
+
- [Android] Fix bundle directory listing returning incorrect names, URIs and trailing slashes for files. ([#42882](https://github.com/expo/expo/pull/42882) by [@aleqsio](https://github.com/aleqsio))
|
|
18
|
+
|
|
19
|
+
## 55.0.5 — 2026-02-08
|
|
20
|
+
|
|
21
|
+
### 🎉 New features
|
|
22
|
+
|
|
23
|
+
- Add `append` option to write methods. ([#42778](https://github.com/expo/expo/pull/42778) by [@aleqsio](https://github.com/aleqsio))
|
|
24
|
+
|
|
13
25
|
## 55.0.4 — 2026-02-03
|
|
14
26
|
|
|
15
27
|
_This version does not introduce any user-facing changes._
|
package/android/build.gradle
CHANGED
|
@@ -93,9 +93,14 @@ class FileSystemDirectory(uri: Uri) : FileSystemPath(uri) {
|
|
|
93
93
|
validatePermission(Permission.READ)
|
|
94
94
|
return file.listFilesAsUnified().map {
|
|
95
95
|
val uriString = it.uri.toString()
|
|
96
|
+
val isDir = it.isDirectory()
|
|
96
97
|
mapOf(
|
|
97
|
-
"isDirectory" to
|
|
98
|
-
"uri" to if (
|
|
98
|
+
"isDirectory" to isDir,
|
|
99
|
+
"uri" to if (isDir) {
|
|
100
|
+
if (uriString.endsWith("/")) uriString else "$uriString/"
|
|
101
|
+
} else {
|
|
102
|
+
uriString
|
|
103
|
+
}
|
|
99
104
|
)
|
|
100
105
|
}
|
|
101
106
|
}
|
|
@@ -50,48 +50,48 @@ class FileSystemFile(uri: Uri) : FileSystemPath(uri) {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
fun write(content: String) {
|
|
53
|
+
fun write(content: String, append: Boolean = false) {
|
|
54
54
|
validateType()
|
|
55
55
|
validatePermission(Permission.WRITE)
|
|
56
56
|
if (!exists) {
|
|
57
57
|
create()
|
|
58
58
|
}
|
|
59
|
-
file.outputStream().use { outputStream ->
|
|
59
|
+
file.outputStream(append).use { outputStream ->
|
|
60
60
|
outputStream.write(content.toByteArray())
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
fun write(content: TypedArray) {
|
|
64
|
+
fun write(content: TypedArray, append: Boolean = false) {
|
|
65
65
|
validateType()
|
|
66
66
|
validatePermission(Permission.WRITE)
|
|
67
67
|
if (!exists) {
|
|
68
68
|
create()
|
|
69
69
|
}
|
|
70
70
|
if (uri.isContentUri) {
|
|
71
|
-
file.outputStream().use { outputStream ->
|
|
71
|
+
file.outputStream(append).use { outputStream ->
|
|
72
72
|
val array = ByteArray(content.length)
|
|
73
73
|
content.toDirectBuffer().get(array)
|
|
74
74
|
outputStream.write(array)
|
|
75
75
|
}
|
|
76
76
|
} else {
|
|
77
|
-
FileOutputStream(javaFile).use {
|
|
77
|
+
FileOutputStream(javaFile, append).use {
|
|
78
78
|
it.channel.write(content.toDirectBuffer())
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
fun write(content: ByteArray) {
|
|
83
|
+
fun write(content: ByteArray, append: Boolean = false) {
|
|
84
84
|
validateType()
|
|
85
85
|
validatePermission(Permission.WRITE)
|
|
86
86
|
if (!exists) {
|
|
87
87
|
create()
|
|
88
88
|
}
|
|
89
89
|
if (uri.isContentUri) {
|
|
90
|
-
file.outputStream().use { outputStream ->
|
|
90
|
+
file.outputStream(append).use { outputStream ->
|
|
91
91
|
outputStream.write(content)
|
|
92
92
|
}
|
|
93
93
|
} else {
|
|
94
|
-
FileOutputStream(javaFile).use {
|
|
94
|
+
FileOutputStream(javaFile, append).use {
|
|
95
95
|
it.write(content)
|
|
96
96
|
}
|
|
97
97
|
}
|
|
@@ -150,18 +150,19 @@ class FileSystemModule : Module() {
|
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
Function("write") { file: FileSystemFile, content: Either<String, TypedArray>, options: WriteOptions? ->
|
|
153
|
+
val append = options?.append ?: false
|
|
153
154
|
if (content.`is`(String::class)) {
|
|
154
155
|
content.get(String::class).let {
|
|
155
156
|
if (options?.encoding == EncodingType.BASE64) {
|
|
156
|
-
file.write(Base64.decode(it, Base64.DEFAULT))
|
|
157
|
+
file.write(Base64.decode(it, Base64.DEFAULT), append)
|
|
157
158
|
} else {
|
|
158
|
-
file.write(it)
|
|
159
|
+
file.write(it, append)
|
|
159
160
|
}
|
|
160
161
|
}
|
|
161
162
|
}
|
|
162
163
|
if (content.`is`(TypedArray::class)) {
|
|
163
164
|
content.get(TypedArray::class).let {
|
|
164
|
-
file.write(it)
|
|
165
|
+
file.write(it, append)
|
|
165
166
|
}
|
|
166
167
|
}
|
|
167
168
|
}
|
|
@@ -25,7 +25,9 @@ enum class EncodingType(val value: String) : Enumerable {
|
|
|
25
25
|
|
|
26
26
|
data class WriteOptions(
|
|
27
27
|
@Field
|
|
28
|
-
val encoding: EncodingType = EncodingType.UTF8
|
|
28
|
+
val encoding: EncodingType = EncodingType.UTF8,
|
|
29
|
+
@Field
|
|
30
|
+
val append: Boolean = false
|
|
29
31
|
) : Record
|
|
30
32
|
|
|
31
33
|
data class DownloadOptions(
|
|
@@ -210,7 +210,8 @@ open class FileSystemLegacyModule : Module() {
|
|
|
210
210
|
val uri = Uri.parse(slashifyFilePath(uriStr))
|
|
211
211
|
ensurePermission(uri, Permission.WRITE)
|
|
212
212
|
val encoding = options.encoding
|
|
213
|
-
|
|
213
|
+
val append = options.append
|
|
214
|
+
getOutputStream(uri, append).use { out ->
|
|
214
215
|
if (encoding == EncodingType.BASE64) {
|
|
215
216
|
val bytes = Base64.decode(contents, Base64.DEFAULT)
|
|
216
217
|
out.write(bytes)
|
|
@@ -1068,9 +1069,9 @@ open class FileSystemLegacyModule : Module() {
|
|
|
1068
1069
|
}
|
|
1069
1070
|
|
|
1070
1071
|
@Throws(IOException::class)
|
|
1071
|
-
private fun getOutputStream(uri: Uri) = when {
|
|
1072
|
-
uri.scheme == "file" -> FileOutputStream(uri.toFile())
|
|
1073
|
-
uri.isSAFUri -> context.contentResolver.openOutputStream(uri)!!
|
|
1072
|
+
private fun getOutputStream(uri: Uri, append: Boolean = false) = when {
|
|
1073
|
+
uri.scheme == "file" -> FileOutputStream(uri.toFile(), append)
|
|
1074
|
+
uri.isSAFUri -> context.contentResolver.openOutputStream(uri, if (append) "wa" else "w")!!
|
|
1074
1075
|
else -> throw IOException("Unsupported scheme for location '$uri'.")
|
|
1075
1076
|
}
|
|
1076
1077
|
|
|
@@ -63,7 +63,9 @@ data class DownloadOptionsLegacy(
|
|
|
63
63
|
|
|
64
64
|
data class WritingOptions(
|
|
65
65
|
@Field
|
|
66
|
-
val encoding: EncodingType = EncodingType.UTF8
|
|
66
|
+
val encoding: EncodingType = EncodingType.UTF8,
|
|
67
|
+
@Field
|
|
68
|
+
val append: Boolean = false
|
|
67
69
|
) : Record
|
|
68
70
|
|
|
69
71
|
data class FileSystemUploadOptions(
|
|
@@ -50,7 +50,7 @@ class AssetFile(private val context: Context, override val uri: Uri) : UnifiedFi
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
val parentPath = currentPath.substringBeforeLast('/')
|
|
53
|
-
val parentUri = "asset
|
|
53
|
+
val parentUri = "asset:///$parentPath".toUri()
|
|
54
54
|
|
|
55
55
|
return AssetFile(context, parentUri)
|
|
56
56
|
}
|
|
@@ -69,7 +69,10 @@ class AssetFile(private val context: Context, override val uri: Uri) : UnifiedFi
|
|
|
69
69
|
|
|
70
70
|
override fun listFilesAsUnified(): List<UnifiedFileInterface> {
|
|
71
71
|
val list = context.assets.list(path)
|
|
72
|
-
return list?.map { name ->
|
|
72
|
+
return list?.map { name ->
|
|
73
|
+
val childPath = if (path.isEmpty()) name else "$path/$name"
|
|
74
|
+
AssetFile(context, "asset:///$childPath".toUri()) as UnifiedFileInterface
|
|
75
|
+
} ?: emptyList()
|
|
73
76
|
}
|
|
74
77
|
|
|
75
78
|
override val type: String?
|
|
@@ -95,7 +98,7 @@ class AssetFile(private val context: Context, override val uri: Uri) : UnifiedFi
|
|
|
95
98
|
return null
|
|
96
99
|
}
|
|
97
100
|
|
|
98
|
-
override fun outputStream(): OutputStream {
|
|
101
|
+
override fun outputStream(append: Boolean): OutputStream {
|
|
99
102
|
throw UnsupportedOperationException("Asset files are not writable")
|
|
100
103
|
}
|
|
101
104
|
|
|
@@ -131,8 +134,8 @@ class AssetFile(private val context: Context, override val uri: Uri) : UnifiedFi
|
|
|
131
134
|
if (isDirectory()) {
|
|
132
135
|
val assets = context.assets.list(path)
|
|
133
136
|
assets?.forEach { assetName ->
|
|
134
|
-
val
|
|
135
|
-
val childFile = AssetFile(context,
|
|
137
|
+
val childPath = if (path.isEmpty()) assetName else "$path/$assetName"
|
|
138
|
+
val childFile = AssetFile(context, "asset:///$childPath".toUri())
|
|
136
139
|
yieldAll(childFile.walkTopDown())
|
|
137
140
|
}
|
|
138
141
|
}
|
|
@@ -68,8 +68,8 @@ class JavaFile(override val uri: Uri) : UnifiedFileInterface, File(URI.create(ur
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
override fun outputStream(): OutputStream {
|
|
72
|
-
return FileOutputStream(this)
|
|
71
|
+
override fun outputStream(append: Boolean): OutputStream {
|
|
72
|
+
return FileOutputStream(this, append)
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
override fun inputStream(): InputStream {
|
|
@@ -70,14 +70,15 @@ class SAFDocumentFile(private val context: Context, override val uri: Uri) : Uni
|
|
|
70
70
|
return null
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
override fun outputStream(): OutputStream {
|
|
74
|
-
|
|
73
|
+
override fun outputStream(append: Boolean): OutputStream {
|
|
74
|
+
val mode = if (append) "wa" else "w"
|
|
75
|
+
return context.contentResolver.openOutputStream(uri, mode)
|
|
75
76
|
?: throw IllegalStateException("Unable to open output stream for URI: $uri")
|
|
76
77
|
}
|
|
77
78
|
|
|
78
79
|
override fun inputStream(): InputStream {
|
|
79
80
|
return context.contentResolver.openInputStream(uri)
|
|
80
|
-
?: throw IllegalStateException("Unable to open
|
|
81
|
+
?: throw IllegalStateException("Unable to open input stream for URI: $uri")
|
|
81
82
|
}
|
|
82
83
|
|
|
83
84
|
override fun length(): Long {
|
|
@@ -19,7 +19,7 @@ interface UnifiedFileInterface {
|
|
|
19
19
|
val creationTime: Long?
|
|
20
20
|
val fileName: String?
|
|
21
21
|
fun getContentUri(appContext: AppContext): Uri
|
|
22
|
-
fun outputStream(): java.io.OutputStream
|
|
22
|
+
fun outputStream(append: Boolean = false): java.io.OutputStream
|
|
23
23
|
fun inputStream(): java.io.InputStream
|
|
24
24
|
fun length(): Long
|
|
25
25
|
fun walkTopDown(): Sequence<UnifiedFileInterface>
|
|
@@ -26,6 +26,11 @@ export type FileWriteOptions = {
|
|
|
26
26
|
* @default FileSystem.EncodingType.UTF8
|
|
27
27
|
*/
|
|
28
28
|
encoding?: EncodingType | 'utf8' | 'base64';
|
|
29
|
+
/**
|
|
30
|
+
* Whether to append the contents to the end of the file or overwrite the existing file.
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
append?: boolean;
|
|
29
34
|
};
|
|
30
35
|
export type DirectoryCreateOptions = {
|
|
31
36
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoFileSystem.types.d.ts","sourceRoot":"","sources":["../src/ExpoFileSystem.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,oBAAY,YAAY;IACtB;;OAEG;IACH,IAAI,SAAS;IACb;;OAEG;IACH,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpoFileSystem.types.d.ts","sourceRoot":"","sources":["../src/ExpoFileSystem.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -244,6 +244,11 @@ export type WritingOptions = {
|
|
|
244
244
|
* @default FileSystem.EncodingType.UTF8
|
|
245
245
|
*/
|
|
246
246
|
encoding?: EncodingType | 'utf8' | 'base64';
|
|
247
|
+
/**
|
|
248
|
+
* Whether to append the contents to the end of the file or overwrite the existing file.
|
|
249
|
+
* @default false
|
|
250
|
+
*/
|
|
251
|
+
append?: boolean;
|
|
247
252
|
};
|
|
248
253
|
export type DeletingOptions = {
|
|
249
254
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSystem.types.d.ts","sourceRoot":"","sources":["../../src/legacy/FileSystem.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FileSystem.types.d.ts","sourceRoot":"","sources":["../../src/legacy/FileSystem.types.ts"],"names":[],"mappings":"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"}
|
package/expo-module.config.json
CHANGED
package/ios/FileSystemFile.swift
CHANGED
|
@@ -75,23 +75,49 @@ internal final class FileSystemFile: FileSystemPath {
|
|
|
75
75
|
return nil
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
func write(_ content: String) throws {
|
|
78
|
+
func write(_ content: String, append: Bool = false) throws {
|
|
79
79
|
try withCorrectTypeAndScopedAccess(permission: .write) {
|
|
80
|
-
|
|
80
|
+
if append, let data = content.data(using: .utf8) {
|
|
81
|
+
try writeAppending(data)
|
|
82
|
+
} else {
|
|
83
|
+
try content.write(to: url, atomically: false, encoding: .utf8) // TODO: better error handling
|
|
84
|
+
}
|
|
81
85
|
}
|
|
82
86
|
}
|
|
83
87
|
|
|
84
|
-
func write(_ data: Data) throws {
|
|
88
|
+
func write(_ data: Data, append: Bool = false) throws {
|
|
85
89
|
try withCorrectTypeAndScopedAccess(permission: .write) {
|
|
86
|
-
|
|
90
|
+
if append {
|
|
91
|
+
try writeAppending(data)
|
|
92
|
+
} else {
|
|
93
|
+
try data.write(to: url)
|
|
94
|
+
}
|
|
87
95
|
}
|
|
88
96
|
}
|
|
89
97
|
|
|
90
98
|
// TODO: blob support
|
|
91
|
-
func write(_ content: TypedArray) throws {
|
|
99
|
+
func write(_ content: TypedArray, append: Bool = false) throws {
|
|
92
100
|
try withCorrectTypeAndScopedAccess(permission: .write) {
|
|
93
|
-
|
|
101
|
+
let data = Data(bytes: content.rawPointer, count: content.byteLength)
|
|
102
|
+
if append {
|
|
103
|
+
try writeAppending(data)
|
|
104
|
+
} else {
|
|
105
|
+
try data.write(to: url)
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
private func writeAppending(_ data: Data) throws {
|
|
111
|
+
if !FileManager.default.fileExists(atPath: url.path) {
|
|
112
|
+
try data.write(to: url)
|
|
113
|
+
return
|
|
114
|
+
}
|
|
115
|
+
let fileHandle = try FileHandle(forWritingTo: url)
|
|
116
|
+
defer {
|
|
117
|
+
fileHandle.closeFile()
|
|
94
118
|
}
|
|
119
|
+
fileHandle.seekToEndOfFile()
|
|
120
|
+
fileHandle.write(data)
|
|
95
121
|
}
|
|
96
122
|
|
|
97
123
|
func text() throws -> String {
|
|
@@ -203,18 +203,19 @@ public final class FileSystemModule: Module {
|
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
Function("write") { (file: FileSystemFile, content: Either<String, TypedArray>, options: WriteOptions?) in
|
|
206
|
+
let append = options?.append ?? false
|
|
206
207
|
if let content: String = content.get() {
|
|
207
208
|
if options?.encoding == WriteEncoding.base64 {
|
|
208
209
|
guard let data = Data(base64Encoded: content, options: .ignoreUnknownCharacters) else {
|
|
209
210
|
throw UnableToWriteBase64DataException(file.url.absoluteString)
|
|
210
211
|
}
|
|
211
|
-
try file.write(data)
|
|
212
|
+
try file.write(data, append: append)
|
|
212
213
|
} else {
|
|
213
|
-
try file.write(content)
|
|
214
|
+
try file.write(content, append: append)
|
|
214
215
|
}
|
|
215
216
|
}
|
|
216
217
|
if let content: TypedArray = content.get() {
|
|
217
|
-
try file.write(content)
|
|
218
|
+
try file.write(content, append: append)
|
|
218
219
|
}
|
|
219
220
|
}
|
|
220
221
|
|
|
@@ -75,12 +75,32 @@ public final class FileSystemLegacyModule: Module {
|
|
|
75
75
|
AsyncFunction("writeAsStringAsync") { (url: URL, string: String, options: WritingOptions) in
|
|
76
76
|
try ensurePathPermission(appContext, path: url.path, flag: .write)
|
|
77
77
|
|
|
78
|
+
let data: Data?
|
|
78
79
|
if options.encoding == .base64 {
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
data = Data(base64Encoded: string, options: .ignoreUnknownCharacters)
|
|
81
|
+
} else {
|
|
82
|
+
data = string.data(using: options.encoding.toStringEncoding() ?? .utf8)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
guard let data else {
|
|
86
|
+
throw FileNotWritableException(url.path)
|
|
81
87
|
}
|
|
88
|
+
|
|
82
89
|
do {
|
|
83
|
-
|
|
90
|
+
if options.append {
|
|
91
|
+
if !FileManager.default.fileExists(atPath: url.path) {
|
|
92
|
+
try data.write(to: url, options: .atomic)
|
|
93
|
+
} else {
|
|
94
|
+
let fileHandle = try FileHandle(forWritingTo: url)
|
|
95
|
+
defer {
|
|
96
|
+
fileHandle.closeFile()
|
|
97
|
+
}
|
|
98
|
+
fileHandle.seekToEndOfFile()
|
|
99
|
+
fileHandle.write(data)
|
|
100
|
+
}
|
|
101
|
+
} else {
|
|
102
|
+
try data.write(to: url, options: .atomic)
|
|
103
|
+
}
|
|
84
104
|
} catch {
|
|
85
105
|
throw FileNotWritableException(url.path)
|
|
86
106
|
.causedBy(error)
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
8b2504dcd7aaba91ad3ada8c1ff58302
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4de99e1e1c6e4b40cb7c35f718b62b1427badf50
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
9330eaef0805d16ee837eafe6d67c12ba9402e3234bb0cced8480ffb5bb95724
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
328e6fb825b497fa9aa51a7aa90760effdadd597905b9d19f831b759f46cc4b1f9669fcc7b008994e111f96aa0f06606a55cec9c6636dd43d0ccc5e5bfe8733c
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
902202be8d72548d5f94cc97a93e5d94
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
7f23fb8cbb29a79481a61ae98f3bb0678a965eff
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
97eaf1ea3bf2a8d824bb4a28fcd230cb07cb528a2ac5668c6a25bfbf27b70d87
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
fb6e6ab63fae6f645b5d81475f34db643ebff61b7e5f2eda5dd74ff819a7c38b040315ff1387b5cf812d22b736e81528523e5a04c8959dec36a17976ce78573f
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"component": {
|
|
4
4
|
"group": "host.exp.exponent",
|
|
5
5
|
"module": "expo.modules.filesystem",
|
|
6
|
-
"version": "55.0.
|
|
6
|
+
"version": "55.0.6",
|
|
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-55.0.
|
|
79
|
-
"url": "expo.modules.filesystem-55.0.
|
|
80
|
-
"size":
|
|
81
|
-
"sha512": "
|
|
82
|
-
"sha256": "
|
|
83
|
-
"sha1": "
|
|
84
|
-
"md5": "
|
|
78
|
+
"name": "expo.modules.filesystem-55.0.6.aar",
|
|
79
|
+
"url": "expo.modules.filesystem-55.0.6.aar",
|
|
80
|
+
"size": 391155,
|
|
81
|
+
"sha512": "fb6e6ab63fae6f645b5d81475f34db643ebff61b7e5f2eda5dd74ff819a7c38b040315ff1387b5cf812d22b736e81528523e5a04c8959dec36a17976ce78573f",
|
|
82
|
+
"sha256": "97eaf1ea3bf2a8d824bb4a28fcd230cb07cb528a2ac5668c6a25bfbf27b70d87",
|
|
83
|
+
"sha1": "7f23fb8cbb29a79481a61ae98f3bb0678a965eff",
|
|
84
|
+
"md5": "902202be8d72548d5f94cc97a93e5d94"
|
|
85
85
|
}
|
|
86
86
|
]
|
|
87
87
|
},
|
|
@@ -153,13 +153,13 @@
|
|
|
153
153
|
],
|
|
154
154
|
"files": [
|
|
155
155
|
{
|
|
156
|
-
"name": "expo.modules.filesystem-55.0.
|
|
157
|
-
"url": "expo.modules.filesystem-55.0.
|
|
158
|
-
"size":
|
|
159
|
-
"sha512": "
|
|
160
|
-
"sha256": "
|
|
161
|
-
"sha1": "
|
|
162
|
-
"md5": "
|
|
156
|
+
"name": "expo.modules.filesystem-55.0.6.aar",
|
|
157
|
+
"url": "expo.modules.filesystem-55.0.6.aar",
|
|
158
|
+
"size": 391155,
|
|
159
|
+
"sha512": "fb6e6ab63fae6f645b5d81475f34db643ebff61b7e5f2eda5dd74ff819a7c38b040315ff1387b5cf812d22b736e81528523e5a04c8959dec36a17976ce78573f",
|
|
160
|
+
"sha256": "97eaf1ea3bf2a8d824bb4a28fcd230cb07cb528a2ac5668c6a25bfbf27b70d87",
|
|
161
|
+
"sha1": "7f23fb8cbb29a79481a61ae98f3bb0678a965eff",
|
|
162
|
+
"md5": "902202be8d72548d5f94cc97a93e5d94"
|
|
163
163
|
}
|
|
164
164
|
]
|
|
165
165
|
},
|
|
@@ -173,13 +173,13 @@
|
|
|
173
173
|
},
|
|
174
174
|
"files": [
|
|
175
175
|
{
|
|
176
|
-
"name": "expo.modules.filesystem-55.0.
|
|
177
|
-
"url": "expo.modules.filesystem-55.0.
|
|
178
|
-
"size":
|
|
179
|
-
"sha512": "
|
|
180
|
-
"sha256": "
|
|
181
|
-
"sha1": "
|
|
182
|
-
"md5": "
|
|
176
|
+
"name": "expo.modules.filesystem-55.0.6-sources.jar",
|
|
177
|
+
"url": "expo.modules.filesystem-55.0.6-sources.jar",
|
|
178
|
+
"size": 27843,
|
|
179
|
+
"sha512": "328e6fb825b497fa9aa51a7aa90760effdadd597905b9d19f831b759f46cc4b1f9669fcc7b008994e111f96aa0f06606a55cec9c6636dd43d0ccc5e5bfe8733c",
|
|
180
|
+
"sha256": "9330eaef0805d16ee837eafe6d67c12ba9402e3234bb0cced8480ffb5bb95724",
|
|
181
|
+
"sha1": "4de99e1e1c6e4b40cb7c35f718b62b1427badf50",
|
|
182
|
+
"md5": "8b2504dcd7aaba91ad3ada8c1ff58302"
|
|
183
183
|
}
|
|
184
184
|
]
|
|
185
185
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1c632ad49c2b36f0075cc86d7d9773dd
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
e6702506ef6b96d35ce7407e8e08d1be9e2a4d2f
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3b5b1ed5d9cef20c04afa473bd1af4d47f03a0e5b988dd2d2629fb244db59957
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2205bc508440d92e8c724bdbf2ffc23d4bb386228ec4a0f8126302574d9f1f3640a73d28ef916fdcd4f2adc9992a6fc36a492fc172c0ee231994c172f87d6f9d
|
|
@@ -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>55.0.
|
|
12
|
+
<version>55.0.6</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
|
+
e7bbef241bcb1ebd6e018dffd8185927
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
7f9780e200e743b7f2f72058a373e9001810faff
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
08830483f8f16b9543340a36770c17c8c23bffa6d00231c555acca9d5be74c19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
63f159be4ba0b9ee4247d304c3767c728cc9d8179c04bb4a8ef1c7b580c469c0d333e43a48587ff2ed71b59a2e982f38a0521e54c7e5bc67a59d559cb4720fb0
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
<groupId>host.exp.exponent</groupId>
|
|
4
4
|
<artifactId>expo.modules.filesystem</artifactId>
|
|
5
5
|
<versioning>
|
|
6
|
-
<latest>55.0.
|
|
7
|
-
<release>55.0.
|
|
6
|
+
<latest>55.0.6</latest>
|
|
7
|
+
<release>55.0.6</release>
|
|
8
8
|
<versions>
|
|
9
|
-
<version>55.0.
|
|
9
|
+
<version>55.0.6</version>
|
|
10
10
|
</versions>
|
|
11
|
-
<lastUpdated>
|
|
11
|
+
<lastUpdated>20260216170142</lastUpdated>
|
|
12
12
|
</versioning>
|
|
13
13
|
</metadata>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
007ba82e8f59892d5c26ff9e5dbbb05a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3d4931e005e122c589d8d068a95cd15217158b3e
|
package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha256
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
30347f406e9fb93d8163c38bcec9f1bc705b2b91060969dd82063dc64bc3a0ed
|
package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha512
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
b2aaffd4cddf98b38d354064393cc0f89ffd2bef6cfc79b5b2c7cba1ef99a9010a9c97624cff160064ff2243316a5df7a60be605019e992550777f6d97948934
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-file-system",
|
|
3
|
-
"version": "55.0.
|
|
3
|
+
"version": "55.0.6",
|
|
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",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"expo": "*",
|
|
56
56
|
"react-native": "*"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "928cc951854450f3c72e00e8e420e567fabd1f8c"
|
|
59
59
|
}
|
|
@@ -28,6 +28,11 @@ export type FileWriteOptions = {
|
|
|
28
28
|
* @default FileSystem.EncodingType.UTF8
|
|
29
29
|
*/
|
|
30
30
|
encoding?: EncodingType | 'utf8' | 'base64';
|
|
31
|
+
/**
|
|
32
|
+
* Whether to append the contents to the end of the file or overwrite the existing file.
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
append?: boolean;
|
|
31
36
|
};
|
|
32
37
|
|
|
33
38
|
export type DirectoryCreateOptions = {
|
|
@@ -269,6 +269,11 @@ export type WritingOptions = {
|
|
|
269
269
|
* @default FileSystem.EncodingType.UTF8
|
|
270
270
|
*/
|
|
271
271
|
encoding?: EncodingType | 'utf8' | 'base64';
|
|
272
|
+
/**
|
|
273
|
+
* Whether to append the contents to the end of the file or overwrite the existing file.
|
|
274
|
+
* @default false
|
|
275
|
+
*/
|
|
276
|
+
append?: boolean;
|
|
272
277
|
};
|
|
273
278
|
|
|
274
279
|
export type DeletingOptions = {
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
bf72d26fe28bec2e7f5942f57fa45fa0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e9a3ae376ac5f6353f5a8583530d56ab3d539ea2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
93bc2737eea73f9a6d6a85a9ae71695b04652af5876dbf21a60b9903e4c4133d
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
72cb0cc7570e89b67e831ff8b6283ac3d96fff74add3e2fc53f04a76846be336a5a877e24612080aacac1786f0da74ef1b2704d86326506de629f289b9a33c58
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
8a8614ae30e160cdc96805c6361bacbe
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
c6b80673784e3cbd1e2cab0354c3d9340b2fb433
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2b9684d9983f06a3a381cb5d89808a501fe0ba3289128e8e19ae355f29ed6d89
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
bac4c8e263a5ac9bad3d552d67bef08845b69538ea06377043b88cb85765045ecc2bf7950113a74851f8e32de0859231784cbb4c36fb377fe05a97375d240165
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
6ed01e1c8df2e254ab252148d180d80b
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
6fd46eb6b2b937c2a9a8fd2dfecdaf17e1c9da6a
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e00575c2f9215ecd92499dd6f3fb110f0c3d64fb42eebff8b6237dad86bc7411
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
05f3579f7e3b31ae8545376a3d05298ec757fb82c078f07572faa732804bf2972bc0342157c5aa58b6c97f359a6fe67c95d428278fad57945b3d204ae9d17774
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
057fb4b4a48a67fedd3b35a8ccf69471
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
a992635ee4affb5f4735cce7f954ab782c397ffd
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
7b10bd037b382eb8b5583d5bb9820ba7357bc12fa34f316796d9a5ba6ffbdbaf
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
43bd9036b0759300231c34f4c4d2354b10e20587a58c78bc349ef2921ee0e189b5cb1469dc1bbb1b94d08a0a92cdfd5a21f063663e2b45a2619ac0d041885cfe
|