expo-file-system 18.2.0-canary-20250613-b29d676 → 18.2.0-canary-20250630-547cd82

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 (64) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/filesystem/next/FileSystemDirectory.kt +6 -0
  4. package/android/src/main/java/expo/modules/filesystem/next/FileSystemNextModule.kt +12 -0
  5. package/build/FileSystem.types.d.ts +1 -6
  6. package/build/FileSystem.types.d.ts.map +1 -1
  7. package/build/next/ExpoFileSystem.d.ts +2 -0
  8. package/build/next/ExpoFileSystem.d.ts.map +1 -1
  9. package/build/next/ExpoFileSystem.types.d.ts +4 -0
  10. package/build/next/ExpoFileSystem.types.d.ts.map +1 -1
  11. package/build/next/FileSystem.d.ts +8 -0
  12. package/build/next/FileSystem.d.ts.map +1 -1
  13. package/expo-module.config.json +1 -1
  14. package/ios/EXFileSystemLocalFileHandler.m +1 -1
  15. package/ios/Next/FileSystemDirectory.swift +18 -0
  16. package/ios/Next/FileSystemFile.swift +2 -2
  17. package/ios/Next/FileSystemNextExceptions.swift +2 -2
  18. package/ios/Next/FileSystemNextModule.swift +38 -2
  19. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676-sources.jar → 18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82-sources.jar} +0 -0
  20. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82-sources.jar.md5 +1 -0
  21. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82-sources.jar.sha1 +1 -0
  22. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82-sources.jar.sha256 +1 -0
  23. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82-sources.jar.sha512 +1 -0
  24. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.aar → 18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.aar} +0 -0
  25. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.aar.md5 +1 -0
  26. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.aar.sha1 +1 -0
  27. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.aar.sha256 +1 -0
  28. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.aar.sha512 +1 -0
  29. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.module → 18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.module} +22 -22
  30. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.module.md5 +1 -0
  31. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.module.sha1 +1 -0
  32. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.module.sha256 +1 -0
  33. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.module.sha512 +1 -0
  34. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.pom → 18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.pom} +1 -1
  35. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.pom.md5 +1 -0
  36. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.pom.sha1 +1 -0
  37. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.pom.sha256 +1 -0
  38. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.pom.sha512 +1 -0
  39. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml +4 -4
  40. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.md5 +1 -1
  41. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha1 +1 -1
  42. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha256 +1 -1
  43. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha512 +1 -1
  44. package/package.json +4 -4
  45. package/src/FileSystem.types.ts +1 -6
  46. package/src/next/ExpoFileSystem.ts +2 -0
  47. package/src/next/ExpoFileSystem.types.ts +5 -0
  48. package/src/next/FileSystem.ts +14 -0
  49. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676-sources.jar.md5 +0 -1
  50. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676-sources.jar.sha1 +0 -1
  51. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676-sources.jar.sha256 +0 -1
  52. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676-sources.jar.sha512 +0 -1
  53. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.aar.md5 +0 -1
  54. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.aar.sha1 +0 -1
  55. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.aar.sha256 +0 -1
  56. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.aar.sha512 +0 -1
  57. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.module.md5 +0 -1
  58. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.module.sha1 +0 -1
  59. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.module.sha256 +0 -1
  60. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.module.sha512 +0 -1
  61. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.pom.md5 +0 -1
  62. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.pom.sha1 +0 -1
  63. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.pom.sha256 +0 -1
  64. package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250613-b29d676/expo.modules.filesystem-18.2.0-canary-20250613-b29d676.pom.sha512 +0 -1
package/CHANGELOG.md CHANGED
@@ -6,10 +6,12 @@
6
6
 
7
7
  ### 🎉 New features
8
8
 
9
+ - Add total and available sizes, directory sizes. ([#37594](https://github.com/expo/expo/pull/37594) by [@aleqsio](https://github.com/aleqsio))
9
10
  - Add support for custom headers in downloadFileAsync ([#36108](https://github.com/expo/expo/pull/36108) by [@leonhh](https://github.com/leonhh))
10
11
 
11
12
  ### 🐛 Bug fixes
12
13
 
14
+ - Fix memory usage issue in getInfoAsync ([#37417](https://github.com/expo/expo/pull/37417) by [@Wenszel](https://github.com/Wenszel))
13
15
  - Improved type safety in the FileSystem module to support tsconfig setups with stricter rules than the default. ([#37107](https://github.com/expo/expo/pull/37107) by [@hirbod](https://github.com/hirbod))
14
16
 
15
17
  ### 💡 Others
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'host.exp.exponent'
7
- version = '18.2.0-canary-20250613-b29d676'
7
+ version = '18.2.0-canary-20250630-547cd82'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.filesystem"
11
11
  defaultConfig {
12
12
  versionCode 30
13
- versionName "18.2.0-canary-20250613-b29d676"
13
+ versionName "18.2.0-canary-20250630-547cd82"
14
14
  }
15
15
  }
16
16
 
@@ -20,6 +20,12 @@ class FileSystemDirectory(file: File) : FileSystemPath(file) {
20
20
  return file.isDirectory
21
21
  }
22
22
 
23
+ val size: Long get() {
24
+ validatePermission(Permission.READ)
25
+ validateType()
26
+ return file.walkTopDown().filter { it.isFile }.map { it.length() }.sum()
27
+ }
28
+
23
29
  fun create(options: CreateOptions = CreateOptions()) {
24
30
  validateType()
25
31
  validatePermission(Permission.WRITE)
@@ -32,6 +32,14 @@ class FileSystemNextModule : Module() {
32
32
  "bundleDirectory" to "asset:///"
33
33
  )
34
34
 
35
+ Property("totalDiskSpace") {
36
+ File(context.filesDir.path).totalSpace
37
+ }
38
+
39
+ Property("availableDiskSpace") {
40
+ File(context.filesDir.path).freeSpace
41
+ }
42
+
35
43
  AsyncFunction("downloadFileAsync") Coroutine { url: URI, to: FileSystemPath, options: DownloadOptionsNext? ->
36
44
  to.validatePermission(Permission.WRITE)
37
45
  val requestBuilder = Request.Builder().url(url.toURL())
@@ -209,6 +217,10 @@ class FileSystemNextModule : Module() {
209
217
  directory.asString()
210
218
  }
211
219
 
220
+ Property("size") { directory ->
221
+ directory.size
222
+ }
223
+
212
224
  // this function is internal and will be removed in the future (when returning arrays of shared objects is supported)
213
225
  Function("listAsRecords") { directory: FileSystemDirectory ->
214
226
  directory.listAsRecords()
@@ -184,7 +184,7 @@ export type FileInfo =
184
184
  */
185
185
  uri: string;
186
186
  /**
187
- * The size of the file in bytes. If operating on a source such as an iCloud file, only present if the `size` option was truthy.
187
+ * The size of the file in bytes.
188
188
  */
189
189
  size: number;
190
190
  /**
@@ -257,11 +257,6 @@ export type InfoOptions = {
257
257
  * @default false
258
258
  */
259
259
  md5?: boolean;
260
- /**
261
- * Explicitly specify that the file size should be included. For example, skipping this can prevent downloading the file if it's stored in iCloud.
262
- * The size is always returned for `file://` locations.
263
- */
264
- size?: boolean;
265
260
  };
266
261
  export type RelocatingOptions = {
267
262
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"FileSystem.types.d.ts","sourceRoot":"","sources":["../src/FileSystem.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileSystem.types.d.ts","sourceRoot":"","sources":["../src/FileSystem.types.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ declare class ExpoFileSystemNextModule extends NativeModule {
4
4
  FileSystemDirectory: typeof Directory;
5
5
  FileSystemFile: typeof File;
6
6
  downloadFileAsync(url: string, destination: File | Directory, options?: DownloadOptions): Promise<string>;
7
+ totalDiskSpace: number;
8
+ availableDiskSpace: number;
7
9
  }
8
10
  declare const _default: ExpoFileSystemNextModule;
9
11
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoFileSystem.d.ts","sourceRoot":"","sources":["../../src/next/ExpoFileSystem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAuB,MAAM,mBAAmB,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG/E,OAAO,OAAO,wBAAyB,SAAQ,YAAY;IACzD,mBAAmB,EAAE,OAAO,SAAS,CAAC;IACtC,cAAc,EAAE,OAAO,IAAI,CAAC;IAC5B,iBAAiB,CACf,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,IAAI,GAAG,SAAS,EAC7B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC;CACnB;;AAED,wBAEoE"}
1
+ {"version":3,"file":"ExpoFileSystem.d.ts","sourceRoot":"","sources":["../../src/next/ExpoFileSystem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAuB,MAAM,mBAAmB,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG/E,OAAO,OAAO,wBAAyB,SAAQ,YAAY;IACzD,mBAAmB,EAAE,OAAO,SAAS,CAAC;IACtC,cAAc,EAAE,OAAO,IAAI,CAAC;IAC5B,iBAAiB,CACf,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,IAAI,GAAG,SAAS,EAC7B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;;AAED,wBAEoE"}
@@ -67,6 +67,10 @@ export declare class Directory {
67
67
  * Lists the contents of a directory.
68
68
  */
69
69
  list(): (Directory | File)[];
70
+ /**
71
+ * A size of the directory in bytes. Null if the directory does not exist, or it cannot be read.
72
+ */
73
+ size: number | null;
70
74
  }
71
75
  export type DownloadOptions = {
72
76
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoFileSystem.types.d.ts","sourceRoot":"","sources":["../../src/next/ExpoFileSystem.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B;;;;;;;OAOG;gBACS,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;IAElD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,IAAI,IAAI;IAEpB;;;;OAIG;IACH,MAAM,IAAI,IAAI;IAEd;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAErC;;OAEG;IACH,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAEzC;;OAEG;IACH,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAEzC;;;;OAIG;IACH,aAAa,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE;IAEvD;;OAEG;IACH,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE;CAC7B;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB;;;;OAIG;gBACS,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;IAElD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,IAAI,IAAI;IAEpB;;;OAGG;IACH,IAAI,IAAI,MAAM;IAEd;;;OAGG;IACH,MAAM,IAAI,MAAM;IAEhB;;;OAGG;IACH,KAAK,IAAI,UAAU;IAEnB;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAEzC;;;;OAIG;IACH,MAAM,IAAI,IAAI;IAEd;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAErC;;OAEG;IACH,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAEzC;;OAEG;IACH,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAEzC;;;OAGG;IACH,IAAI,IAAI,UAAU;IAElB;;;;;;;;;OASG;IACH,MAAM,CAAC,iBAAiB,CACtB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,SAAS,GAAG,IAAI,EAC7B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB;;OAEG;IACH,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,OAAO,UAAU;IAI7B,KAAK,IAAI,IAAI;IAKb,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAKrC,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAMnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAItB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB"}
1
+ {"version":3,"file":"ExpoFileSystem.types.d.ts","sourceRoot":"","sources":["../../src/next/ExpoFileSystem.types.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,14 @@ export declare class Paths extends PathUtilities {
10
10
  */
11
11
  static get document(): Directory;
12
12
  static get appleSharedContainers(): Record<string, Directory>;
13
+ /**
14
+ * A property that represents the total space on device's internal storage, represented in bytes.
15
+ */
16
+ static get totalDiskSpace(): number;
17
+ /**
18
+ * A property that represents the available space on device's internal storage, represented in bytes.
19
+ */
20
+ static get availableDiskSpace(): number;
13
21
  }
14
22
  /**
15
23
  * @hidden
@@ -1 +1 @@
1
- {"version":3,"file":"FileSystem.d.ts","sourceRoot":"","sources":["../../src/next/FileSystem.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,qBAAa,KAAM,SAAQ,aAAa;IACtC;;OAEG;IACH,MAAM,KAAK,KAAK,cAEf;IAED;;OAEG;IACH,MAAM,KAAK,QAAQ,cAElB;IACD,MAAM,KAAK,qBAAqB,8BAS/B;CACF;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,IAAI;IAChC,IAAI,EAAE,IAAI,CAAC;IAEX;;OAEG;IACH,GAAG,EAAE,MAAM,CAAc;gBAEb,IAAI,EAAE,IAAI;IAKtB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAInC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvB,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC;IAIlC,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC;IAIpC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;CAGhE;AAED,qBAAa,IAAK,SAAQ,cAAc,CAAC,cAAc;IACrD;;;;;;;OAOG;gBACS,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;IAQlD,IAAI,IAAI,IAAI;IAOZ,IAAI,eAAe,cAElB;IAED;;;OAGG;IACH,IAAI,SAAS,WAEZ;IAED;;OAEG;IACH,IAAI,IAAI,WAEP;IAED,cAAc;IAId,cAAc;CAGf;AAYD;;;;GAIG;AACH,qBAAa,SAAU,SAAQ,cAAc,CAAC,mBAAmB;IAC/D;;;;;;;OAOG;gBACS,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;IAQlD,IAAI,eAAe,cAElB;IAED;;;;OAIG;IACH,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE;IAO5B;;OAEG;IACH,IAAI,IAAI,WAEP;CACF"}
1
+ {"version":3,"file":"FileSystem.d.ts","sourceRoot":"","sources":["../../src/next/FileSystem.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,qBAAa,KAAM,SAAQ,aAAa;IACtC;;OAEG;IACH,MAAM,KAAK,KAAK,cAEf;IAED;;OAEG;IACH,MAAM,KAAK,QAAQ,cAElB;IACD,MAAM,KAAK,qBAAqB,8BAS/B;IAED;;OAEG;IACH,MAAM,KAAK,cAAc,WAExB;IAED;;OAEG;IACH,MAAM,KAAK,kBAAkB,WAE5B;CACF;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,IAAI;IAChC,IAAI,EAAE,IAAI,CAAC;IAEX;;OAEG;IACH,GAAG,EAAE,MAAM,CAAc;gBAEb,IAAI,EAAE,IAAI;IAKtB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAInC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvB,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC;IAIlC,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC;IAIpC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;CAGhE;AAED,qBAAa,IAAK,SAAQ,cAAc,CAAC,cAAc;IACrD;;;;;;;OAOG;gBACS,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;IAQlD,IAAI,IAAI,IAAI;IAOZ,IAAI,eAAe,cAElB;IAED;;;OAGG;IACH,IAAI,SAAS,WAEZ;IAED;;OAEG;IACH,IAAI,IAAI,WAEP;IAED,cAAc;IAId,cAAc;CAGf;AAYD;;;;GAIG;AACH,qBAAa,SAAU,SAAQ,cAAc,CAAC,mBAAmB;IAC/D;;;;;;;OAOG;gBACS,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;IAQlD,IAAI,eAAe,cAElB;IAED;;;;OAIG;IACH,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE;IAO5B;;OAEG;IACH,IAAI,IAAI,WAEP;CACF"}
@@ -12,7 +12,7 @@
12
12
  "publication": {
13
13
  "groupId": "host.exp.exponent",
14
14
  "artifactId": "expo.modules.filesystem",
15
- "version": "18.2.0-canary-20250613-b29d676",
15
+ "version": "18.2.0-canary-20250630-547cd82",
16
16
  "repository": "local-maven-repo"
17
17
  }
18
18
  }
@@ -17,7 +17,7 @@
17
17
  result[@"exists"] = @(YES);
18
18
  result[@"isDirectory"] = @(isDirectory);
19
19
  result[@"uri"] = [NSURL fileURLWithPath:path].absoluteString;
20
- if (options[@"md5"]) {
20
+ if ([options[@"md5"] boolValue]) {
21
21
  result[@"md5"] = [[NSData dataWithContentsOfFile:path] md5String];
22
22
  }
23
23
  result[@"size"] = @([EXFileSystemLocalFileHandler getFileSize:path attributes:attributes]);
@@ -27,6 +27,24 @@ internal final class FileSystemDirectory: FileSystemPath {
27
27
  }
28
28
  }
29
29
 
30
+ var size: Int64 {
31
+ get throws {
32
+ try validatePermission(.read)
33
+ var size: Int64 = 0
34
+ guard let subpaths = try? FileManager.default.subpathsOfDirectory(atPath: url.path) else {
35
+ throw UnableToGetSizeException("attributes do not contain size")
36
+ }
37
+ for subpath in subpaths {
38
+ let strSubpath = url.appendingPathComponent(subpath).path
39
+ guard let attributes: [FileAttributeKey: Any] = try? FileManager.default.attributesOfItem(atPath: strSubpath), let subpathSize = attributes[.size] as? Int64 else {
40
+ continue
41
+ }
42
+ size += subpathSize
43
+ }
44
+ return size
45
+ }
46
+ }
47
+
30
48
  override var exists: Bool {
31
49
  do {
32
50
  try validatePermission(.read)
@@ -56,10 +56,10 @@ internal final class FileSystemFile: FileSystemPath {
56
56
  try validatePermission(.read)
57
57
  let attributes: [FileAttributeKey: Any] = try FileManager.default.attributesOfItem(atPath: url.path)
58
58
  guard let size = attributes[.size] else {
59
- throw UnableToGetFileSizeException("attributes do not contain size")
59
+ throw UnableToGetSizeException("attributes do not contain size")
60
60
  }
61
61
  guard let size = size as? NSNumber else {
62
- throw UnableToGetFileSizeException("size is not a number")
62
+ throw UnableToGetSizeException("size is not a number")
63
63
  }
64
64
  return size.int64Value
65
65
  }
@@ -25,9 +25,9 @@ internal final class InvalidTypeDirectoryException: Exception {
25
25
  }
26
26
  }
27
27
 
28
- internal final class UnableToGetFileSizeException: GenericException<String> {
28
+ internal final class UnableToGetSizeException: GenericException<String> {
29
29
  override var reason: String {
30
- "Unable to get file size: \(param)"
30
+ "Unable to get file or directory size: \(param)"
31
31
  }
32
32
  }
33
33
 
@@ -4,18 +4,50 @@ import ExpoModulesCore
4
4
 
5
5
  @available(iOS 14, tvOS 14, *)
6
6
  public final class FileSystemNextModule: Module {
7
+ var documentDirectory: URL? {
8
+ return appContext?.config.documentDirectory
9
+ }
10
+
11
+ var cacheDirectory: URL? {
12
+ return appContext?.config.cacheDirectory
13
+ }
14
+
15
+ var totalDiskSpace: Int64? {
16
+ guard let path = documentDirectory?.path,
17
+ let attributes = try? FileManager.default.attributesOfFileSystem(forPath: path) else {
18
+ return nil
19
+ }
20
+ return attributes[.systemFreeSize] as? Int64
21
+ }
22
+
23
+ var availableDiskSpace: Int64? {
24
+ guard let path = documentDirectory?.path,
25
+ let attributes = try? FileManager.default.attributesOfFileSystem(forPath: path) else {
26
+ return nil
27
+ }
28
+ return attributes[.systemFreeSize] as? Int64
29
+ }
30
+
7
31
  public func definition() -> ModuleDefinition {
8
32
  Name("FileSystemNext")
9
33
 
10
34
  Constants {
11
35
  return [
12
- "documentDirectory": appContext?.config.documentDirectory?.absoluteString,
13
- "cacheDirectory": appContext?.config.cacheDirectory?.absoluteString,
36
+ "documentDirectory": documentDirectory?.absoluteString,
37
+ "cacheDirectory": cacheDirectory?.absoluteString,
14
38
  "bundleDirectory": Bundle.main.bundlePath,
15
39
  "appleSharedContainers": getAppleSharedContainers()
16
40
  ]
17
41
  }
18
42
 
43
+ Property("totalDiskSpace") {
44
+ return totalDiskSpace
45
+ }
46
+
47
+ Property("availableDiskSpace") {
48
+ return availableDiskSpace
49
+ }
50
+
19
51
  AsyncFunction("downloadFileAsync") { (url: URL, to: FileSystemPath, options: DownloadOptionsNext?, promise: Promise) in
20
52
  try to.validatePermission(.write)
21
53
 
@@ -197,6 +229,10 @@ public final class FileSystemNextModule: Module {
197
229
  Property("uri") { directory in
198
230
  return directory.url.absoluteString
199
231
  }
232
+
233
+ Property("size") { directory in
234
+ return try? directory.size
235
+ }
200
236
  }
201
237
  }
202
238
 
@@ -0,0 +1 @@
1
+ 879b501c85367721cbc11faa3f10b8f398f31b9752502aa3a3961fb08e0a276a24c6d43ae201ac503f43534e897fa9c16ac811cef124c2845373a79d9e299dbf
@@ -0,0 +1 @@
1
+ 13c97c6f77623c748f9060b8e32381a9c30ed87b73340c28e7b76f9bc9b67274dbc8a51b4fb6e00ed55f12300bfb7e03c1740312f203b83d704004452b38f420
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "host.exp.exponent",
5
5
  "module": "expo.modules.filesystem",
6
- "version": "18.2.0-canary-20250613-b29d676",
6
+ "version": "18.2.0-canary-20250630-547cd82",
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-18.2.0-canary-20250613-b29d676.aar",
72
- "url": "expo.modules.filesystem-18.2.0-canary-20250613-b29d676.aar",
73
- "size": 292094,
74
- "sha512": "494bbd18c43c3ec7930e9a2b8b60519ddac51f0db0e76e8e9e8a79368feaf05fac925801adb040de753f19ac5c349fa68a4cab6b1304aedfe6e8da6467c4ea39",
75
- "sha256": "f7b382e83d36d7223b0b107881bf1b629072140bf85d20416a5240edcf3b8ead",
76
- "sha1": "da887e7fa639fe2b40319061b5ff4d13f0f2bd62",
77
- "md5": "714afc053c77e63be31a31618d09495c"
71
+ "name": "expo.modules.filesystem-18.2.0-canary-20250630-547cd82.aar",
72
+ "url": "expo.modules.filesystem-18.2.0-canary-20250630-547cd82.aar",
73
+ "size": 297034,
74
+ "sha512": "13c97c6f77623c748f9060b8e32381a9c30ed87b73340c28e7b76f9bc9b67274dbc8a51b4fb6e00ed55f12300bfb7e03c1740312f203b83d704004452b38f420",
75
+ "sha256": "165e26238ba196e77f65446d891b5a4345a441715b6a4c7ab9590f54764167e1",
76
+ "sha1": "a99c6723ad826834da9b601369b1479e21e9115d",
77
+ "md5": "778a5cb8f6dd28aeba3919f1d162c8f3"
78
78
  }
79
79
  ]
80
80
  },
@@ -139,13 +139,13 @@
139
139
  ],
140
140
  "files": [
141
141
  {
142
- "name": "expo.modules.filesystem-18.2.0-canary-20250613-b29d676.aar",
143
- "url": "expo.modules.filesystem-18.2.0-canary-20250613-b29d676.aar",
144
- "size": 292094,
145
- "sha512": "494bbd18c43c3ec7930e9a2b8b60519ddac51f0db0e76e8e9e8a79368feaf05fac925801adb040de753f19ac5c349fa68a4cab6b1304aedfe6e8da6467c4ea39",
146
- "sha256": "f7b382e83d36d7223b0b107881bf1b629072140bf85d20416a5240edcf3b8ead",
147
- "sha1": "da887e7fa639fe2b40319061b5ff4d13f0f2bd62",
148
- "md5": "714afc053c77e63be31a31618d09495c"
142
+ "name": "expo.modules.filesystem-18.2.0-canary-20250630-547cd82.aar",
143
+ "url": "expo.modules.filesystem-18.2.0-canary-20250630-547cd82.aar",
144
+ "size": 297034,
145
+ "sha512": "13c97c6f77623c748f9060b8e32381a9c30ed87b73340c28e7b76f9bc9b67274dbc8a51b4fb6e00ed55f12300bfb7e03c1740312f203b83d704004452b38f420",
146
+ "sha256": "165e26238ba196e77f65446d891b5a4345a441715b6a4c7ab9590f54764167e1",
147
+ "sha1": "a99c6723ad826834da9b601369b1479e21e9115d",
148
+ "md5": "778a5cb8f6dd28aeba3919f1d162c8f3"
149
149
  }
150
150
  ]
151
151
  },
@@ -159,13 +159,13 @@
159
159
  },
160
160
  "files": [
161
161
  {
162
- "name": "expo.modules.filesystem-18.2.0-canary-20250613-b29d676-sources.jar",
163
- "url": "expo.modules.filesystem-18.2.0-canary-20250613-b29d676-sources.jar",
164
- "size": 21472,
165
- "sha512": "be40f9a68f6d8766f337229b387c4b9e019446c6b5034b222dbaeca22abe0aabc533f964aed61dc9bb32c251cfbf01def0ea36debbec0ee6ceb45e0fb271f414",
166
- "sha256": "0756e1e7fc3ed6c758e60d571776d16a91d67682c788082fc50f6bee8a24900c",
167
- "sha1": "411d53074267783a2c3abd5f70acc8ecfe206850",
168
- "md5": "2003fc20bc6b10daed08f2422c631d05"
162
+ "name": "expo.modules.filesystem-18.2.0-canary-20250630-547cd82-sources.jar",
163
+ "url": "expo.modules.filesystem-18.2.0-canary-20250630-547cd82-sources.jar",
164
+ "size": 21575,
165
+ "sha512": "879b501c85367721cbc11faa3f10b8f398f31b9752502aa3a3961fb08e0a276a24c6d43ae201ac503f43534e897fa9c16ac811cef124c2845373a79d9e299dbf",
166
+ "sha256": "863069af8776823249a16a25c383a2a29e83a81280b54019fffff2e315df6313",
167
+ "sha1": "0be5554077e6b064ca45298e482138ae4d9103e2",
168
+ "md5": "5c8338515c4174c54c84a80f0b08ea80"
169
169
  }
170
170
  ]
171
171
  }
@@ -0,0 +1 @@
1
+ 8bd9ba6c48aad6dbdb6e96273b25c5c6cd511ff0128df3aa64b63a07ac387416e3c44abced46be0727d332c8d4ae948e21e9ef46927bcc8b18bfda48623d06c8
@@ -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>18.2.0-canary-20250613-b29d676</version>
12
+ <version>18.2.0-canary-20250630-547cd82</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
+ f9b6ac71ab9e7bf7fc84d0daed7fb6b5b4ac2c6b30814bf7f37827cfbfc7050b305ba4a7f4612498285d78a46009b39ad4881f5d6c99bff7c2f51c518406ba3b
@@ -3,11 +3,11 @@
3
3
  <groupId>host.exp.exponent</groupId>
4
4
  <artifactId>expo.modules.filesystem</artifactId>
5
5
  <versioning>
6
- <latest>18.2.0-canary-20250613-b29d676</latest>
7
- <release>18.2.0-canary-20250613-b29d676</release>
6
+ <latest>18.2.0-canary-20250630-547cd82</latest>
7
+ <release>18.2.0-canary-20250630-547cd82</release>
8
8
  <versions>
9
- <version>18.2.0-canary-20250613-b29d676</version>
9
+ <version>18.2.0-canary-20250630-547cd82</version>
10
10
  </versions>
11
- <lastUpdated>20250613135939</lastUpdated>
11
+ <lastUpdated>20250630093942</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 083351c21a2ae27b46ccd153c962f2bb
1
+ 339d845e591ef0783f86538957f108fe
@@ -1 +1 @@
1
- 8d1ebd719c359a362b38687af0d1b4f23362128d
1
+ 43466fab1747963a2a04a00526443d1d2b88183c
@@ -1 +1 @@
1
- 47ce0f005d9420a4f57420bf2ef918d019936418991ac4edac1157180b83458d
1
+ 09ede7838cc14b5ca492eb4ed884a95d09ac5361915b063d27c9821a711141e3
@@ -1 +1 @@
1
- 1f237d497b3017b3c7c01a2f8fed8fb7cb16282d541e39ea79d7b64336b408ca082e815567edaf8dbe386dc9800d2db823cca77e09ab83c8249bdfff3ee9fe73
1
+ d46d832cb4b902315b7f4c0146797ca04a891b907d7cc7cce5c89557eee1be1ab0b9a6bef52a29d22a19a535fccbdf3ff443d308482f6a6fc3ec07b6bfd190ab
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-file-system",
3
- "version": "18.2.0-canary-20250613-b29d676",
3
+ "version": "18.2.0-canary-20250630-547cd82",
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,11 @@
35
35
  "preset": "expo-module-scripts"
36
36
  },
37
37
  "devDependencies": {
38
- "expo-module-scripts": "4.1.8-canary-20250613-b29d676",
39
- "jest-expo": "54.0.0-canary-20250613-b29d676"
38
+ "expo-module-scripts": "4.1.9-canary-20250630-547cd82",
39
+ "jest-expo": "54.0.0-canary-20250630-547cd82"
40
40
  },
41
41
  "peerDependencies": {
42
- "expo": "54.0.0-canary-20250613-b29d676",
42
+ "expo": "54.0.0-canary-20250630-547cd82",
43
43
  "react-native": "*"
44
44
  }
45
45
  }
@@ -204,7 +204,7 @@ export type FileInfo =
204
204
  */
205
205
  uri: string;
206
206
  /**
207
- * The size of the file in bytes. If operating on a source such as an iCloud file, only present if the `size` option was truthy.
207
+ * The size of the file in bytes.
208
208
  */
209
209
  size: number;
210
210
  /**
@@ -284,11 +284,6 @@ export type InfoOptions = {
284
284
  * @default false
285
285
  */
286
286
  md5?: boolean;
287
- /**
288
- * Explicitly specify that the file size should be included. For example, skipping this can prevent downloading the file if it's stored in iCloud.
289
- * The size is always returned for `file://` locations.
290
- */
291
- size?: boolean;
292
287
  };
293
288
 
294
289
  export type RelocatingOptions = {
@@ -12,6 +12,8 @@ declare class ExpoFileSystemNextModule extends NativeModule {
12
12
  destination: File | Directory,
13
13
  options?: DownloadOptions
14
14
  ): Promise<string>;
15
+ totalDiskSpace: number;
16
+ availableDiskSpace: number;
15
17
  }
16
18
 
17
19
  export default isRunningInExpoGo()
@@ -74,6 +74,11 @@ export declare class Directory {
74
74
  * Lists the contents of a directory.
75
75
  */
76
76
  list(): (Directory | File)[];
77
+
78
+ /**
79
+ * A size of the directory in bytes. Null if the directory does not exist, or it cannot be read.
80
+ */
81
+ size: number | null;
77
82
  }
78
83
 
79
84
  export type DownloadOptions = {
@@ -27,6 +27,20 @@ export class Paths extends PathUtilities {
27
27
  }
28
28
  return result;
29
29
  }
30
+
31
+ /**
32
+ * A property that represents the total space on device's internal storage, represented in bytes.
33
+ */
34
+ static get totalDiskSpace() {
35
+ return ExpoFileSystem.totalDiskSpace;
36
+ }
37
+
38
+ /**
39
+ * A property that represents the available space on device's internal storage, represented in bytes.
40
+ */
41
+ static get availableDiskSpace() {
42
+ return ExpoFileSystem.availableDiskSpace;
43
+ }
30
44
  }
31
45
 
32
46
  /**
@@ -1 +0,0 @@
1
- be40f9a68f6d8766f337229b387c4b9e019446c6b5034b222dbaeca22abe0aabc533f964aed61dc9bb32c251cfbf01def0ea36debbec0ee6ceb45e0fb271f414
@@ -1 +0,0 @@
1
- 494bbd18c43c3ec7930e9a2b8b60519ddac51f0db0e76e8e9e8a79368feaf05fac925801adb040de753f19ac5c349fa68a4cab6b1304aedfe6e8da6467c4ea39
@@ -1 +0,0 @@
1
- 7557560c09d0a1482bd1017506bf20b6f16dce615bd7db951e8d41ab7ff66d6bfc0b161020aeaef91eba2e9a35e10a2415b2ea5874704af84dde6c595aaeedaf
@@ -1 +0,0 @@
1
- 3880d7a2d8d8ca0087b143765193ff48659e07150ac5abeb9052ef81fb55f2aef8e0f5de90f97ed36603e1d7c90ca638e268ee6e9407ea722b5d6e3609a4a0ec