react-native-cloud-storage 0.5.0 → 0.7.0

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 (38) hide show
  1. package/ios/CloudStorage.m +2 -0
  2. package/ios/CloudStorage.swift +44 -0
  3. package/ios/CloudStorage.xcodeproj/project.pbxproj +1 -3
  4. package/lib/commonjs/RNCloudStorage.js +18 -0
  5. package/lib/commonjs/RNCloudStorage.js.map +1 -1
  6. package/lib/commonjs/google-drive/index.js +61 -9
  7. package/lib/commonjs/google-drive/index.js.map +1 -1
  8. package/lib/commonjs/hooks/useIsCloudAvailable.js +0 -2
  9. package/lib/commonjs/hooks/useIsCloudAvailable.js.map +1 -1
  10. package/lib/commonjs/index.js +10 -0
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/commonjs/types/native.js +1 -0
  13. package/lib/commonjs/types/native.js.map +1 -1
  14. package/lib/module/RNCloudStorage.js +18 -0
  15. package/lib/module/RNCloudStorage.js.map +1 -1
  16. package/lib/module/google-drive/index.js +61 -9
  17. package/lib/module/google-drive/index.js.map +1 -1
  18. package/lib/module/hooks/useIsCloudAvailable.js +0 -2
  19. package/lib/module/hooks/useIsCloudAvailable.js.map +1 -1
  20. package/lib/module/index.js +5 -1
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/types/native.js +1 -0
  23. package/lib/module/types/native.js.map +1 -1
  24. package/lib/typescript/RNCloudStorage.d.ts +14 -0
  25. package/lib/typescript/RNCloudStorage.d.ts.map +1 -1
  26. package/lib/typescript/google-drive/index.d.ts +9 -1
  27. package/lib/typescript/google-drive/index.d.ts.map +1 -1
  28. package/lib/typescript/hooks/useIsCloudAvailable.d.ts.map +1 -1
  29. package/lib/typescript/index.d.ts +4 -1
  30. package/lib/typescript/index.d.ts.map +1 -1
  31. package/lib/typescript/types/native.d.ts +3 -0
  32. package/lib/typescript/types/native.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/src/RNCloudStorage.ts +20 -0
  35. package/src/google-drive/index.ts +75 -11
  36. package/src/hooks/useIsCloudAvailable.ts +0 -2
  37. package/src/index.ts +5 -1
  38. package/src/types/native.ts +3 -0
@@ -4,6 +4,8 @@
4
4
 
5
5
  RCT_EXTERN_METHOD(fileExists:(NSString *)path withScope:(NSString *)scope withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
6
6
  RCT_EXTERN_METHOD(createFile:(NSString *)path withData:(NSString *)data withScope:(NSString *)scope withOverwrite:(BOOL)overwrite withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
7
+ RCT_EXTERN_METHOD(createDirectory:(NSString *)path withScope:(NSString *)scope withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
8
+ RCT_EXTERN_METHOD(listFiles:(NSString *)path withScope:(NSString *)scope withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
7
9
  RCT_EXTERN_METHOD(readFile:(NSString *)path withScope:(NSString *)scope withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
8
10
  RCT_EXTERN_METHOD(deleteFile:(NSString *)path withScope:(NSString *)scope withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
9
11
  RCT_EXTERN_METHOD(statFile:(NSString *)path withScope:(NSString *)scope withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
@@ -37,6 +37,50 @@ class CloudStorage: NSObject {
37
37
  }
38
38
  }
39
39
 
40
+ @objc(createDirectory:withScope:withResolver:withRejecter:)
41
+ func createDirectory(path: String, scope: String, resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void {
42
+ let fileManager = FileManager.default
43
+ let directory = getDirectory(scope)
44
+ if (directory == nil) {
45
+ reject("ERR_NO_DIRECTORY_FOUND", "No directory found for scope \(scope)", nil)
46
+ return
47
+ }
48
+ let dirPath = directory?.appendingPathComponent(path)
49
+ let dirExists = fileManager.fileExists(atPath: dirPath!.path)
50
+ if (dirExists) {
51
+ reject("ERR_FILE_EXISTS", "Directory \(path) already exists", nil)
52
+ return
53
+ }
54
+ do {
55
+ try fileManager.createDirectory(at: dirPath!, withIntermediateDirectories: true, attributes: nil)
56
+ resolve(true)
57
+ } catch {
58
+ reject("ERR_WRITE_ERROR", "Error creating directory \(path)", error)
59
+ }
60
+ }
61
+
62
+ @objc(listFiles:withScope:withResolver:withRejecter:)
63
+ func listFiles(path: String, scope: String, resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void {
64
+ let fileManager = FileManager.default
65
+ let directory = getDirectory(scope)
66
+ if (directory == nil) {
67
+ reject("ERR_NO_DIRECTORY_FOUND", "No directory found for scope \(scope)", nil)
68
+ return
69
+ }
70
+ let dirPath = directory?.appendingPathComponent(path)
71
+ let dirExists = fileManager.fileExists(atPath: dirPath!.path)
72
+ if (!dirExists) {
73
+ reject("ERR_DIRECTORY_NOT_FOUND", "Directory \(path) not found", nil)
74
+ return
75
+ }
76
+ do {
77
+ let files = try fileManager.contentsOfDirectory(atPath: dirPath!.path)
78
+ resolve(files)
79
+ } catch {
80
+ reject("ERR_READ_ERROR", "Error reading directory \(path)", error)
81
+ }
82
+ }
83
+
40
84
  @objc(readFile:withScope:withResolver:withRejecter:)
41
85
  func readFile(path: String, scope: String, resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void {
42
86
  let fileManager = FileManager.default
@@ -7,8 +7,7 @@
7
7
  objects = {
8
8
 
9
9
  /* Begin PBXBuildFile section */
10
- 5E555C0D2413F4C50049A1A2 /* CloudStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = B3E7B5891CC2AC0600A0062D /* CloudStorage.m */; };
11
- F4FF95D7245B92E800C19C63 /* CloudStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF95D6245B92E800C19C63 /* CloudStorage.swift */; };
10
+ F4FF95D7245B92E800C19C63 /* CloudStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF95D6245B92E800C19C63 /* CloudStorage.swift */; };
12
11
  /* End PBXBuildFile section */
13
12
 
14
13
  /* Begin PBXCopyFilesBuildPhase section */
@@ -117,7 +116,6 @@
117
116
  buildActionMask = 2147483647;
118
117
  files = (
119
118
  F4FF95D7245B92E800C19C63 /* CloudStorage.swift in Sources */,
120
- B3E7B58A1CC2AC0600A0062D /* CloudStorage.m in Sources */,
121
119
  );
122
120
  runOnlyForDeploymentPostprocessing = 0;
123
121
  };
@@ -48,6 +48,24 @@ const RNCloudStorage = {
48
48
  writeFile: (path, data, scope) => {
49
49
  return nativeInstance.createFile(path, data, scope, true);
50
50
  },
51
+ /**
52
+ * Creates a new directory at the given path.
53
+ * @param path The directory to create.
54
+ * @param scope The directory scope the path is in.
55
+ * @returns A promise that resolves when the directory has been created.
56
+ */
57
+ mkdir: (path, scope) => {
58
+ return nativeInstance.createDirectory(path, scope);
59
+ },
60
+ /**
61
+ * Lists the contents of the directory at the given path.
62
+ * @param path The directory to list.
63
+ * @param scope The directory scope the path is in.
64
+ * @returns A promise that resolves to an array of file names, excluding '.' and '..'.
65
+ */
66
+ readdir: (path, scope) => {
67
+ return nativeInstance.listFiles(path, scope);
68
+ },
51
69
  /**
52
70
  * Reads the contents of the file at the given path.
53
71
  * @param path The file to read.
@@ -1 +1 @@
1
- {"version":3,"names":["_createRNCloudStorage","_interopRequireDefault","require","_googleDrive","_reactNative","obj","__esModule","default","nativeInstance","createRNCloudStorage","RNCloudStorage","getGoogleDriveAccessToken","GoogleDriveApiClient","accessToken","setGoogleDriveAccessToken","setThrowOnFilesWithSameName","enable","throwOnFilesWithSameName","subscribeToFilesWithSameName","Platform","OS","subscriber","remove","bind","isCloudAvailable","exists","path","scope","fileExists","writeFile","data","createFile","readFile","unlink","deleteFile","stat","native","statFile","birthtime","Date","birthtimeMs","mtime","mtimeMs","isDirectory","isFile","_default","exports"],"sourceRoot":"../../src","sources":["RNCloudStorage.ts"],"mappings":";;;;;;AAAA,IAAAA,qBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AAAwC,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAExC,MAAMG,cAAc,GAAG,IAAAC,6BAAoB,GAAE;AAE7C,MAAMC,cAAc,GAAG;EACrBC,yBAAyB,EAAEA,CAAA,KAAMC,oBAAoB,CAACC,WAAW;EACjEC,yBAAyB,EAAGD,WAAmB,IAAMD,oBAAoB,CAACC,WAAW,GAAGA,WAAY;EACpGE,2BAA2B,EAAGC,MAAe,IAAMJ,oBAAoB,CAACK,wBAAwB,GAAGD,MAAO;EAC1G;EACAE,4BAA4B,EAC1BC,qBAAQ,CAACC,EAAE,KAAK,KAAK;EACjB;EACCC,UAA4E,KAAM;IAAEC,MAAM,EAAEA,CAAA,KAAM,CAAC;EAAE,CAAC,CAAC,GACvGd,cAAc,CAA0BU,4BAA4B,CAACK,IAAI,CAACf,cAAc,CAAC;EAChG;;EAEA;AACF;AACA;AACA;AACA;EACEgB,gBAAgB,EAAE,MAAAA,CAAA,KAA8B;IAC9C,OAAOhB,cAAc,CAACgB,gBAAgB,EAAE;EAC1C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEC,MAAM,EAAEA,CAACC,IAAY,EAAEC,KAAwB,KAAuB;IACpE,OAAOnB,cAAc,CAACoB,UAAU,CAACF,IAAI,EAAEC,KAAK,CAAC;EAC/C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEE,SAAS,EAAEA,CAACH,IAAY,EAAEI,IAAY,EAAEH,KAAwB,KAAoB;IAClF,OAAOnB,cAAc,CAACuB,UAAU,CAACL,IAAI,EAAEI,IAAI,EAAEH,KAAK,EAAE,IAAI,CAAC;EAC3D,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEK,QAAQ,EAAEA,CAACN,IAAY,EAAEC,KAAwB,KAAsB;IACrE,OAAOnB,cAAc,CAACwB,QAAQ,CAACN,IAAI,EAAEC,KAAK,CAAC;EAC7C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEM,MAAM,EAAEA,CAACP,IAAY,EAAEC,KAAwB,KAAoB;IACjE,OAAOnB,cAAc,CAAC0B,UAAU,CAACR,IAAI,EAAEC,KAAK,CAAC;EAC/C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEQ,IAAI,EAAE,MAAAA,CAAOT,IAAY,EAAEC,KAAwB,KAAoC;IACrF,MAAMS,MAAM,GAAG,MAAM5B,cAAc,CAAC6B,QAAQ,CAACX,IAAI,EAAEC,KAAK,CAAC;IAEzD,OAAO;MACL,GAAGS,MAAM;MACTE,SAAS,EAAE,IAAIC,IAAI,CAACH,MAAM,CAACI,WAAW,CAAC;MACvCC,KAAK,EAAE,IAAIF,IAAI,CAACH,MAAM,CAACM,OAAO,CAAC;MAC/BC,WAAW,EAAEA,CAAA,KAAMP,MAAM,CAACO,WAAW;MACrCC,MAAM,EAAEA,CAAA,KAAMR,MAAM,CAACQ;IACvB,CAAC;EACH;AACF,CAAC;AAAC,IAAAC,QAAA,GAEanC,cAAc;AAAAoC,OAAA,CAAAvC,OAAA,GAAAsC,QAAA"}
1
+ {"version":3,"names":["_createRNCloudStorage","_interopRequireDefault","require","_googleDrive","_reactNative","obj","__esModule","default","nativeInstance","createRNCloudStorage","RNCloudStorage","getGoogleDriveAccessToken","GoogleDriveApiClient","accessToken","setGoogleDriveAccessToken","setThrowOnFilesWithSameName","enable","throwOnFilesWithSameName","subscribeToFilesWithSameName","Platform","OS","subscriber","remove","bind","isCloudAvailable","exists","path","scope","fileExists","writeFile","data","createFile","mkdir","createDirectory","readdir","listFiles","readFile","unlink","deleteFile","stat","native","statFile","birthtime","Date","birthtimeMs","mtime","mtimeMs","isDirectory","isFile","_default","exports"],"sourceRoot":"../../src","sources":["RNCloudStorage.ts"],"mappings":"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"}
@@ -96,7 +96,20 @@ class GoogleDriveApiClient {
96
96
  }
97
97
  return currentDirectoryId;
98
98
  }
99
- async listFiles(scope) {
99
+
100
+ /**
101
+ * Gets the Google Drive ID of the root directory for the given scope.
102
+ * @param scope The scope to get the root directory for.
103
+ * @returns A promise that resolves to the ID of the root directory or null if it could not be found.
104
+ */
105
+ async getRootDirectoryId(scope) {
106
+ const files = await this.listInternalFiles(scope);
107
+ for (const file of files) {
108
+ if (!files.find(f => f.id === file.parents[0])) return file.parents[0] ?? null;
109
+ }
110
+ return null;
111
+ }
112
+ async listInternalFiles(scope) {
100
113
  const files = await GoogleDriveApiClient.drive.files.list({
101
114
  spaces: [this.getRootDirectory(scope)],
102
115
  fields: 'files(id,kind,mimeType,name,parents,spaces)'
@@ -121,8 +134,9 @@ class GoogleDriveApiClient {
121
134
  }
122
135
  }
123
136
  async getFileId(path, scope) {
137
+ let throwIfDirectory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
124
138
  try {
125
- const files = await this.listFiles(scope);
139
+ const files = await this.listInternalFiles(scope);
126
140
  const {
127
141
  directories,
128
142
  filename
@@ -139,8 +153,8 @@ class GoogleDriveApiClient {
139
153
  file = files.find(f => f.name === filename && f.parents[0] === parentDirectoryId);
140
154
  }
141
155
  if (!file) throw new _CloudStorageError.default(`File not found`, _native.CloudStorageErrorCode.FILE_NOT_FOUND);
142
- if (file.mimeType === _reactNativeGoogleDriveApiWrapperJs.MimeTypes.FOLDER) {
143
- throw new _CloudStorageError.default(`Path ${path} is a directory`, _native.CloudStorageErrorCode.FILE_NOT_FOUND);
156
+ if (file.mimeType === _reactNativeGoogleDriveApiWrapperJs.MimeTypes.FOLDER && throwIfDirectory) {
157
+ throw new _CloudStorageError.default(`Path ${path} is a directory`, _native.CloudStorageErrorCode.PATH_IS_DIRECTORY);
144
158
  }
145
159
  return file.id;
146
160
  } catch (e) {
@@ -155,7 +169,7 @@ class GoogleDriveApiClient {
155
169
  }
156
170
  async fileExists(path, scope) {
157
171
  try {
158
- await this.getFileId(path, scope);
172
+ await this.getFileId(path, scope, false);
159
173
  return true;
160
174
  } catch (e) {
161
175
  if (e instanceof _CloudStorageError.default && e.code === _native.CloudStorageErrorCode.FILE_NOT_FOUND) return false;else throw e;
@@ -187,7 +201,7 @@ class GoogleDriveApiClient {
187
201
  }
188
202
  const uploader = GoogleDriveApiClient.drive.files.newMultipartUploader().setData(data, _reactNativeGoogleDriveApiWrapperJs.MimeTypes.TEXT);
189
203
  if (fileId) uploader.setIdOfFileToUpdate(fileId);else {
190
- const files = await this.listFiles(scope);
204
+ const files = await this.listInternalFiles(scope);
191
205
  const {
192
206
  directories,
193
207
  filename
@@ -200,6 +214,44 @@ class GoogleDriveApiClient {
200
214
  }
201
215
  await uploader.execute();
202
216
  }
217
+ async listFiles(path, scope) {
218
+ const allFiles = await this.listInternalFiles(scope);
219
+ if (path !== '') {
220
+ const fileId = await this.getFileId(path, scope, false);
221
+ const files = allFiles.filter(f => (f.parents ?? [])[0] === fileId);
222
+ return Array.from(new Set(files.map(f => f.name)));
223
+ } else {
224
+ const rootDirectoryId = await this.getRootDirectoryId(scope);
225
+ return Array.from(new Set(allFiles.filter(f => (f.parents ?? [])[0] === rootDirectoryId).map(f => f.name)));
226
+ }
227
+ }
228
+ async createDirectory(path, scope) {
229
+ try {
230
+ await this.getFileId(path, scope);
231
+ throw new _CloudStorageError.default(`File ${path} already exists`, _native.CloudStorageErrorCode.FILE_ALREADY_EXISTS);
232
+ } catch (e) {
233
+ if (e instanceof _CloudStorageError.default && e.code === _native.CloudStorageErrorCode.FILE_NOT_FOUND) {
234
+ /* do nothing, simply create the file */
235
+ } else if (e instanceof _CloudStorageError.default && e.code === _native.CloudStorageErrorCode.PATH_IS_DIRECTORY) {
236
+ throw new _CloudStorageError.default(`Directory ${path} already exists`, _native.CloudStorageErrorCode.FILE_ALREADY_EXISTS);
237
+ } else {
238
+ throw e;
239
+ }
240
+ }
241
+ const uploader = GoogleDriveApiClient.drive.files.newMetadataOnlyUploader();
242
+ const files = await this.listInternalFiles(scope);
243
+ const {
244
+ directories,
245
+ filename
246
+ } = this.resolvePathToDirectories(path);
247
+ const parentDirectoryId = this.findParentDirectoryId(files, directories);
248
+ uploader.setRequestBody({
249
+ name: filename,
250
+ mimeType: _reactNativeGoogleDriveApiWrapperJs.MimeTypes.FOLDER,
251
+ parents: parentDirectoryId ? [parentDirectoryId] : scope === 'app_data' ? [this.getRootDirectory(scope)] : undefined
252
+ });
253
+ await uploader.execute();
254
+ }
203
255
  async readFile(path, scope) {
204
256
  const fileId = await this.getFileId(path, scope);
205
257
  const content = await GoogleDriveApiClient.drive.files.getText(fileId);
@@ -210,10 +262,10 @@ class GoogleDriveApiClient {
210
262
  await GoogleDriveApiClient.drive.files.delete(fileId);
211
263
  }
212
264
  async statFile(path, scope) {
213
- const fileId = await this.getFileId(path, scope);
214
- const file = await GoogleDriveApiClient.drive.files.get(fileId, {
265
+ const fileId = await this.getFileId(path, scope, false);
266
+ const file = await (await GoogleDriveApiClient.drive.files.get(fileId, {
215
267
  fields: 'id,kind,mimeType,name,parents,spaces,size,createdTime,modifiedTime'
216
- });
268
+ })).json();
217
269
  return {
218
270
  size: file.size ?? 0,
219
271
  birthtimeMs: new Date(file.createdTime).getTime(),
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeGoogleDriveApiWrapperJs","require","_native","_CloudStorageError","_interopRequireDefault","obj","__esModule","default","GoogleDriveApiClient","drive","GDrive","throwOnFilesWithSameName","constructor","filesWithSameNameSubscribers","fetchTimeout","Proxy","get","target","prop","allowedFunctions","includes","toString","accessToken","CloudStorageError","CloudStorageErrorCode","GOOGLE_DRIVE_ACCESS_TOKEN_MISSING","subscribeToFilesWithSameName","subscriber","push","remove","filter","s","isCloudAvailable","_GoogleDriveApiClient","length","getRootDirectory","scope","resolvePathToDirectories","path","startsWith","slice","endsWith","directories","split","actualFilename","pop","filename","findParentDirectoryId","files","directoryTree","possibleTopDirectories","f","mimeType","MimeTypes","FOLDER","name","topDirectoryId","id","possibleTopDirectory","find","parents","DIRECTORY_NOT_FOUND","currentDirectoryId","i","currentDirectory","nextDirectory","listFiles","list","spaces","fields","checkIfMultipleFilesWithSameName","parentDirectoryId","possibleFiles","f2","map","join","MULTIPLE_FILES_SAME_NAME","forEach","fileIds","getFileId","file","FILE_NOT_FOUND","e","_e$json","_e$json$error","HttpError","json","error","status","AUTHENTICATION_FAILED","UNKNOWN","fileExists","code","createFile","data","overwrite","fileId","FILE_ALREADY_EXISTS","uploader","newMultipartUploader","setData","TEXT","setIdOfFileToUpdate","setRequestBody","undefined","execute","readFile","content","getText","deleteFile","delete","statFile","size","birthtimeMs","Date","createdTime","getTime","mtimeMs","modifiedTime","isDirectory","isFile","exports"],"sourceRoot":"../../../src","sources":["google-drive/index.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNativeGoogleDriveApiWrapperJs","require","_native","_CloudStorageError","_interopRequireDefault","obj","__esModule","default","GoogleDriveApiClient","drive","GDrive","throwOnFilesWithSameName","constructor","filesWithSameNameSubscribers","fetchTimeout","Proxy","get","target","prop","allowedFunctions","includes","toString","accessToken","CloudStorageError","CloudStorageErrorCode","GOOGLE_DRIVE_ACCESS_TOKEN_MISSING","subscribeToFilesWithSameName","subscriber","push","remove","filter","s","isCloudAvailable","_GoogleDriveApiClient","length","getRootDirectory","scope","resolvePathToDirectories","path","startsWith","slice","endsWith","directories","split","actualFilename","pop","filename","findParentDirectoryId","files","directoryTree","possibleTopDirectories","f","mimeType","MimeTypes","FOLDER","name","topDirectoryId","id","possibleTopDirectory","find","parents","DIRECTORY_NOT_FOUND","currentDirectoryId","i","currentDirectory","nextDirectory","getRootDirectoryId","listInternalFiles","file","list","spaces","fields","checkIfMultipleFilesWithSameName","parentDirectoryId","possibleFiles","f2","map","join","MULTIPLE_FILES_SAME_NAME","forEach","fileIds","getFileId","throwIfDirectory","arguments","undefined","FILE_NOT_FOUND","PATH_IS_DIRECTORY","e","_e$json","_e$json$error","HttpError","json","error","status","AUTHENTICATION_FAILED","UNKNOWN","fileExists","code","createFile","data","overwrite","fileId","FILE_ALREADY_EXISTS","uploader","newMultipartUploader","setData","TEXT","setIdOfFileToUpdate","setRequestBody","execute","listFiles","allFiles","Array","from","Set","rootDirectoryId","createDirectory","newMetadataOnlyUploader","readFile","content","getText","deleteFile","delete","statFile","size","birthtimeMs","Date","createdTime","getTime","mtimeMs","modifiedTime","isDirectory","isFile","exports"],"sourceRoot":"../../../src","sources":["google-drive/index.ts"],"mappings":"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"}
@@ -17,13 +17,11 @@ const useIsCloudAvailable = function () {
17
17
  const newIsAvailable = await _RNCloudStorage.default.isCloudAvailable();
18
18
  setIsAvailable(newIsAvailable);
19
19
  if (_reactNative.Platform.OS === 'ios' && newIsAvailable) {
20
- console.log('Stopped because iCloud became available');
21
20
  clearInterval(interval);
22
21
  }
23
22
  }, 500);
24
23
  if (_reactNative.Platform.OS === 'ios') {
25
24
  setTimeout(() => {
26
- console.log('Stopped because of timeout');
27
25
  clearInterval(interval);
28
26
  }, iCloudTimeout * 1000);
29
27
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_RNCloudStorage","_interopRequireDefault","obj","__esModule","default","useIsCloudAvailable","iCloudTimeout","arguments","length","undefined","isAvailable","setIsAvailable","useState","useEffect","interval","setInterval","newIsAvailable","RNCloudStorage","isCloudAvailable","Platform","OS","console","log","clearInterval","setTimeout","exports"],"sourceRoot":"../../../src","sources":["hooks/useIsCloudAvailable.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAC,sBAAA,CAAAH,OAAA;AAA+C,SAAAG,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE/C;AACO,MAAMG,mBAAmB,GAAG,SAAAA,CAAA,EAAwB;EAAA,IAAvBC,aAAa,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACpD,MAAM,CAACG,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAErD,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,QAAQ,GAAGC,WAAW,CAAC,YAAY;MACvC,MAAMC,cAAc,GAAG,MAAMC,uBAAc,CAACC,gBAAgB,EAAE;MAC9DP,cAAc,CAACK,cAAc,CAAC;MAC9B,IAAIG,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAIJ,cAAc,EAAE;QAC3CK,OAAO,CAACC,GAAG,CAAC,yCAAyC,CAAC;QACtDC,aAAa,CAACT,QAAQ,CAAC;MACzB;IACF,CAAC,EAAE,GAAG,CAAC;IAEP,IAAIK,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBI,UAAU,CAAC,MAAM;QACfH,OAAO,CAACC,GAAG,CAAC,4BAA4B,CAAC;QACzCC,aAAa,CAACT,QAAQ,CAAC;MACzB,CAAC,EAAER,aAAa,GAAG,IAAI,CAAC;IAC1B;IAEA,OAAO,MAAMiB,aAAa,CAACT,QAAQ,CAAC;EACtC,CAAC,EAAE,CAACR,aAAa,CAAC,CAAC;EAEnB,OAAOI,WAAW;AACpB,CAAC;AAACe,OAAA,CAAApB,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["_react","require","_reactNative","_RNCloudStorage","_interopRequireDefault","obj","__esModule","default","useIsCloudAvailable","iCloudTimeout","arguments","length","undefined","isAvailable","setIsAvailable","useState","useEffect","interval","setInterval","newIsAvailable","RNCloudStorage","isCloudAvailable","Platform","OS","clearInterval","setTimeout","exports"],"sourceRoot":"../../../src","sources":["hooks/useIsCloudAvailable.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAC,sBAAA,CAAAH,OAAA;AAA+C,SAAAG,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE/C;AACO,MAAMG,mBAAmB,GAAG,SAAAA,CAAA,EAAwB;EAAA,IAAvBC,aAAa,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACpD,MAAM,CAACG,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAErD,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,QAAQ,GAAGC,WAAW,CAAC,YAAY;MACvC,MAAMC,cAAc,GAAG,MAAMC,uBAAc,CAACC,gBAAgB,EAAE;MAC9DP,cAAc,CAACK,cAAc,CAAC;MAC9B,IAAIG,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAIJ,cAAc,EAAE;QAC3CK,aAAa,CAACP,QAAQ,CAAC;MACzB;IACF,CAAC,EAAE,GAAG,CAAC;IAEP,IAAIK,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBE,UAAU,CAAC,MAAM;QACfD,aAAa,CAACP,QAAQ,CAAC;MACzB,CAAC,EAAER,aAAa,GAAG,IAAI,CAAC;IAC1B;IAEA,OAAO,MAAMe,aAAa,CAACP,QAAQ,CAAC;EACtC,CAAC,EAAE,CAACR,aAAa,CAAC,CAAC;EAEnB,OAAOI,WAAW;AACpB,CAAC;AAACa,OAAA,CAAAlB,mBAAA,GAAAA,mBAAA"}
@@ -4,9 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  var _exportNames = {
7
+ CloudStorage: true,
7
8
  CloudStorageErrorCode: true,
8
9
  CloudStorageError: true
9
10
  };
11
+ Object.defineProperty(exports, "CloudStorage", {
12
+ enumerable: true,
13
+ get: function () {
14
+ return _RNCloudStorage.default;
15
+ }
16
+ });
10
17
  Object.defineProperty(exports, "CloudStorageError", {
11
18
  enumerable: true,
12
19
  get: function () {
@@ -60,6 +67,9 @@ Object.keys(_useIsCloudAvailable).forEach(function (key) {
60
67
  });
61
68
  var _CloudStorageError = _interopRequireDefault(require("./utils/CloudStorageError"));
62
69
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
70
+ /**
71
+ * @deprecated Use the named export `CloudStorage` instead.
72
+ */
63
73
  var _default = _RNCloudStorage.default;
64
74
  exports.default = _default;
65
75
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_RNCloudStorage","_interopRequireDefault","require","_native","_main","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_useCloudFile","_useIsCloudAvailable","_CloudStorageError","obj","__esModule","default","_default","RNCloudStorage"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAF,KAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,KAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,KAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,aAAA,GAAAf,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAW,aAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,aAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,aAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,oBAAA,GAAAhB,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAY,oBAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,oBAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,oBAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,kBAAA,GAAAlB,sBAAA,CAAAC,OAAA;AAA0D,SAAAD,uBAAAmB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,IAAAG,QAAA,GAG3CC,uBAAc;AAAAX,OAAA,CAAAS,OAAA,GAAAC,QAAA"}
1
+ {"version":3,"names":["_RNCloudStorage","_interopRequireDefault","require","_native","_main","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_useCloudFile","_useIsCloudAvailable","_CloudStorageError","obj","__esModule","default","_default","RNCloudStorage"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAF,KAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,KAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,KAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,aAAA,GAAAf,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAW,aAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,aAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,aAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,oBAAA,GAAAhB,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAY,oBAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,oBAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,oBAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,kBAAA,GAAAlB,sBAAA,CAAAC,OAAA;AAA0D,SAAAD,uBAAAmB,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAI1D;AACA;AACA;AAFA,IAAAG,QAAA,GAGeC,uBAAc;AAAAX,OAAA,CAAAS,OAAA,GAAAC,QAAA"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.CloudStorageErrorCode = void 0;
7
7
  let CloudStorageErrorCode = /*#__PURE__*/function (CloudStorageErrorCode) {
8
8
  CloudStorageErrorCode["FILE_NOT_FOUND"] = "ERR_FILE_NOT_FOUND";
9
+ CloudStorageErrorCode["PATH_IS_DIRECTORY"] = "ERR_PATH_IS_DIRECTORY";
9
10
  CloudStorageErrorCode["DIRECTORY_NOT_FOUND"] = "ERR_NO_DIRECTORY_FOUND";
10
11
  CloudStorageErrorCode["FILE_ALREADY_EXISTS"] = "ERR_FILE_EXISTS";
11
12
  CloudStorageErrorCode["MULTIPLE_FILES_SAME_NAME"] = "ERR_MULTIPLE_FILES_SAME_NAME";
@@ -1 +1 @@
1
- {"version":3,"names":["CloudStorageErrorCode","exports"],"sourceRoot":"../../../src","sources":["types/native.ts"],"mappings":";;;;;;IAUYA,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;AAAAC,OAAA,CAAAD,qBAAA,GAAAA,qBAAA"}
1
+ {"version":3,"names":["CloudStorageErrorCode","exports"],"sourceRoot":"../../../src","sources":["types/native.ts"],"mappings":";;;;;;IAUYA,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;AAAAC,OAAA,CAAAD,qBAAA,GAAAA,qBAAA"}
@@ -41,6 +41,24 @@ const RNCloudStorage = {
41
41
  writeFile: (path, data, scope) => {
42
42
  return nativeInstance.createFile(path, data, scope, true);
43
43
  },
44
+ /**
45
+ * Creates a new directory at the given path.
46
+ * @param path The directory to create.
47
+ * @param scope The directory scope the path is in.
48
+ * @returns A promise that resolves when the directory has been created.
49
+ */
50
+ mkdir: (path, scope) => {
51
+ return nativeInstance.createDirectory(path, scope);
52
+ },
53
+ /**
54
+ * Lists the contents of the directory at the given path.
55
+ * @param path The directory to list.
56
+ * @param scope The directory scope the path is in.
57
+ * @returns A promise that resolves to an array of file names, excluding '.' and '..'.
58
+ */
59
+ readdir: (path, scope) => {
60
+ return nativeInstance.listFiles(path, scope);
61
+ },
44
62
  /**
45
63
  * Reads the contents of the file at the given path.
46
64
  * @param path The file to read.
@@ -1 +1 @@
1
- {"version":3,"names":["createRNCloudStorage","GoogleDriveApiClient","Platform","nativeInstance","RNCloudStorage","getGoogleDriveAccessToken","accessToken","setGoogleDriveAccessToken","setThrowOnFilesWithSameName","enable","throwOnFilesWithSameName","subscribeToFilesWithSameName","OS","subscriber","remove","bind","isCloudAvailable","exists","path","scope","fileExists","writeFile","data","createFile","readFile","unlink","deleteFile","stat","native","statFile","birthtime","Date","birthtimeMs","mtime","mtimeMs","isDirectory","isFile"],"sourceRoot":"../../src","sources":["RNCloudStorage.ts"],"mappings":"AAAA,OAAOA,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,oBAAoB,MAAM,gBAAgB;AAEjD,SAASC,QAAQ,QAAQ,cAAc;AAEvC,MAAMC,cAAc,GAAGH,oBAAoB,EAAE;AAE7C,MAAMI,cAAc,GAAG;EACrBC,yBAAyB,EAAEA,CAAA,KAAMJ,oBAAoB,CAACK,WAAW;EACjEC,yBAAyB,EAAGD,WAAmB,IAAML,oBAAoB,CAACK,WAAW,GAAGA,WAAY;EACpGE,2BAA2B,EAAGC,MAAe,IAAMR,oBAAoB,CAACS,wBAAwB,GAAGD,MAAO;EAC1G;EACAE,4BAA4B,EAC1BT,QAAQ,CAACU,EAAE,KAAK,KAAK;EACjB;EACCC,UAA4E,KAAM;IAAEC,MAAM,EAAEA,CAAA,KAAM,CAAC;EAAE,CAAC,CAAC,GACvGX,cAAc,CAA0BQ,4BAA4B,CAACI,IAAI,CAACZ,cAAc,CAAC;EAChG;;EAEA;AACF;AACA;AACA;AACA;EACEa,gBAAgB,EAAE,MAAAA,CAAA,KAA8B;IAC9C,OAAOb,cAAc,CAACa,gBAAgB,EAAE;EAC1C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEC,MAAM,EAAEA,CAACC,IAAY,EAAEC,KAAwB,KAAuB;IACpE,OAAOhB,cAAc,CAACiB,UAAU,CAACF,IAAI,EAAEC,KAAK,CAAC;EAC/C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEE,SAAS,EAAEA,CAACH,IAAY,EAAEI,IAAY,EAAEH,KAAwB,KAAoB;IAClF,OAAOhB,cAAc,CAACoB,UAAU,CAACL,IAAI,EAAEI,IAAI,EAAEH,KAAK,EAAE,IAAI,CAAC;EAC3D,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEK,QAAQ,EAAEA,CAACN,IAAY,EAAEC,KAAwB,KAAsB;IACrE,OAAOhB,cAAc,CAACqB,QAAQ,CAACN,IAAI,EAAEC,KAAK,CAAC;EAC7C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEM,MAAM,EAAEA,CAACP,IAAY,EAAEC,KAAwB,KAAoB;IACjE,OAAOhB,cAAc,CAACuB,UAAU,CAACR,IAAI,EAAEC,KAAK,CAAC;EAC/C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEQ,IAAI,EAAE,MAAAA,CAAOT,IAAY,EAAEC,KAAwB,KAAoC;IACrF,MAAMS,MAAM,GAAG,MAAMzB,cAAc,CAAC0B,QAAQ,CAACX,IAAI,EAAEC,KAAK,CAAC;IAEzD,OAAO;MACL,GAAGS,MAAM;MACTE,SAAS,EAAE,IAAIC,IAAI,CAACH,MAAM,CAACI,WAAW,CAAC;MACvCC,KAAK,EAAE,IAAIF,IAAI,CAACH,MAAM,CAACM,OAAO,CAAC;MAC/BC,WAAW,EAAEA,CAAA,KAAMP,MAAM,CAACO,WAAW;MACrCC,MAAM,EAAEA,CAAA,KAAMR,MAAM,CAACQ;IACvB,CAAC;EACH;AACF,CAAC;AAED,eAAehC,cAAc"}
1
+ {"version":3,"names":["createRNCloudStorage","GoogleDriveApiClient","Platform","nativeInstance","RNCloudStorage","getGoogleDriveAccessToken","accessToken","setGoogleDriveAccessToken","setThrowOnFilesWithSameName","enable","throwOnFilesWithSameName","subscribeToFilesWithSameName","OS","subscriber","remove","bind","isCloudAvailable","exists","path","scope","fileExists","writeFile","data","createFile","mkdir","createDirectory","readdir","listFiles","readFile","unlink","deleteFile","stat","native","statFile","birthtime","Date","birthtimeMs","mtime","mtimeMs","isDirectory","isFile"],"sourceRoot":"../../src","sources":["RNCloudStorage.ts"],"mappings":"AAAA,OAAOA,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,oBAAoB,MAAM,gBAAgB;AAEjD,SAASC,QAAQ,QAAQ,cAAc;AAEvC,MAAMC,cAAc,GAAGH,oBAAoB,EAAE;AAE7C,MAAMI,cAAc,GAAG;EACrBC,yBAAyB,EAAEA,CAAA,KAAMJ,oBAAoB,CAACK,WAAW;EACjEC,yBAAyB,EAAGD,WAAmB,IAAML,oBAAoB,CAACK,WAAW,GAAGA,WAAY;EACpGE,2BAA2B,EAAGC,MAAe,IAAMR,oBAAoB,CAACS,wBAAwB,GAAGD,MAAO;EAC1G;EACAE,4BAA4B,EAC1BT,QAAQ,CAACU,EAAE,KAAK,KAAK;EACjB;EACCC,UAA4E,KAAM;IAAEC,MAAM,EAAEA,CAAA,KAAM,CAAC;EAAE,CAAC,CAAC,GACvGX,cAAc,CAA0BQ,4BAA4B,CAACI,IAAI,CAACZ,cAAc,CAAC;EAChG;;EAEA;AACF;AACA;AACA;AACA;EACEa,gBAAgB,EAAE,MAAAA,CAAA,KAA8B;IAC9C,OAAOb,cAAc,CAACa,gBAAgB,EAAE;EAC1C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEC,MAAM,EAAEA,CAACC,IAAY,EAAEC,KAAwB,KAAuB;IACpE,OAAOhB,cAAc,CAACiB,UAAU,CAACF,IAAI,EAAEC,KAAK,CAAC;EAC/C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEE,SAAS,EAAEA,CAACH,IAAY,EAAEI,IAAY,EAAEH,KAAwB,KAAoB;IAClF,OAAOhB,cAAc,CAACoB,UAAU,CAACL,IAAI,EAAEI,IAAI,EAAEH,KAAK,EAAE,IAAI,CAAC;EAC3D,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEK,KAAK,EAAEA,CAACN,IAAY,EAAEC,KAAwB,KAAoB;IAChE,OAAOhB,cAAc,CAACsB,eAAe,CAACP,IAAI,EAAEC,KAAK,CAAC;EACpD,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEO,OAAO,EAAEA,CAACR,IAAY,EAAEC,KAAwB,KAAwB;IACtE,OAAOhB,cAAc,CAACwB,SAAS,CAACT,IAAI,EAAEC,KAAK,CAAC;EAC9C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACES,QAAQ,EAAEA,CAACV,IAAY,EAAEC,KAAwB,KAAsB;IACrE,OAAOhB,cAAc,CAACyB,QAAQ,CAACV,IAAI,EAAEC,KAAK,CAAC;EAC7C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEU,MAAM,EAAEA,CAACX,IAAY,EAAEC,KAAwB,KAAoB;IACjE,OAAOhB,cAAc,CAAC2B,UAAU,CAACZ,IAAI,EAAEC,KAAK,CAAC;EAC/C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEY,IAAI,EAAE,MAAAA,CAAOb,IAAY,EAAEC,KAAwB,KAAoC;IACrF,MAAMa,MAAM,GAAG,MAAM7B,cAAc,CAAC8B,QAAQ,CAACf,IAAI,EAAEC,KAAK,CAAC;IAEzD,OAAO;MACL,GAAGa,MAAM;MACTE,SAAS,EAAE,IAAIC,IAAI,CAACH,MAAM,CAACI,WAAW,CAAC;MACvCC,KAAK,EAAE,IAAIF,IAAI,CAACH,MAAM,CAACM,OAAO,CAAC;MAC/BC,WAAW,EAAEA,CAAA,KAAMP,MAAM,CAACO,WAAW;MACrCC,MAAM,EAAEA,CAAA,KAAMR,MAAM,CAACQ;IACvB,CAAC;EACH;AACF,CAAC;AAED,eAAepC,cAAc"}
@@ -89,7 +89,20 @@ export default class GoogleDriveApiClient {
89
89
  }
90
90
  return currentDirectoryId;
91
91
  }
92
- async listFiles(scope) {
92
+
93
+ /**
94
+ * Gets the Google Drive ID of the root directory for the given scope.
95
+ * @param scope The scope to get the root directory for.
96
+ * @returns A promise that resolves to the ID of the root directory or null if it could not be found.
97
+ */
98
+ async getRootDirectoryId(scope) {
99
+ const files = await this.listInternalFiles(scope);
100
+ for (const file of files) {
101
+ if (!files.find(f => f.id === file.parents[0])) return file.parents[0] ?? null;
102
+ }
103
+ return null;
104
+ }
105
+ async listInternalFiles(scope) {
93
106
  const files = await GoogleDriveApiClient.drive.files.list({
94
107
  spaces: [this.getRootDirectory(scope)],
95
108
  fields: 'files(id,kind,mimeType,name,parents,spaces)'
@@ -114,8 +127,9 @@ export default class GoogleDriveApiClient {
114
127
  }
115
128
  }
116
129
  async getFileId(path, scope) {
130
+ let throwIfDirectory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
117
131
  try {
118
- const files = await this.listFiles(scope);
132
+ const files = await this.listInternalFiles(scope);
119
133
  const {
120
134
  directories,
121
135
  filename
@@ -132,8 +146,8 @@ export default class GoogleDriveApiClient {
132
146
  file = files.find(f => f.name === filename && f.parents[0] === parentDirectoryId);
133
147
  }
134
148
  if (!file) throw new CloudStorageError(`File not found`, CloudStorageErrorCode.FILE_NOT_FOUND);
135
- if (file.mimeType === MimeTypes.FOLDER) {
136
- throw new CloudStorageError(`Path ${path} is a directory`, CloudStorageErrorCode.FILE_NOT_FOUND);
149
+ if (file.mimeType === MimeTypes.FOLDER && throwIfDirectory) {
150
+ throw new CloudStorageError(`Path ${path} is a directory`, CloudStorageErrorCode.PATH_IS_DIRECTORY);
137
151
  }
138
152
  return file.id;
139
153
  } catch (e) {
@@ -148,7 +162,7 @@ export default class GoogleDriveApiClient {
148
162
  }
149
163
  async fileExists(path, scope) {
150
164
  try {
151
- await this.getFileId(path, scope);
165
+ await this.getFileId(path, scope, false);
152
166
  return true;
153
167
  } catch (e) {
154
168
  if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) return false;else throw e;
@@ -180,7 +194,7 @@ export default class GoogleDriveApiClient {
180
194
  }
181
195
  const uploader = GoogleDriveApiClient.drive.files.newMultipartUploader().setData(data, MimeTypes.TEXT);
182
196
  if (fileId) uploader.setIdOfFileToUpdate(fileId);else {
183
- const files = await this.listFiles(scope);
197
+ const files = await this.listInternalFiles(scope);
184
198
  const {
185
199
  directories,
186
200
  filename
@@ -193,6 +207,44 @@ export default class GoogleDriveApiClient {
193
207
  }
194
208
  await uploader.execute();
195
209
  }
210
+ async listFiles(path, scope) {
211
+ const allFiles = await this.listInternalFiles(scope);
212
+ if (path !== '') {
213
+ const fileId = await this.getFileId(path, scope, false);
214
+ const files = allFiles.filter(f => (f.parents ?? [])[0] === fileId);
215
+ return Array.from(new Set(files.map(f => f.name)));
216
+ } else {
217
+ const rootDirectoryId = await this.getRootDirectoryId(scope);
218
+ return Array.from(new Set(allFiles.filter(f => (f.parents ?? [])[0] === rootDirectoryId).map(f => f.name)));
219
+ }
220
+ }
221
+ async createDirectory(path, scope) {
222
+ try {
223
+ await this.getFileId(path, scope);
224
+ throw new CloudStorageError(`File ${path} already exists`, CloudStorageErrorCode.FILE_ALREADY_EXISTS);
225
+ } catch (e) {
226
+ if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) {
227
+ /* do nothing, simply create the file */
228
+ } else if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.PATH_IS_DIRECTORY) {
229
+ throw new CloudStorageError(`Directory ${path} already exists`, CloudStorageErrorCode.FILE_ALREADY_EXISTS);
230
+ } else {
231
+ throw e;
232
+ }
233
+ }
234
+ const uploader = GoogleDriveApiClient.drive.files.newMetadataOnlyUploader();
235
+ const files = await this.listInternalFiles(scope);
236
+ const {
237
+ directories,
238
+ filename
239
+ } = this.resolvePathToDirectories(path);
240
+ const parentDirectoryId = this.findParentDirectoryId(files, directories);
241
+ uploader.setRequestBody({
242
+ name: filename,
243
+ mimeType: MimeTypes.FOLDER,
244
+ parents: parentDirectoryId ? [parentDirectoryId] : scope === 'app_data' ? [this.getRootDirectory(scope)] : undefined
245
+ });
246
+ await uploader.execute();
247
+ }
196
248
  async readFile(path, scope) {
197
249
  const fileId = await this.getFileId(path, scope);
198
250
  const content = await GoogleDriveApiClient.drive.files.getText(fileId);
@@ -203,10 +255,10 @@ export default class GoogleDriveApiClient {
203
255
  await GoogleDriveApiClient.drive.files.delete(fileId);
204
256
  }
205
257
  async statFile(path, scope) {
206
- const fileId = await this.getFileId(path, scope);
207
- const file = await GoogleDriveApiClient.drive.files.get(fileId, {
258
+ const fileId = await this.getFileId(path, scope, false);
259
+ const file = await (await GoogleDriveApiClient.drive.files.get(fileId, {
208
260
  fields: 'id,kind,mimeType,name,parents,spaces,size,createdTime,modifiedTime'
209
- });
261
+ })).json();
210
262
  return {
211
263
  size: file.size ?? 0,
212
264
  birthtimeMs: new Date(file.createdTime).getTime(),
@@ -1 +1 @@
1
- {"version":3,"names":["GDrive","HttpError","MimeTypes","CloudStorageErrorCode","CloudStorageError","GoogleDriveApiClient","drive","throwOnFilesWithSameName","constructor","filesWithSameNameSubscribers","fetchTimeout","Proxy","get","target","prop","allowedFunctions","includes","toString","accessToken","GOOGLE_DRIVE_ACCESS_TOKEN_MISSING","subscribeToFilesWithSameName","subscriber","push","remove","filter","s","isCloudAvailable","_GoogleDriveApiClient","length","getRootDirectory","scope","resolvePathToDirectories","path","startsWith","slice","endsWith","directories","split","actualFilename","pop","filename","findParentDirectoryId","files","directoryTree","possibleTopDirectories","f","mimeType","FOLDER","name","topDirectoryId","id","possibleTopDirectory","find","parents","DIRECTORY_NOT_FOUND","currentDirectoryId","i","currentDirectory","nextDirectory","listFiles","list","spaces","fields","checkIfMultipleFilesWithSameName","parentDirectoryId","possibleFiles","f2","map","join","MULTIPLE_FILES_SAME_NAME","forEach","fileIds","getFileId","file","FILE_NOT_FOUND","e","_e$json","_e$json$error","json","error","status","AUTHENTICATION_FAILED","UNKNOWN","fileExists","code","createFile","data","overwrite","fileId","FILE_ALREADY_EXISTS","uploader","newMultipartUploader","setData","TEXT","setIdOfFileToUpdate","setRequestBody","undefined","execute","readFile","content","getText","deleteFile","delete","statFile","size","birthtimeMs","Date","createdTime","getTime","mtimeMs","modifiedTime","isDirectory","isFile"],"sourceRoot":"../../../src","sources":["google-drive/index.ts"],"mappings":"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"}
1
+ {"version":3,"names":["GDrive","HttpError","MimeTypes","CloudStorageErrorCode","CloudStorageError","GoogleDriveApiClient","drive","throwOnFilesWithSameName","constructor","filesWithSameNameSubscribers","fetchTimeout","Proxy","get","target","prop","allowedFunctions","includes","toString","accessToken","GOOGLE_DRIVE_ACCESS_TOKEN_MISSING","subscribeToFilesWithSameName","subscriber","push","remove","filter","s","isCloudAvailable","_GoogleDriveApiClient","length","getRootDirectory","scope","resolvePathToDirectories","path","startsWith","slice","endsWith","directories","split","actualFilename","pop","filename","findParentDirectoryId","files","directoryTree","possibleTopDirectories","f","mimeType","FOLDER","name","topDirectoryId","id","possibleTopDirectory","find","parents","DIRECTORY_NOT_FOUND","currentDirectoryId","i","currentDirectory","nextDirectory","getRootDirectoryId","listInternalFiles","file","list","spaces","fields","checkIfMultipleFilesWithSameName","parentDirectoryId","possibleFiles","f2","map","join","MULTIPLE_FILES_SAME_NAME","forEach","fileIds","getFileId","throwIfDirectory","arguments","undefined","FILE_NOT_FOUND","PATH_IS_DIRECTORY","e","_e$json","_e$json$error","json","error","status","AUTHENTICATION_FAILED","UNKNOWN","fileExists","code","createFile","data","overwrite","fileId","FILE_ALREADY_EXISTS","uploader","newMultipartUploader","setData","TEXT","setIdOfFileToUpdate","setRequestBody","execute","listFiles","allFiles","Array","from","Set","rootDirectoryId","createDirectory","newMetadataOnlyUploader","readFile","content","getText","deleteFile","delete","statFile","size","birthtimeMs","Date","createdTime","getTime","mtimeMs","modifiedTime","isDirectory","isFile"],"sourceRoot":"../../../src","sources":["google-drive/index.ts"],"mappings":"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"}
@@ -11,13 +11,11 @@ export const useIsCloudAvailable = function () {
11
11
  const newIsAvailable = await RNCloudStorage.isCloudAvailable();
12
12
  setIsAvailable(newIsAvailable);
13
13
  if (Platform.OS === 'ios' && newIsAvailable) {
14
- console.log('Stopped because iCloud became available');
15
14
  clearInterval(interval);
16
15
  }
17
16
  }, 500);
18
17
  if (Platform.OS === 'ios') {
19
18
  setTimeout(() => {
20
- console.log('Stopped because of timeout');
21
19
  clearInterval(interval);
22
20
  }, iCloudTimeout * 1000);
23
21
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","Platform","RNCloudStorage","useIsCloudAvailable","iCloudTimeout","arguments","length","undefined","isAvailable","setIsAvailable","interval","setInterval","newIsAvailable","isCloudAvailable","OS","console","log","clearInterval","setTimeout"],"sourceRoot":"../../../src","sources":["hooks/useIsCloudAvailable.ts"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,QAAQ,QAAQ,cAAc;AACvC,OAAOC,cAAc,MAAM,mBAAmB;;AAE9C;AACA,OAAO,MAAMC,mBAAmB,GAAG,SAAAA,CAAA,EAAwB;EAAA,IAAvBC,aAAa,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACpD,MAAM,CAACG,WAAW,EAAEC,cAAc,CAAC,GAAGT,QAAQ,CAAC,KAAK,CAAC;EAErDD,SAAS,CAAC,MAAM;IACd,MAAMW,QAAQ,GAAGC,WAAW,CAAC,YAAY;MACvC,MAAMC,cAAc,GAAG,MAAMV,cAAc,CAACW,gBAAgB,EAAE;MAC9DJ,cAAc,CAACG,cAAc,CAAC;MAC9B,IAAIX,QAAQ,CAACa,EAAE,KAAK,KAAK,IAAIF,cAAc,EAAE;QAC3CG,OAAO,CAACC,GAAG,CAAC,yCAAyC,CAAC;QACtDC,aAAa,CAACP,QAAQ,CAAC;MACzB;IACF,CAAC,EAAE,GAAG,CAAC;IAEP,IAAIT,QAAQ,CAACa,EAAE,KAAK,KAAK,EAAE;MACzBI,UAAU,CAAC,MAAM;QACfH,OAAO,CAACC,GAAG,CAAC,4BAA4B,CAAC;QACzCC,aAAa,CAACP,QAAQ,CAAC;MACzB,CAAC,EAAEN,aAAa,GAAG,IAAI,CAAC;IAC1B;IAEA,OAAO,MAAMa,aAAa,CAACP,QAAQ,CAAC;EACtC,CAAC,EAAE,CAACN,aAAa,CAAC,CAAC;EAEnB,OAAOI,WAAW;AACpB,CAAC"}
1
+ {"version":3,"names":["useEffect","useState","Platform","RNCloudStorage","useIsCloudAvailable","iCloudTimeout","arguments","length","undefined","isAvailable","setIsAvailable","interval","setInterval","newIsAvailable","isCloudAvailable","OS","clearInterval","setTimeout"],"sourceRoot":"../../../src","sources":["hooks/useIsCloudAvailable.ts"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,QAAQ,QAAQ,cAAc;AACvC,OAAOC,cAAc,MAAM,mBAAmB;;AAE9C;AACA,OAAO,MAAMC,mBAAmB,GAAG,SAAAA,CAAA,EAAwB;EAAA,IAAvBC,aAAa,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACpD,MAAM,CAACG,WAAW,EAAEC,cAAc,CAAC,GAAGT,QAAQ,CAAC,KAAK,CAAC;EAErDD,SAAS,CAAC,MAAM;IACd,MAAMW,QAAQ,GAAGC,WAAW,CAAC,YAAY;MACvC,MAAMC,cAAc,GAAG,MAAMV,cAAc,CAACW,gBAAgB,EAAE;MAC9DJ,cAAc,CAACG,cAAc,CAAC;MAC9B,IAAIX,QAAQ,CAACa,EAAE,KAAK,KAAK,IAAIF,cAAc,EAAE;QAC3CG,aAAa,CAACL,QAAQ,CAAC;MACzB;IACF,CAAC,EAAE,GAAG,CAAC;IAEP,IAAIT,QAAQ,CAACa,EAAE,KAAK,KAAK,EAAE;MACzBE,UAAU,CAAC,MAAM;QACfD,aAAa,CAACL,QAAQ,CAAC;MACzB,CAAC,EAAEN,aAAa,GAAG,IAAI,CAAC;IAC1B;IAEA,OAAO,MAAMW,aAAa,CAACL,QAAQ,CAAC;EACtC,CAAC,EAAE,CAACN,aAAa,CAAC,CAAC;EAEnB,OAAOI,WAAW;AACpB,CAAC"}
@@ -4,6 +4,10 @@ export * from './types/main';
4
4
  export * from './hooks/useCloudFile';
5
5
  export * from './hooks/useIsCloudAvailable';
6
6
  import CloudStorageError from './utils/CloudStorageError';
7
- export { CloudStorageError, CloudStorageErrorCode };
7
+ export { RNCloudStorage as CloudStorage, CloudStorageError, CloudStorageErrorCode };
8
+
9
+ /**
10
+ * @deprecated Use the named export `CloudStorage` instead.
11
+ */
8
12
  export default RNCloudStorage;
9
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RNCloudStorage","CloudStorageErrorCode","CloudStorageError"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,OAAOA,cAAc,MAAM,kBAAkB;AAC7C,SAASC,qBAAqB,QAAQ,gBAAgB;AACtD,cAAc,cAAc;AAC5B,cAAc,sBAAsB;AACpC,cAAc,6BAA6B;AAC3C,OAAOC,iBAAiB,MAAM,2BAA2B;AAEzD,SAASA,iBAAiB,EAAED,qBAAqB;AACjD,eAAeD,cAAc"}
1
+ {"version":3,"names":["RNCloudStorage","CloudStorageErrorCode","CloudStorageError","CloudStorage"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,OAAOA,cAAc,MAAM,kBAAkB;AAC7C,SAASC,qBAAqB,QAAQ,gBAAgB;AACtD,cAAc,cAAc;AAC5B,cAAc,sBAAsB;AACpC,cAAc,6BAA6B;AAC3C,OAAOC,iBAAiB,MAAM,2BAA2B;AAEzD,SAASF,cAAc,IAAIG,YAAY,EAAED,iBAAiB,EAAED,qBAAqB;;AAEjF;AACA;AACA;AACA,eAAeD,cAAc"}
@@ -1,5 +1,6 @@
1
1
  export let CloudStorageErrorCode = /*#__PURE__*/function (CloudStorageErrorCode) {
2
2
  CloudStorageErrorCode["FILE_NOT_FOUND"] = "ERR_FILE_NOT_FOUND";
3
+ CloudStorageErrorCode["PATH_IS_DIRECTORY"] = "ERR_PATH_IS_DIRECTORY";
3
4
  CloudStorageErrorCode["DIRECTORY_NOT_FOUND"] = "ERR_NO_DIRECTORY_FOUND";
4
5
  CloudStorageErrorCode["FILE_ALREADY_EXISTS"] = "ERR_FILE_EXISTS";
5
6
  CloudStorageErrorCode["MULTIPLE_FILES_SAME_NAME"] = "ERR_MULTIPLE_FILES_SAME_NAME";
@@ -1 +1 @@
1
- {"version":3,"names":["CloudStorageErrorCode"],"sourceRoot":"../../../src","sources":["types/native.ts"],"mappings":"AAUA,WAAYA,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA"}
1
+ {"version":3,"names":["CloudStorageErrorCode"],"sourceRoot":"../../../src","sources":["types/native.ts"],"mappings":"AAUA,WAAYA,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA"}
@@ -30,6 +30,20 @@ declare const RNCloudStorage: {
30
30
  * @returns A promise that resolves when the file has been written.
31
31
  */
32
32
  writeFile: (path: string, data: string, scope: CloudStorageScope) => Promise<void>;
33
+ /**
34
+ * Creates a new directory at the given path.
35
+ * @param path The directory to create.
36
+ * @param scope The directory scope the path is in.
37
+ * @returns A promise that resolves when the directory has been created.
38
+ */
39
+ mkdir: (path: string, scope: CloudStorageScope) => Promise<void>;
40
+ /**
41
+ * Lists the contents of the directory at the given path.
42
+ * @param path The directory to list.
43
+ * @param scope The directory scope the path is in.
44
+ * @returns A promise that resolves to an array of file names, excluding '.' and '..'.
45
+ */
46
+ readdir: (path: string, scope: CloudStorageScope) => Promise<string[]>;
33
47
  /**
34
48
  * Reads the contents of the file at the given path.
35
49
  * @param path The file to read.
@@ -1 +1 @@
1
- {"version":3,"file":"RNCloudStorage.d.ts","sourceRoot":"","sources":["../../src/RNCloudStorage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAK5E,QAAA,MAAM,cAAc;;6CAEuB,MAAM;0CACT,OAAO;;;;;;;IAS7C;;;;OAIG;4BACyB,QAAQ,OAAO,CAAC;IAI5C;;;;;OAKG;mBACY,MAAM,SAAS,iBAAiB,KAAG,QAAQ,OAAO,CAAC;IAIlE;;;;;;OAMG;sBACe,MAAM,QAAQ,MAAM,SAAS,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAIhF;;;;;OAKG;qBACc,MAAM,SAAS,iBAAiB,KAAG,QAAQ,MAAM,CAAC;IAInE;;;;;OAKG;mBACY,MAAM,SAAS,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAI/D;;;;;OAKG;iBACgB,MAAM,SAAS,iBAAiB,KAAG,QAAQ,oBAAoB,CAAC;CAWpF,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"RNCloudStorage.d.ts","sourceRoot":"","sources":["../../src/RNCloudStorage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAK5E,QAAA,MAAM,cAAc;;6CAEuB,MAAM;0CACT,OAAO;;;;;;;IAS7C;;;;OAIG;4BACyB,QAAQ,OAAO,CAAC;IAI5C;;;;;OAKG;mBACY,MAAM,SAAS,iBAAiB,KAAG,QAAQ,OAAO,CAAC;IAIlE;;;;;;OAMG;sBACe,MAAM,QAAQ,MAAM,SAAS,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAIhF;;;;;OAKG;kBACW,MAAM,SAAS,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAI9D;;;;;OAKG;oBACa,MAAM,SAAS,iBAAiB,KAAG,QAAQ,MAAM,EAAE,CAAC;IAIpE;;;;;OAKG;qBACc,MAAM,SAAS,iBAAiB,KAAG,QAAQ,MAAM,CAAC;IAInE;;;;;OAKG;mBACY,MAAM,SAAS,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAI/D;;;;;OAKG;iBACgB,MAAM,SAAS,iBAAiB,KAAG,QAAQ,oBAAoB,CAAC;CAWpF,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -20,11 +20,19 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
20
20
  private getRootDirectory;
21
21
  private resolvePathToDirectories;
22
22
  private findParentDirectoryId;
23
- private listFiles;
23
+ /**
24
+ * Gets the Google Drive ID of the root directory for the given scope.
25
+ * @param scope The scope to get the root directory for.
26
+ * @returns A promise that resolves to the ID of the root directory or null if it could not be found.
27
+ */
28
+ private getRootDirectoryId;
29
+ private listInternalFiles;
24
30
  private checkIfMultipleFilesWithSameName;
25
31
  private getFileId;
26
32
  fileExists(path: string, scope: NativeRNCloudCloudStorageScope): Promise<boolean>;
27
33
  createFile(path: string, data: string, scope: NativeRNCloudCloudStorageScope, overwrite: boolean): Promise<void>;
34
+ listFiles(path: string, scope: NativeRNCloudCloudStorageScope): Promise<string[]>;
35
+ createDirectory(path: string, scope: NativeRNCloudCloudStorageScope): Promise<void>;
28
36
  readFile(path: string, scope: NativeRNCloudCloudStorageScope): Promise<string>;
29
37
  deleteFile(path: string, scope: NativeRNCloudCloudStorageScope): Promise<void>;
30
38
  statFile(path: string, scope: NativeRNCloudCloudStorageScope): Promise<NativeRNCloudCloudStorageFileStat>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/google-drive/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,oBAAoB,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAEL,KAAK,iCAAiC,EACtC,KAAK,8BAA8B,EACpC,MAAM,iBAAiB,CAAC;AAIzB,MAAM,CAAC,OAAO,OAAO,oBAAqB,YAAW,oBAAoB;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAwB;IAC5C,OAAc,wBAAwB,UAAS;IACxC,4BAA4B,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC,EAAE,CAAC;;IAwB1G,WAAkB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAE5D;IAED,WAAkB,WAAW,IAAI,MAAM,GAAG,SAAS,CAElD;IAEM,4BAA4B,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,GAAG;QACjH,MAAM,EAAE,MAAM,IAAI,CAAC;KACpB;IAUM,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAA0D;IAEzG,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,qBAAqB;YAiDf,SAAS;IASvB,OAAO,CAAC,gCAAgC;YAyB1B,SAAS;IAkCjB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,OAAO,CAAC;IAUjF,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,8BAA8B,EACrC,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC;IA2CV,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,MAAM,CAAC;IAM9E,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9E,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,iCAAiC,CAAC;CAahH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/google-drive/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,oBAAoB,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAEL,KAAK,iCAAiC,EACtC,KAAK,8BAA8B,EACpC,MAAM,iBAAiB,CAAC;AAIzB,MAAM,CAAC,OAAO,OAAO,oBAAqB,YAAW,oBAAoB;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAwB;IAC5C,OAAc,wBAAwB,UAAS;IACxC,4BAA4B,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC,EAAE,CAAC;;IAwB1G,WAAkB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAE5D;IAED,WAAkB,WAAW,IAAI,MAAM,GAAG,SAAS,CAElD;IAEM,4BAA4B,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,GAAG;QACjH,MAAM,EAAE,MAAM,IAAI,CAAC;KACpB;IAUM,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAA0D;IAEzG,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,qBAAqB;IAiD7B;;;;OAIG;YACW,kBAAkB;YASlB,iBAAiB;IAS/B,OAAO,CAAC,gCAAgC;YAyB1B,SAAS;IAsCjB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,OAAO,CAAC;IAUjF,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,8BAA8B,EACrC,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC;IA2CV,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAajF,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BnF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,MAAM,CAAC;IAM9E,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9E,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,iCAAiC,CAAC;CAgBhH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useIsCloudAvailable.d.ts","sourceRoot":"","sources":["../../../src/hooks/useIsCloudAvailable.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB,qCAwB/B,CAAC"}
1
+ {"version":3,"file":"useIsCloudAvailable.d.ts","sourceRoot":"","sources":["../../../src/hooks/useIsCloudAvailable.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB,qCAsB/B,CAAC"}
@@ -4,6 +4,9 @@ export * from './types/main';
4
4
  export * from './hooks/useCloudFile';
5
5
  export * from './hooks/useIsCloudAvailable';
6
6
  import CloudStorageError from './utils/CloudStorageError';
7
- export { CloudStorageError, CloudStorageErrorCode };
7
+ export { RNCloudStorage as CloudStorage, CloudStorageError, CloudStorageErrorCode };
8
+ /**
9
+ * @deprecated Use the named export `CloudStorage` instead.
10
+ */
8
11
  export default RNCloudStorage;
9
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,OAAO,iBAAiB,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;AACpD,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,OAAO,iBAAiB,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,cAAc,IAAI,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;AAEpF;;GAEG;AACH,eAAe,cAAc,CAAC"}
@@ -8,6 +8,7 @@ export interface NativeRNCloudCloudStorageFileStat {
8
8
  }
9
9
  export declare enum CloudStorageErrorCode {
10
10
  FILE_NOT_FOUND = "ERR_FILE_NOT_FOUND",
11
+ PATH_IS_DIRECTORY = "ERR_PATH_IS_DIRECTORY",
11
12
  DIRECTORY_NOT_FOUND = "ERR_NO_DIRECTORY_FOUND",
12
13
  FILE_ALREADY_EXISTS = "ERR_FILE_EXISTS",
13
14
  MULTIPLE_FILES_SAME_NAME = "ERR_MULTIPLE_FILES_SAME_NAME",
@@ -22,6 +23,8 @@ export declare enum CloudStorageErrorCode {
22
23
  export default interface NativeRNCloudStorage {
23
24
  fileExists: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<boolean>;
24
25
  createFile: (path: string, data: string, scope: NativeRNCloudCloudStorageScope, overwrite: boolean) => Promise<void>;
26
+ createDirectory: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<void>;
27
+ listFiles: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<string[]>;
25
28
  readFile: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<string>;
26
29
  deleteFile: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<void>;
27
30
  statFile: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<NativeRNCloudCloudStorageFileStat>;
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/types/native.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,8BAA8B,GAAG,WAAW,GAAG,UAAU,CAAC;AAEtE,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,oBAAY,qBAAqB;IAC/B,cAAc,uBAAuB;IACrC,mBAAmB,2BAA2B;IAC9C,mBAAmB,oBAAoB;IACvC,wBAAwB,iCAAiC;IACzD,qBAAqB,8BAA8B;IACnD,WAAW,oBAAoB;IAC/B,UAAU,mBAAmB;IAC7B,YAAY,qBAAqB;IACjC,UAAU,mBAAmB;IAC7B,OAAO,gBAAgB;IACvB,iCAAiC,0CAA0C;CAC5E;AAED,MAAM,CAAC,OAAO,WAAW,oBAAoB;IAC3C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtF,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,EAAE,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrH,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnF,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,KAAK,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAC9G,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1C"}
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/types/native.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,8BAA8B,GAAG,WAAW,GAAG,UAAU,CAAC;AAEtE,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,oBAAY,qBAAqB;IAC/B,cAAc,uBAAuB;IACrC,iBAAiB,0BAA0B;IAC3C,mBAAmB,2BAA2B;IAC9C,mBAAmB,oBAAoB;IACvC,wBAAwB,iCAAiC;IACzD,qBAAqB,8BAA8B;IACnD,WAAW,oBAAoB;IAC/B,UAAU,mBAAmB;IAC7B,YAAY,qBAAqB;IACjC,UAAU,mBAAmB;IAC7B,OAAO,gBAAgB;IACvB,iCAAiC,0CAA0C;CAC5E;AAED,MAAM,CAAC,OAAO,WAAW,oBAAoB;IAC3C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtF,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,EAAE,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrH,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnF,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,KAAK,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAC9G,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-cloud-storage",
3
- "version": "0.5.0",
3
+ "version": "0.7.0",
4
4
  "description": "Save to & read from iCloud and Google Drive using React Native",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -47,6 +47,26 @@ const RNCloudStorage = {
47
47
  return nativeInstance.createFile(path, data, scope, true);
48
48
  },
49
49
 
50
+ /**
51
+ * Creates a new directory at the given path.
52
+ * @param path The directory to create.
53
+ * @param scope The directory scope the path is in.
54
+ * @returns A promise that resolves when the directory has been created.
55
+ */
56
+ mkdir: (path: string, scope: CloudStorageScope): Promise<void> => {
57
+ return nativeInstance.createDirectory(path, scope);
58
+ },
59
+
60
+ /**
61
+ * Lists the contents of the directory at the given path.
62
+ * @param path The directory to list.
63
+ * @param scope The directory scope the path is in.
64
+ * @returns A promise that resolves to an array of file names, excluding '.' and '..'.
65
+ */
66
+ readdir: (path: string, scope: CloudStorageScope): Promise<string[]> => {
67
+ return nativeInstance.listFiles(path, scope);
68
+ },
69
+
50
70
  /**
51
71
  * Reads the contents of the file at the given path.
52
72
  * @param path The file to read.
@@ -123,7 +123,21 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
123
123
  return currentDirectoryId;
124
124
  }
125
125
 
126
- private async listFiles(scope: NativeRNCloudCloudStorageScope): Promise<GoogleDriveFile[]> {
126
+ /**
127
+ * Gets the Google Drive ID of the root directory for the given scope.
128
+ * @param scope The scope to get the root directory for.
129
+ * @returns A promise that resolves to the ID of the root directory or null if it could not be found.
130
+ */
131
+ private async getRootDirectoryId(scope: NativeRNCloudCloudStorageScope): Promise<string | null> {
132
+ const files = await this.listInternalFiles(scope);
133
+ for (const file of files) {
134
+ if (!files.find((f) => f.id === file.parents![0])) return file.parents![0] ?? null;
135
+ }
136
+
137
+ return null;
138
+ }
139
+
140
+ private async listInternalFiles(scope: NativeRNCloudCloudStorageScope): Promise<GoogleDriveFile[]> {
127
141
  const files: GoogleDriveListOperationResponse = await GoogleDriveApiClient.drive.files.list({
128
142
  spaces: [this.getRootDirectory(scope)],
129
143
  fields: 'files(id,kind,mimeType,name,parents,spaces)',
@@ -157,9 +171,13 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
157
171
  }
158
172
  }
159
173
 
160
- private async getFileId(path: string, scope: NativeRNCloudCloudStorageScope): Promise<string> {
174
+ private async getFileId(
175
+ path: string,
176
+ scope: NativeRNCloudCloudStorageScope,
177
+ throwIfDirectory = true
178
+ ): Promise<string> {
161
179
  try {
162
- const files = await this.listFiles(scope);
180
+ const files = await this.listInternalFiles(scope);
163
181
  const { directories, filename } = this.resolvePathToDirectories(path);
164
182
  const parentDirectoryId = this.findParentDirectoryId(files, directories);
165
183
  let file: GoogleDriveFile | undefined;
@@ -173,8 +191,8 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
173
191
  file = files.find((f) => f.name === filename && f.parents![0] === parentDirectoryId);
174
192
  }
175
193
  if (!file) throw new CloudStorageError(`File not found`, CloudStorageErrorCode.FILE_NOT_FOUND);
176
- if (file.mimeType === MimeTypes.FOLDER) {
177
- throw new CloudStorageError(`Path ${path} is a directory`, CloudStorageErrorCode.FILE_NOT_FOUND);
194
+ if (file.mimeType === MimeTypes.FOLDER && throwIfDirectory) {
195
+ throw new CloudStorageError(`Path ${path} is a directory`, CloudStorageErrorCode.PATH_IS_DIRECTORY);
178
196
  }
179
197
  return file.id;
180
198
  } catch (e: unknown) {
@@ -193,7 +211,7 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
193
211
 
194
212
  async fileExists(path: string, scope: NativeRNCloudCloudStorageScope): Promise<boolean> {
195
213
  try {
196
- await this.getFileId(path, scope);
214
+ await this.getFileId(path, scope, false);
197
215
  return true;
198
216
  } catch (e: any) {
199
217
  if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) return false;
@@ -234,7 +252,7 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
234
252
  const uploader = GoogleDriveApiClient.drive.files.newMultipartUploader().setData(data, MimeTypes.TEXT);
235
253
  if (fileId) uploader.setIdOfFileToUpdate(fileId);
236
254
  else {
237
- const files = await this.listFiles(scope);
255
+ const files = await this.listInternalFiles(scope);
238
256
  const { directories, filename } = this.resolvePathToDirectories(path);
239
257
  const parentDirectoryId = this.findParentDirectoryId(files, directories);
240
258
  uploader.setRequestBody({
@@ -249,6 +267,49 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
249
267
  await uploader.execute();
250
268
  }
251
269
 
270
+ async listFiles(path: string, scope: NativeRNCloudCloudStorageScope): Promise<string[]> {
271
+ const allFiles = await this.listInternalFiles(scope);
272
+ if (path !== '') {
273
+ const fileId = await this.getFileId(path, scope, false);
274
+ const files = allFiles.filter((f) => (f.parents ?? [])[0] === fileId);
275
+
276
+ return Array.from(new Set(files.map((f) => f.name)));
277
+ } else {
278
+ const rootDirectoryId = await this.getRootDirectoryId(scope);
279
+ return Array.from(new Set(allFiles.filter((f) => (f.parents ?? [])[0] === rootDirectoryId).map((f) => f.name)));
280
+ }
281
+ }
282
+
283
+ async createDirectory(path: string, scope: NativeRNCloudCloudStorageScope): Promise<void> {
284
+ try {
285
+ await this.getFileId(path, scope);
286
+ throw new CloudStorageError(`File ${path} already exists`, CloudStorageErrorCode.FILE_ALREADY_EXISTS);
287
+ } catch (e: any) {
288
+ if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) {
289
+ /* do nothing, simply create the file */
290
+ } else if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.PATH_IS_DIRECTORY) {
291
+ throw new CloudStorageError(`Directory ${path} already exists`, CloudStorageErrorCode.FILE_ALREADY_EXISTS);
292
+ } else {
293
+ throw e;
294
+ }
295
+ }
296
+
297
+ const uploader = GoogleDriveApiClient.drive.files.newMetadataOnlyUploader();
298
+ const files = await this.listInternalFiles(scope);
299
+ const { directories, filename } = this.resolvePathToDirectories(path);
300
+ const parentDirectoryId = this.findParentDirectoryId(files, directories);
301
+ uploader.setRequestBody({
302
+ name: filename,
303
+ mimeType: MimeTypes.FOLDER,
304
+ parents: parentDirectoryId
305
+ ? [parentDirectoryId]
306
+ : scope === 'app_data'
307
+ ? [this.getRootDirectory(scope)]
308
+ : undefined,
309
+ });
310
+ await uploader.execute();
311
+ }
312
+
252
313
  async readFile(path: string, scope: NativeRNCloudCloudStorageScope): Promise<string> {
253
314
  const fileId = await this.getFileId(path, scope);
254
315
  const content = await GoogleDriveApiClient.drive.files.getText(fileId);
@@ -261,10 +322,13 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
261
322
  }
262
323
 
263
324
  async statFile(path: string, scope: NativeRNCloudCloudStorageScope): Promise<NativeRNCloudCloudStorageFileStat> {
264
- const fileId = await this.getFileId(path, scope);
265
- const file: GoogleDriveDetailedFile = await GoogleDriveApiClient.drive.files.get(fileId, {
266
- fields: 'id,kind,mimeType,name,parents,spaces,size,createdTime,modifiedTime',
267
- });
325
+ const fileId = await this.getFileId(path, scope, false);
326
+ const file: GoogleDriveDetailedFile = await (
327
+ await GoogleDriveApiClient.drive.files.get(fileId!, {
328
+ fields: 'id,kind,mimeType,name,parents,spaces,size,createdTime,modifiedTime',
329
+ })
330
+ ).json();
331
+
268
332
  return {
269
333
  size: file.size ?? 0,
270
334
  birthtimeMs: new Date(file.createdTime!).getTime(),
@@ -11,14 +11,12 @@ export const useIsCloudAvailable = (iCloudTimeout = 10) => {
11
11
  const newIsAvailable = await RNCloudStorage.isCloudAvailable();
12
12
  setIsAvailable(newIsAvailable);
13
13
  if (Platform.OS === 'ios' && newIsAvailable) {
14
- console.log('Stopped because iCloud became available');
15
14
  clearInterval(interval);
16
15
  }
17
16
  }, 500);
18
17
 
19
18
  if (Platform.OS === 'ios') {
20
19
  setTimeout(() => {
21
- console.log('Stopped because of timeout');
22
20
  clearInterval(interval);
23
21
  }, iCloudTimeout * 1000);
24
22
  }
package/src/index.ts CHANGED
@@ -5,5 +5,9 @@ export * from './hooks/useCloudFile';
5
5
  export * from './hooks/useIsCloudAvailable';
6
6
  import CloudStorageError from './utils/CloudStorageError';
7
7
 
8
- export { CloudStorageError, CloudStorageErrorCode };
8
+ export { RNCloudStorage as CloudStorage, CloudStorageError, CloudStorageErrorCode };
9
+
10
+ /**
11
+ * @deprecated Use the named export `CloudStorage` instead.
12
+ */
9
13
  export default RNCloudStorage;
@@ -10,6 +10,7 @@ export interface NativeRNCloudCloudStorageFileStat {
10
10
 
11
11
  export enum CloudStorageErrorCode {
12
12
  FILE_NOT_FOUND = 'ERR_FILE_NOT_FOUND',
13
+ PATH_IS_DIRECTORY = 'ERR_PATH_IS_DIRECTORY',
13
14
  DIRECTORY_NOT_FOUND = 'ERR_NO_DIRECTORY_FOUND',
14
15
  FILE_ALREADY_EXISTS = 'ERR_FILE_EXISTS',
15
16
  MULTIPLE_FILES_SAME_NAME = 'ERR_MULTIPLE_FILES_SAME_NAME',
@@ -25,6 +26,8 @@ export enum CloudStorageErrorCode {
25
26
  export default interface NativeRNCloudStorage {
26
27
  fileExists: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<boolean>;
27
28
  createFile: (path: string, data: string, scope: NativeRNCloudCloudStorageScope, overwrite: boolean) => Promise<void>;
29
+ createDirectory: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<void>;
30
+ listFiles: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<string[]>;
28
31
  readFile: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<string>;
29
32
  deleteFile: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<void>;
30
33
  statFile: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<NativeRNCloudCloudStorageFileStat>;