expo-file-system 19.0.18-canary-20251015-a6a1272 → 19.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +22 -4
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/filesystem/FileSystemExceptions.kt +5 -0
  4. package/android/src/main/java/expo/modules/filesystem/FileSystemFile.kt +6 -0
  5. package/android/src/main/java/expo/modules/filesystem/FileSystemModule.kt +4 -0
  6. package/android/src/main/java/expo/modules/filesystem/unifiedfile/AssetFile.kt +17 -0
  7. package/android/src/main/java/expo/modules/filesystem/unifiedfile/JavaFile.kt +10 -0
  8. package/android/src/main/java/expo/modules/filesystem/unifiedfile/SAFDocumentFile.kt +5 -0
  9. package/android/src/main/java/expo/modules/filesystem/unifiedfile/UnifiedFileInterface.kt +2 -0
  10. package/build/ExpoFileSystem.types.d.ts +5 -0
  11. package/build/ExpoFileSystem.types.d.ts.map +1 -1
  12. package/expo-module.config.json +1 -1
  13. package/ios/FileSystemModule.swift +12 -0
  14. package/ios/FileSystemPath.swift +1 -1
  15. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272-sources.jar → 19.0.19/expo.modules.filesystem-19.0.19-sources.jar} +0 -0
  16. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19-sources.jar.md5 +1 -0
  17. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19-sources.jar.sha1 +1 -0
  18. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19-sources.jar.sha256 +1 -0
  19. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19-sources.jar.sha512 +1 -0
  20. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19.aar +0 -0
  21. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19.aar.md5 +1 -0
  22. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19.aar.sha1 +1 -0
  23. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19.aar.sha256 +1 -0
  24. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19.aar.sha512 +1 -0
  25. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.module → 19.0.19/expo.modules.filesystem-19.0.19.module} +23 -23
  26. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19.module.md5 +1 -0
  27. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19.module.sha1 +1 -0
  28. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19.module.sha256 +1 -0
  29. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19.module.sha512 +1 -0
  30. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.pom → 19.0.19/expo.modules.filesystem-19.0.19.pom} +1 -1
  31. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19.pom.md5 +1 -0
  32. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19.pom.sha1 +1 -0
  33. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19.pom.sha256 +1 -0
  34. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.19/expo.modules.filesystem-19.0.19.pom.sha512 +1 -0
  35. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml +4 -4
  36. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.md5 +1 -1
  37. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha1 +1 -1
  38. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha256 +1 -1
  39. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha512 +1 -1
  40. package/package.json +6 -5
  41. package/src/ExpoFileSystem.types.ts +5 -0
  42. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272-sources.jar.md5 +0 -1
  43. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272-sources.jar.sha1 +0 -1
  44. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272-sources.jar.sha256 +0 -1
  45. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272-sources.jar.sha512 +0 -1
  46. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.aar +0 -0
  47. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.aar.md5 +0 -1
  48. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.aar.sha1 +0 -1
  49. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.aar.sha256 +0 -1
  50. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.aar.sha512 +0 -1
  51. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.module.md5 +0 -1
  52. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.module.sha1 +0 -1
  53. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.module.sha256 +0 -1
  54. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.module.sha512 +0 -1
  55. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.pom.md5 +0 -1
  56. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.pom.sha1 +0 -1
  57. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.pom.sha256 +0 -1
  58. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/19.0.18-canary-20251015-a6a1272/expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.pom.sha512 +0 -1
package/CHANGELOG.md CHANGED
@@ -8,11 +8,29 @@
8
8
 
9
9
  ### 🐛 Bug fixes
10
10
 
11
- - [Android] Fix recursive file deletion. ([#40248](https://github.com/expo/expo/pull/40248) by [@aleqsio](https://github.com/aleqsio))
12
-
13
11
  ### 💡 Others
14
12
 
15
- ## 19.0.16 - 2025-10-01
13
+ ## 19.0.19 2025-11-18
14
+
15
+ ### 🎉 New features
16
+
17
+ - [Android] Add contentUri property. ([#40002](https://github.com/expo/expo/pull/40002) by [@aleqsio](https://github.com/aleqsio))
18
+
19
+ ### 🐛 Bug fixes
20
+
21
+ - [iOS] Add missing `createFile` and `createDirectory` methods. ([#40314](https://github.com/expo/expo/pull/40314) by [@jakex7](https://github.com/jakex7))
22
+
23
+ ## 19.0.18 — 2025-11-17
24
+
25
+ _This version does not introduce any user-facing changes._
26
+
27
+ ## 19.0.17 — 2025-10-09
28
+
29
+ ### 🐛 Bug fixes
30
+
31
+ - [Android] Fix recursive file deletion. ([#40248](https://github.com/expo/expo/pull/40248) by [@aleqsio](https://github.com/aleqsio))
32
+
33
+ ## 19.0.16 — 2025-10-01
16
34
 
17
35
  ### 🎉 New features
18
36
 
@@ -23,7 +41,7 @@
23
41
  - Fix typedoc in the File class. ([#40064](https://github.com/expo/expo/pull/40064) by [@aleqsio](https://github.com/aleqsio))
24
42
  - [Android] Fix getContentUri. ([#40001](https://github.com/expo/expo/pull/40001) by [@aleqsio](https://github.com/aleqsio))
25
43
 
26
- ## 19.0.15 - 2025-09-22
44
+ ## 19.0.15 2025-09-22
27
45
 
28
46
  ### 🎉 New features
29
47
 
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'host.exp.exponent'
7
- version = '19.0.18-canary-20251015-a6a1272'
7
+ version = '19.0.19'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.filesystem"
11
11
  defaultConfig {
12
12
  versionCode 30
13
- versionName "19.0.18-canary-20251015-a6a1272"
13
+ versionName "19.0.19"
14
14
  }
15
15
  }
16
16
 
@@ -44,6 +44,11 @@ internal class UnableToWriteHandleException(reason: String) :
44
44
  "Unable to write to a file handle: '$reason'"
45
45
  )
46
46
 
47
+ internal class MissingAppContextException :
48
+ CodedException(
49
+ "The app context is missing."
50
+ )
51
+
47
52
  internal class PickerCancelledException :
48
53
  CodedException("The file picker was cancelled by the user")
49
54
 
@@ -126,6 +126,12 @@ class FileSystemFile(uri: Uri) : FileSystemPath(uri) {
126
126
  }
127
127
  }
128
128
 
129
+ fun asContentUri(): Uri {
130
+ validateType()
131
+ validatePermission(Permission.READ)
132
+ return file.getContentUri(appContext ?: throw MissingAppContextException())
133
+ }
134
+
129
135
  @OptIn(ExperimentalStdlibApi::class)
130
136
  val md5: String get() {
131
137
  validatePermission(Permission.READ)
@@ -215,6 +215,10 @@ class FileSystemModule : Module() {
215
215
  file.asString()
216
216
  }
217
217
 
218
+ Property("contentUri") { file ->
219
+ file.asContentUri()
220
+ }
221
+
218
222
  Property("md5") { file ->
219
223
  try {
220
224
  file.md5
@@ -4,7 +4,9 @@ import android.content.Context
4
4
  import android.net.Uri
5
5
  import android.webkit.MimeTypeMap
6
6
  import androidx.core.net.toUri
7
+ import expo.modules.kotlin.AppContext
7
8
  import java.io.File
9
+ import java.io.FileOutputStream
8
10
  import java.io.InputStream
9
11
  import java.io.OutputStream
10
12
 
@@ -25,6 +27,21 @@ class AssetFile(private val context: Context, override val uri: Uri) : UnifiedFi
25
27
  }
26
28
  }
27
29
 
30
+ // Cache the content URI to avoid redundant file writes – assets are read-only
31
+ var contentUri: Uri? = null
32
+ override fun getContentUri(appContext: AppContext): Uri {
33
+ inputStream().use { inputStream ->
34
+ val outputFile = File(context.cacheDir, "expo_shared_assets/$fileName")
35
+ outputFile.parentFile?.mkdirs() // Create directories if needed
36
+ FileOutputStream(outputFile).use { outputStream ->
37
+ inputStream.copyTo(outputStream)
38
+ }
39
+ val newContentUri = JavaFile(outputFile.toUri()).getContentUri(appContext)
40
+ contentUri = newContentUri
41
+ return newContentUri
42
+ }
43
+ }
44
+
28
45
  override val parentFile: UnifiedFileInterface?
29
46
  get() {
30
47
  val currentPath = uri.path.orEmpty()
@@ -3,7 +3,9 @@ package expo.modules.filesystem.unifiedfile
3
3
  import android.net.Uri
4
4
  import android.os.Build
5
5
  import android.webkit.MimeTypeMap
6
+ import androidx.core.content.FileProvider
6
7
  import androidx.core.net.toUri
8
+ import expo.modules.kotlin.AppContext
7
9
  import java.io.File
8
10
  import java.io.FileInputStream
9
11
  import java.io.FileOutputStream
@@ -38,6 +40,14 @@ class JavaFile(override val uri: Uri) : UnifiedFileInterface, File(URI.create(ur
38
40
  return super<File>.delete()
39
41
  }
40
42
 
43
+ override fun getContentUri(appContext: AppContext): Uri {
44
+ return FileProvider.getUriForFile(
45
+ appContext.throwingActivity.application,
46
+ "${appContext.throwingActivity.application.packageName}.FileSystemFileProvider",
47
+ this
48
+ )
49
+ }
50
+
41
51
  override fun listFilesAsUnified(): List<UnifiedFileInterface> =
42
52
  super<File>.listFiles()?.map { JavaFile(it.toUri()) } ?: emptyList()
43
53
 
@@ -3,6 +3,7 @@ package expo.modules.filesystem.unifiedfile
3
3
  import android.content.Context
4
4
  import android.net.Uri
5
5
  import androidx.documentfile.provider.DocumentFile
6
+ import expo.modules.kotlin.AppContext
6
7
  import java.io.InputStream
7
8
  import java.io.OutputStream
8
9
 
@@ -60,6 +61,10 @@ class SAFDocumentFile(private val context: Context, override val uri: Uri) : Uni
60
61
  override val fileName: String?
61
62
  get() = documentFile?.name
62
63
 
64
+ override fun getContentUri(appContext: AppContext): Uri {
65
+ return uri
66
+ }
67
+
63
68
  override val creationTime: Long? get() {
64
69
  // It seems there's no way to get this
65
70
  return null
@@ -1,6 +1,7 @@
1
1
  package expo.modules.filesystem.unifiedfile
2
2
 
3
3
  import android.net.Uri
4
+ import expo.modules.kotlin.AppContext
4
5
 
5
6
  interface UnifiedFileInterface {
6
7
  fun exists(): Boolean
@@ -17,6 +18,7 @@ interface UnifiedFileInterface {
17
18
  fun lastModified(): Long?
18
19
  val creationTime: Long?
19
20
  val fileName: String?
21
+ fun getContentUri(appContext: AppContext): Uri
20
22
  fun outputStream(): java.io.OutputStream
21
23
  fun inputStream(): java.io.InputStream
22
24
  fun length(): Long
@@ -297,6 +297,11 @@ export declare class File {
297
297
  * A mime type of the file. An empty string if the file does not exist, or it cannot be read.
298
298
  */
299
299
  type: string;
300
+ /**
301
+ * A content URI to the file that can be shared to external applications.
302
+ * @platform android
303
+ */
304
+ contentUri: string;
300
305
  }
301
306
  export declare class FileHandle {
302
307
  close(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoFileSystem.types.d.ts","sourceRoot":"","sources":["../src/ExpoFileSystem.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExpoFileSystem.types.d.ts","sourceRoot":"","sources":["../src/ExpoFileSystem.types.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  "publication": {
13
13
  "groupId": "host.exp.exponent",
14
14
  "artifactId": "expo.modules.filesystem",
15
- "version": "19.0.18-canary-20251015-a6a1272",
15
+ "version": "19.0.19",
16
16
  "repository": "local-maven-repo"
17
17
  }
18
18
  }
@@ -335,6 +335,18 @@ public final class FileSystemModule: Module {
335
335
  try directory.listAsRecords()
336
336
  }
337
337
 
338
+ Function("createFile") { (directory, name: String, content: String?) in
339
+ let file = FileSystemFile(url: directory.url.appendingPathComponent(name))
340
+ try file.create(CreateOptions())
341
+ return file
342
+ }
343
+
344
+ Function("createDirectory") { (directory, name: String) in
345
+ let newDirectory = FileSystemDirectory(url: directory.url.appendingPathComponent(name))
346
+ try newDirectory.create(CreateOptions())
347
+ return newDirectory
348
+ }
349
+
338
350
  Property("uri") { directory in
339
351
  return directory.url.absoluteString
340
352
  }
@@ -25,7 +25,7 @@ internal class FileSystemPath: SharedObject {
25
25
 
26
26
  func validateCanCreate(_ options: CreateOptions) throws {
27
27
  if try !options.overwrite && exists {
28
- throw FileAlreadyExistsException("File already exists")
28
+ throw FileAlreadyExistsException(url.absoluteString)
29
29
  }
30
30
  }
31
31
 
@@ -0,0 +1 @@
1
+ 4177d9bd9a22a528b97cc2f2bd7ba47f6cbf7fb1c09d93a1cacdce6f553b05d6
@@ -0,0 +1 @@
1
+ 6cac7b2fa58a18696e1468e4e9afe7e6092ca1a404351400345349e028cbaeda51386f4303d05372a2be2baf8de77fd97490ea91caa74bfc2a8cfe7b62619bfe
@@ -0,0 +1 @@
1
+ addebabe9511120923e9a0f4490c31306162dc95ae60cb64867a27847d99dfaf
@@ -0,0 +1 @@
1
+ 66cca546f6f55437628c6fad443bb817e5c0eef007414292fed3f907c68b11d718a3f3d816ee0ea78835567fdaa5686f525ab9f1a27137d5f799b9459d9719d1
@@ -3,14 +3,14 @@
3
3
  "component": {
4
4
  "group": "host.exp.exponent",
5
5
  "module": "expo.modules.filesystem",
6
- "version": "19.0.18-canary-20251015-a6a1272",
6
+ "version": "19.0.19",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
10
10
  },
11
11
  "createdBy": {
12
12
  "gradle": {
13
- "version": "9.0.0"
13
+ "version": "8.14.3"
14
14
  }
15
15
  },
16
16
  "variants": [
@@ -75,13 +75,13 @@
75
75
  ],
76
76
  "files": [
77
77
  {
78
- "name": "expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.aar",
79
- "url": "expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.aar",
80
- "size": 391285,
81
- "sha512": "97f919a3acbdf9fc8bd3e5c8fc638ca0a5af58d16e8e894a729318fa694f1f7e1c1e2ad0938722134a2c1f0391abb2b27e099789b93e898f2762651ea731908c",
82
- "sha256": "59357a92b15218c7ca51945f48306ee5c83fd3b0029c7579227a7633b1c49afb",
83
- "sha1": "6ba51c2cd4269602d70ea24d8689799ea73d73a1",
84
- "md5": "3bea5490d96bf70ecd9175d5bd1688f2"
78
+ "name": "expo.modules.filesystem-19.0.19.aar",
79
+ "url": "expo.modules.filesystem-19.0.19.aar",
80
+ "size": 393129,
81
+ "sha512": "66cca546f6f55437628c6fad443bb817e5c0eef007414292fed3f907c68b11d718a3f3d816ee0ea78835567fdaa5686f525ab9f1a27137d5f799b9459d9719d1",
82
+ "sha256": "addebabe9511120923e9a0f4490c31306162dc95ae60cb64867a27847d99dfaf",
83
+ "sha1": "0d42a8415fa94ce162b33e740bb63f1602d7cc21",
84
+ "md5": "083a9a998bd18c4424272ba3827a26ee"
85
85
  }
86
86
  ]
87
87
  },
@@ -153,13 +153,13 @@
153
153
  ],
154
154
  "files": [
155
155
  {
156
- "name": "expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.aar",
157
- "url": "expo.modules.filesystem-19.0.18-canary-20251015-a6a1272.aar",
158
- "size": 391285,
159
- "sha512": "97f919a3acbdf9fc8bd3e5c8fc638ca0a5af58d16e8e894a729318fa694f1f7e1c1e2ad0938722134a2c1f0391abb2b27e099789b93e898f2762651ea731908c",
160
- "sha256": "59357a92b15218c7ca51945f48306ee5c83fd3b0029c7579227a7633b1c49afb",
161
- "sha1": "6ba51c2cd4269602d70ea24d8689799ea73d73a1",
162
- "md5": "3bea5490d96bf70ecd9175d5bd1688f2"
156
+ "name": "expo.modules.filesystem-19.0.19.aar",
157
+ "url": "expo.modules.filesystem-19.0.19.aar",
158
+ "size": 393129,
159
+ "sha512": "66cca546f6f55437628c6fad443bb817e5c0eef007414292fed3f907c68b11d718a3f3d816ee0ea78835567fdaa5686f525ab9f1a27137d5f799b9459d9719d1",
160
+ "sha256": "addebabe9511120923e9a0f4490c31306162dc95ae60cb64867a27847d99dfaf",
161
+ "sha1": "0d42a8415fa94ce162b33e740bb63f1602d7cc21",
162
+ "md5": "083a9a998bd18c4424272ba3827a26ee"
163
163
  }
164
164
  ]
165
165
  },
@@ -173,13 +173,13 @@
173
173
  },
174
174
  "files": [
175
175
  {
176
- "name": "expo.modules.filesystem-19.0.18-canary-20251015-a6a1272-sources.jar",
177
- "url": "expo.modules.filesystem-19.0.18-canary-20251015-a6a1272-sources.jar",
178
- "size": 28829,
179
- "sha512": "2f568bfaeec3afab683022062a45f4bc0b36c57b34b03c594770668d0b7a85542a7c8ef9d7ea015a0ca2b1cefdfdd6c81af52d5a8cb986734006c731cbd2efb0",
180
- "sha256": "fd56e8219c4f981d84e5dfa36830c59279bf486acfcc80c143b18ec1860260e3",
181
- "sha1": "a4e0092c3207d31f4b1117eddee4bf753fdb96f0",
182
- "md5": "4524189007ee5743a9177629d95ce8f7"
176
+ "name": "expo.modules.filesystem-19.0.19-sources.jar",
177
+ "url": "expo.modules.filesystem-19.0.19-sources.jar",
178
+ "size": 29329,
179
+ "sha512": "6cac7b2fa58a18696e1468e4e9afe7e6092ca1a404351400345349e028cbaeda51386f4303d05372a2be2baf8de77fd97490ea91caa74bfc2a8cfe7b62619bfe",
180
+ "sha256": "4177d9bd9a22a528b97cc2f2bd7ba47f6cbf7fb1c09d93a1cacdce6f553b05d6",
181
+ "sha1": "464959bdf2015e626f82e9af6c6c28a6498240e3",
182
+ "md5": "d3f99d83252bbc8fcf013f07d3d86ea8"
183
183
  }
184
184
  ]
185
185
  }
@@ -0,0 +1 @@
1
+ eb38c3d587768d2bb6c4875b3ac850e563d5c16bfc72a58caa43d640a98a8d82
@@ -0,0 +1 @@
1
+ 994f17cf2e7bafc67a5dfe8da8ddb830fcf84f840de3189001dcd33485030518b0750327667a2654b81decd7141149f20b06049556391c4a4f01566e1a42552a
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>host.exp.exponent</groupId>
11
11
  <artifactId>expo.modules.filesystem</artifactId>
12
- <version>19.0.18-canary-20251015-a6a1272</version>
12
+ <version>19.0.19</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
+ 05cce690d4d0867cb40c77c721fc5a4b230ac7da9cd32f2dde028e2392fa37c6
@@ -0,0 +1 @@
1
+ 566ce5c3da79dba6f5d4f7fd9ef02d10857abb2f683b1663103fe8ab2584e62c6195899b2b139e4656f92eb9f7259a8c98b39d82e71b8e5619f5867eaa5efc12
@@ -3,11 +3,11 @@
3
3
  <groupId>host.exp.exponent</groupId>
4
4
  <artifactId>expo.modules.filesystem</artifactId>
5
5
  <versioning>
6
- <latest>19.0.18-canary-20251015-a6a1272</latest>
7
- <release>19.0.18-canary-20251015-a6a1272</release>
6
+ <latest>19.0.19</latest>
7
+ <release>19.0.19</release>
8
8
  <versions>
9
- <version>19.0.18-canary-20251015-a6a1272</version>
9
+ <version>19.0.19</version>
10
10
  </versions>
11
- <lastUpdated>20251015164422</lastUpdated>
11
+ <lastUpdated>20251118163421</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 32064ddae3d3d5891f5bfcc09ee26264
1
+ beae1b25d8445f088e6cf6a14bad3166
@@ -1 +1 @@
1
- 5c6cd5990c0b24c64e5804ecbbc19f1ef72a920f
1
+ 4f66326831559e3af8d0e8f219011d3017d7bdd7
@@ -1 +1 @@
1
- 62f97ffb82098f3cd58789c3193ea4dd64885f2d98d8cc28897af0c5664829c1
1
+ d57c2792e574c8881703bac21f64002916593f57ac51d3c0e62d035c00b94443
@@ -1 +1 @@
1
- f045969c582e0a864c1c74c6b6415ae8215d017e866c7e19fef6c6b2e26d992d2523449a3ae70101e79efe9fd70a0c04b276668d3e7e2206742a10793f62dd9c
1
+ cacfe25d679304708c44a4c00b209888891926dc57722c2cfeb8e28e042a53985082be9453032c5fa3850f925d8f11938ad2c3675412783cee3e6a27f43b4939
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-file-system",
3
- "version": "19.0.18-canary-20251015-a6a1272",
3
+ "version": "19.0.19",
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",
@@ -35,11 +35,12 @@
35
35
  "preset": "expo-module-scripts"
36
36
  },
37
37
  "devDependencies": {
38
- "expo-module-scripts": "5.0.8-canary-20251015-a6a1272",
39
- "jest-expo": "55.0.0-canary-20251015-a6a1272"
38
+ "expo-module-scripts": "^5.0.7",
39
+ "jest-expo": "~54.0.13"
40
40
  },
41
41
  "peerDependencies": {
42
- "expo": "55.0.0-canary-20251015-a6a1272",
42
+ "expo": "*",
43
43
  "react-native": "*"
44
- }
44
+ },
45
+ "gitHead": "aecf0c36c0342e1e050328b86dddfeec0041ec0b"
45
46
  }
@@ -343,6 +343,11 @@ export declare class File {
343
343
  * A mime type of the file. An empty string if the file does not exist, or it cannot be read.
344
344
  */
345
345
  type: string;
346
+ /**
347
+ * A content URI to the file that can be shared to external applications.
348
+ * @platform android
349
+ */
350
+ contentUri: string;
346
351
  }
347
352
 
348
353
  export declare class FileHandle {
@@ -1 +0,0 @@
1
- 2f568bfaeec3afab683022062a45f4bc0b36c57b34b03c594770668d0b7a85542a7c8ef9d7ea015a0ca2b1cefdfdd6c81af52d5a8cb986734006c731cbd2efb0
@@ -1 +0,0 @@
1
- 97f919a3acbdf9fc8bd3e5c8fc638ca0a5af58d16e8e894a729318fa694f1f7e1c1e2ad0938722134a2c1f0391abb2b27e099789b93e898f2762651ea731908c
@@ -1 +0,0 @@
1
- 87b8db214f5d60edbeba411957f2da133dbf66c0e3460a9159445ccc64df8e362db693e8d5f61592d8850a6c8e320ba4554f14036f55fc90dc0a2294e836ac53
@@ -1 +0,0 @@
1
- cbaf4217f8c05c4c48b008e1cd291821a7860d8c69f1b9731283d25a3efd8fca17c31fa797bac746bd5a31817a76bfa95146bdfd69d63b5b2922ded0d3764aa8