expo-file-system 18.2.0-canary-20250612-338ef55 → 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.
- package/CHANGELOG.md +2 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/expo/modules/filesystem/next/FileSystemDirectory.kt +6 -0
- package/android/src/main/java/expo/modules/filesystem/next/FileSystemNextModule.kt +12 -0
- package/build/FileSystem.types.d.ts +1 -6
- package/build/FileSystem.types.d.ts.map +1 -1
- package/build/next/ExpoFileSystem.d.ts +2 -0
- package/build/next/ExpoFileSystem.d.ts.map +1 -1
- package/build/next/ExpoFileSystem.types.d.ts +4 -0
- package/build/next/ExpoFileSystem.types.d.ts.map +1 -1
- package/build/next/FileSystem.d.ts +8 -0
- package/build/next/FileSystem.d.ts.map +1 -1
- package/expo-module.config.json +1 -1
- package/ios/EXFileSystemLocalFileHandler.m +1 -1
- package/ios/Next/FileSystemDirectory.swift +18 -0
- package/ios/Next/FileSystemFile.swift +2 -2
- package/ios/Next/FileSystemNextExceptions.swift +2 -2
- package/ios/Next/FileSystemNextModule.swift +38 -2
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55-sources.jar → 18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82-sources.jar} +0 -0
- 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
- 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
- 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
- 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
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.aar → 18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.aar} +0 -0
- 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
- 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
- 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
- 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
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.module → 18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.module} +22 -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.module.md5 +1 -0
- 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
- 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
- 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
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/{18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.pom → 18.2.0-canary-20250630-547cd82/expo.modules.filesystem-18.2.0-canary-20250630-547cd82.pom} +1 -1
- 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
- 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
- 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
- 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
- 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 +4 -4
- package/src/FileSystem.types.ts +1 -6
- package/src/next/ExpoFileSystem.ts +2 -0
- package/src/next/ExpoFileSystem.types.ts +5 -0
- package/src/next/FileSystem.ts +14 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55-sources.jar.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55-sources.jar.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55-sources.jar.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55-sources.jar.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.aar.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.aar.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.aar.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.aar.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.module.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.module.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.module.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.module.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.pom.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.pom.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.pom.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/18.2.0-canary-20250612-338ef55/expo.modules.filesystem-18.2.0-canary-20250612-338ef55.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
|
package/android/build.gradle
CHANGED
|
@@ -4,13 +4,13 @@ plugins {
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
group = 'host.exp.exponent'
|
|
7
|
-
version = '18.2.0-canary-
|
|
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-
|
|
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.
|
|
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;
|
|
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;
|
|
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"}
|
package/expo-module.config.json
CHANGED
|
@@ -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
|
|
59
|
+
throw UnableToGetSizeException("attributes do not contain size")
|
|
60
60
|
}
|
|
61
61
|
guard let size = size as? NSNumber else {
|
|
62
|
-
throw
|
|
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
|
|
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":
|
|
13
|
-
"cacheDirectory":
|
|
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
|
+
5c8338515c4174c54c84a80f0b08ea80
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0be5554077e6b064ca45298e482138ae4d9103e2
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
863069af8776823249a16a25c383a2a29e83a81280b54019fffff2e315df6313
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
879b501c85367721cbc11faa3f10b8f398f31b9752502aa3a3961fb08e0a276a24c6d43ae201ac503f43534e897fa9c16ac811cef124c2845373a79d9e299dbf
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
778a5cb8f6dd28aeba3919f1d162c8f3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a99c6723ad826834da9b601369b1479e21e9115d
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
165e26238ba196e77f65446d891b5a4345a441715b6a4c7ab9590f54764167e1
|
|
@@ -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-
|
|
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-
|
|
72
|
-
"url": "expo.modules.filesystem-18.2.0-canary-
|
|
73
|
-
"size":
|
|
74
|
-
"sha512": "
|
|
75
|
-
"sha256": "
|
|
76
|
-
"sha1": "
|
|
77
|
-
"md5": "
|
|
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-
|
|
143
|
-
"url": "expo.modules.filesystem-18.2.0-canary-
|
|
144
|
-
"size":
|
|
145
|
-
"sha512": "
|
|
146
|
-
"sha256": "
|
|
147
|
-
"sha1": "
|
|
148
|
-
"md5": "
|
|
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-
|
|
163
|
-
"url": "expo.modules.filesystem-18.2.0-canary-
|
|
164
|
-
"size":
|
|
165
|
-
"sha512": "
|
|
166
|
-
"sha256": "
|
|
167
|
-
"sha1": "
|
|
168
|
-
"md5": "
|
|
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
|
+
6875160154b1492f48212afd72007174
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c9aa2442b14b5ddd6420367e5a88b2b5e390f6ad
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
d364cfa27af552d32de4a640dfee9453decff21d880c71d67a109333dd2c5ddf
|
|
@@ -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-
|
|
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
|
+
4ac4c480d307002c54f65e3a312aa731
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
f8a7c4fc221c9ea6c51d8c06facb357ea5168047
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
8a440405c6b93f0ba7f9283022b497b7a8063e442ec24a6d1b0f5a39473c8e90
|
|
@@ -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-
|
|
7
|
-
<release>18.2.0-canary-
|
|
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-
|
|
9
|
+
<version>18.2.0-canary-20250630-547cd82</version>
|
|
10
10
|
</versions>
|
|
11
|
-
<lastUpdated>
|
|
11
|
+
<lastUpdated>20250630093942</lastUpdated>
|
|
12
12
|
</versioning>
|
|
13
13
|
</metadata>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
339d845e591ef0783f86538957f108fe
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
43466fab1747963a2a04a00526443d1d2b88183c
|
package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha256
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
09ede7838cc14b5ca492eb4ed884a95d09ac5361915b063d27c9821a711141e3
|
package/local-maven-repo/host/exp/exponent/expo.modules.filesystem/maven-metadata.xml.sha512
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
d46d832cb4b902315b7f4c0146797ca04a891b907d7cc7cce5c89557eee1be1ab0b9a6bef52a29d22a19a535fccbdf3ff443d308482f6a6fc3ec07b6bfd190ab
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-file-system",
|
|
3
|
-
"version": "18.2.0-canary-
|
|
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.
|
|
39
|
-
"jest-expo": "54.0.0-canary-
|
|
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-
|
|
42
|
+
"expo": "54.0.0-canary-20250630-547cd82",
|
|
43
43
|
"react-native": "*"
|
|
44
44
|
}
|
|
45
45
|
}
|
package/src/FileSystem.types.ts
CHANGED
|
@@ -204,7 +204,7 @@ export type FileInfo =
|
|
|
204
204
|
*/
|
|
205
205
|
uri: string;
|
|
206
206
|
/**
|
|
207
|
-
* The size of the file in bytes.
|
|
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 = {
|
|
@@ -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 = {
|
package/src/next/FileSystem.ts
CHANGED
|
@@ -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
|
-
2003fc20bc6b10daed08f2422c631d05
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
411d53074267783a2c3abd5f70acc8ecfe206850
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0756e1e7fc3ed6c758e60d571776d16a91d67682c788082fc50f6bee8a24900c
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
be40f9a68f6d8766f337229b387c4b9e019446c6b5034b222dbaeca22abe0aabc533f964aed61dc9bb32c251cfbf01def0ea36debbec0ee6ceb45e0fb271f414
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
714afc053c77e63be31a31618d09495c
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
da887e7fa639fe2b40319061b5ff4d13f0f2bd62
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
f7b382e83d36d7223b0b107881bf1b629072140bf85d20416a5240edcf3b8ead
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
494bbd18c43c3ec7930e9a2b8b60519ddac51f0db0e76e8e9e8a79368feaf05fac925801adb040de753f19ac5c349fa68a4cab6b1304aedfe6e8da6467c4ea39
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
4847921a1a2e378f4cd391117f394916
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
f1056a158afcb2b30357d53d0eed153a91615637
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3a0299ed3ff73b57937d8e4f163a18602168a9a7a8b91a7a039797d39b957e96
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
f5137605f6911c84b55acf21f1916d0e74769722c84ec7d71bcde78a0e9a3bcfbc93d2b9b1d1cddd00922f1bc38282da1b0fcffa461a4de3871f757b068b585d
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
fc8a8dac16bf63ca800eb9eae91d3acb
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
6a744d90555063ad026b278f2d3b1ac93440a431
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
5ff986f895cc09fab7fc6a6fca6fa32409a5d682031690bbcfe4160b68bb5d2f
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
32bb2f003b61f737f78871e2fb81378d07fe85fc6dbeed0842ba96d5019bfbbf712a62f8f45e3c72e1724cfb39e0cd8e271af5ec27822869d99a9dd2645fe050
|