react-native-cloud-storage 0.5.0 → 0.6.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.
@@ -4,6 +4,7 @@
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)
7
8
  RCT_EXTERN_METHOD(readFile:(NSString *)path withScope:(NSString *)scope withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
8
9
  RCT_EXTERN_METHOD(deleteFile:(NSString *)path withScope:(NSString *)scope withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
9
10
  RCT_EXTERN_METHOD(statFile:(NSString *)path withScope:(NSString *)scope withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject)
@@ -37,6 +37,28 @@ 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
+
40
62
  @objc(readFile:withScope:withResolver:withRejecter:)
41
63
  func readFile(path: String, scope: String, resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void {
42
64
  let fileManager = FileManager.default
@@ -48,6 +48,15 @@ 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
+ },
51
60
  /**
52
61
  * Reads the contents of the file at the given path.
53
62
  * @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","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,KAAK,EAAEA,CAACN,IAAY,EAAEC,KAAwB,KAAoB;IAChE,OAAOnB,cAAc,CAACyB,eAAe,CAACP,IAAI,EAAEC,KAAK,CAAC;EACpD,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEO,QAAQ,EAAEA,CAACR,IAAY,EAAEC,KAAwB,KAAsB;IACrE,OAAOnB,cAAc,CAAC0B,QAAQ,CAACR,IAAI,EAAEC,KAAK,CAAC;EAC7C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEQ,MAAM,EAAEA,CAACT,IAAY,EAAEC,KAAwB,KAAoB;IACjE,OAAOnB,cAAc,CAAC4B,UAAU,CAACV,IAAI,EAAEC,KAAK,CAAC;EAC/C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEU,IAAI,EAAE,MAAAA,CAAOX,IAAY,EAAEC,KAAwB,KAAoC;IACrF,MAAMW,MAAM,GAAG,MAAM9B,cAAc,CAAC+B,QAAQ,CAACb,IAAI,EAAEC,KAAK,CAAC;IAEzD,OAAO;MACL,GAAGW,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,GAEarC,cAAc;AAAAsC,OAAA,CAAAzC,OAAA,GAAAwC,QAAA"}
@@ -121,6 +121,7 @@ class GoogleDriveApiClient {
121
121
  }
122
122
  }
123
123
  async getFileId(path, scope) {
124
+ let throwIfDirectory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
124
125
  try {
125
126
  const files = await this.listFiles(scope);
126
127
  const {
@@ -139,8 +140,8 @@ class GoogleDriveApiClient {
139
140
  file = files.find(f => f.name === filename && f.parents[0] === parentDirectoryId);
140
141
  }
141
142
  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);
143
+ if (file.mimeType === _reactNativeGoogleDriveApiWrapperJs.MimeTypes.FOLDER && throwIfDirectory) {
144
+ throw new _CloudStorageError.default(`Path ${path} is a directory`, _native.CloudStorageErrorCode.PATH_IS_DIRECTORY);
144
145
  }
145
146
  return file.id;
146
147
  } catch (e) {
@@ -155,7 +156,7 @@ class GoogleDriveApiClient {
155
156
  }
156
157
  async fileExists(path, scope) {
157
158
  try {
158
- await this.getFileId(path, scope);
159
+ await this.getFileId(path, scope, false);
159
160
  return true;
160
161
  } catch (e) {
161
162
  if (e instanceof _CloudStorageError.default && e.code === _native.CloudStorageErrorCode.FILE_NOT_FOUND) return false;else throw e;
@@ -200,6 +201,33 @@ class GoogleDriveApiClient {
200
201
  }
201
202
  await uploader.execute();
202
203
  }
204
+ async createDirectory(path, scope) {
205
+ try {
206
+ await this.getFileId(path, scope);
207
+ throw new _CloudStorageError.default(`File ${path} already exists`, _native.CloudStorageErrorCode.FILE_ALREADY_EXISTS);
208
+ } catch (e) {
209
+ if (e instanceof _CloudStorageError.default && e.code === _native.CloudStorageErrorCode.FILE_NOT_FOUND) {
210
+ /* do nothing, simply create the file */
211
+ } else if (e instanceof _CloudStorageError.default && e.code === _native.CloudStorageErrorCode.PATH_IS_DIRECTORY) {
212
+ throw new _CloudStorageError.default(`Directory ${path} already exists`, _native.CloudStorageErrorCode.FILE_ALREADY_EXISTS);
213
+ } else {
214
+ throw e;
215
+ }
216
+ }
217
+ const uploader = GoogleDriveApiClient.drive.files.newMetadataOnlyUploader();
218
+ const files = await this.listFiles(scope);
219
+ const {
220
+ directories,
221
+ filename
222
+ } = this.resolvePathToDirectories(path);
223
+ const parentDirectoryId = this.findParentDirectoryId(files, directories);
224
+ uploader.setRequestBody({
225
+ name: filename,
226
+ mimeType: _reactNativeGoogleDriveApiWrapperJs.MimeTypes.FOLDER,
227
+ parents: parentDirectoryId ? [parentDirectoryId] : scope === 'app_data' ? [this.getRootDirectory(scope)] : undefined
228
+ });
229
+ await uploader.execute();
230
+ }
203
231
  async readFile(path, scope) {
204
232
  const fileId = await this.getFileId(path, scope);
205
233
  const content = await GoogleDriveApiClient.drive.files.getText(fileId);
@@ -210,10 +238,10 @@ class GoogleDriveApiClient {
210
238
  await GoogleDriveApiClient.drive.files.delete(fileId);
211
239
  }
212
240
  async statFile(path, scope) {
213
- const fileId = await this.getFileId(path, scope);
214
- const file = await GoogleDriveApiClient.drive.files.get(fileId, {
241
+ const fileId = await this.getFileId(path, scope, false);
242
+ const file = await (await GoogleDriveApiClient.drive.files.get(fileId, {
215
243
  fields: 'id,kind,mimeType,name,parents,spaces,size,createdTime,modifiedTime'
216
- });
244
+ })).json();
217
245
  return {
218
246
  size: file.size ?? 0,
219
247
  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","listFiles","list","spaces","fields","checkIfMultipleFilesWithSameName","parentDirectoryId","possibleFiles","f2","map","join","MULTIPLE_FILES_SAME_NAME","forEach","fileIds","getFileId","throwIfDirectory","arguments","undefined","file","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","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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"}
@@ -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,15 @@ 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
+ },
44
53
  /**
45
54
  * Reads the contents of the file at the given path.
46
55
  * @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","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,QAAQ,EAAEA,CAACR,IAAY,EAAEC,KAAwB,KAAsB;IACrE,OAAOhB,cAAc,CAACuB,QAAQ,CAACR,IAAI,EAAEC,KAAK,CAAC;EAC7C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEQ,MAAM,EAAEA,CAACT,IAAY,EAAEC,KAAwB,KAAoB;IACjE,OAAOhB,cAAc,CAACyB,UAAU,CAACV,IAAI,EAAEC,KAAK,CAAC;EAC/C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEU,IAAI,EAAE,MAAAA,CAAOX,IAAY,EAAEC,KAAwB,KAAoC;IACrF,MAAMW,MAAM,GAAG,MAAM3B,cAAc,CAAC4B,QAAQ,CAACb,IAAI,EAAEC,KAAK,CAAC;IAEzD,OAAO;MACL,GAAGW,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,eAAelC,cAAc"}
@@ -114,6 +114,7 @@ export default class GoogleDriveApiClient {
114
114
  }
115
115
  }
116
116
  async getFileId(path, scope) {
117
+ let throwIfDirectory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
117
118
  try {
118
119
  const files = await this.listFiles(scope);
119
120
  const {
@@ -132,8 +133,8 @@ export default class GoogleDriveApiClient {
132
133
  file = files.find(f => f.name === filename && f.parents[0] === parentDirectoryId);
133
134
  }
134
135
  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);
136
+ if (file.mimeType === MimeTypes.FOLDER && throwIfDirectory) {
137
+ throw new CloudStorageError(`Path ${path} is a directory`, CloudStorageErrorCode.PATH_IS_DIRECTORY);
137
138
  }
138
139
  return file.id;
139
140
  } catch (e) {
@@ -148,7 +149,7 @@ export default class GoogleDriveApiClient {
148
149
  }
149
150
  async fileExists(path, scope) {
150
151
  try {
151
- await this.getFileId(path, scope);
152
+ await this.getFileId(path, scope, false);
152
153
  return true;
153
154
  } catch (e) {
154
155
  if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) return false;else throw e;
@@ -193,6 +194,33 @@ export default class GoogleDriveApiClient {
193
194
  }
194
195
  await uploader.execute();
195
196
  }
197
+ async createDirectory(path, scope) {
198
+ try {
199
+ await this.getFileId(path, scope);
200
+ throw new CloudStorageError(`File ${path} already exists`, CloudStorageErrorCode.FILE_ALREADY_EXISTS);
201
+ } catch (e) {
202
+ if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) {
203
+ /* do nothing, simply create the file */
204
+ } else if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.PATH_IS_DIRECTORY) {
205
+ throw new CloudStorageError(`Directory ${path} already exists`, CloudStorageErrorCode.FILE_ALREADY_EXISTS);
206
+ } else {
207
+ throw e;
208
+ }
209
+ }
210
+ const uploader = GoogleDriveApiClient.drive.files.newMetadataOnlyUploader();
211
+ const files = await this.listFiles(scope);
212
+ const {
213
+ directories,
214
+ filename
215
+ } = this.resolvePathToDirectories(path);
216
+ const parentDirectoryId = this.findParentDirectoryId(files, directories);
217
+ uploader.setRequestBody({
218
+ name: filename,
219
+ mimeType: MimeTypes.FOLDER,
220
+ parents: parentDirectoryId ? [parentDirectoryId] : scope === 'app_data' ? [this.getRootDirectory(scope)] : undefined
221
+ });
222
+ await uploader.execute();
223
+ }
196
224
  async readFile(path, scope) {
197
225
  const fileId = await this.getFileId(path, scope);
198
226
  const content = await GoogleDriveApiClient.drive.files.getText(fileId);
@@ -203,10 +231,10 @@ export default class GoogleDriveApiClient {
203
231
  await GoogleDriveApiClient.drive.files.delete(fileId);
204
232
  }
205
233
  async statFile(path, scope) {
206
- const fileId = await this.getFileId(path, scope);
207
- const file = await GoogleDriveApiClient.drive.files.get(fileId, {
234
+ const fileId = await this.getFileId(path, scope, false);
235
+ const file = await (await GoogleDriveApiClient.drive.files.get(fileId, {
208
236
  fields: 'id,kind,mimeType,name,parents,spaces,size,createdTime,modifiedTime'
209
- });
237
+ })).json();
210
238
  return {
211
239
  size: file.size ?? 0,
212
240
  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","listFiles","list","spaces","fields","checkIfMultipleFilesWithSameName","parentDirectoryId","possibleFiles","f2","map","join","MULTIPLE_FILES_SAME_NAME","forEach","fileIds","getFileId","throwIfDirectory","arguments","undefined","file","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","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":"AAAA,SAASA,MAAM,EAAEC,SAAS,EAAEC,SAAS,QAAQ,0CAA0C;AAEvF,SACEC,qBAAqB,QAGhB,iBAAiB;AAExB,OAAOC,iBAAiB,MAAM,4BAA4B;AAE1D,eAAe,MAAMC,oBAAoB,CAAiC;EACxE,OAAeC,KAAK,GAAW,IAAIN,MAAM,EAAE;EAC3C,OAAcO,wBAAwB,GAAG,KAAK;EAG9CC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,4BAA4B,GAAG,EAAE;IACtCJ,oBAAoB,CAACC,KAAK,CAACI,YAAY,GAAG,IAAI;IAC9C,OAAO,IAAIC,KAAK,CAAC,IAAI,EAAE;MACrB;MACAC,GAAGA,CAACC,MAA4B,EAAEC,IAAgC,EAAE;QAClE,MAAMC,gBAAgB,GAAG,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;QAC7E,IAAI,OAAOF,MAAM,CAACC,IAAI,CAAC,KAAK,UAAU,IAAI,CAACC,gBAAgB,CAACC,QAAQ,CAACF,IAAI,CAACG,QAAQ,EAAE,CAAC,EAAE;UACrF,IAAI,CAACZ,oBAAoB,CAACC,KAAK,CAACY,WAAW,EAAE;YAC3C,MAAM,IAAId,iBAAiB,CACxB,8DAA6DU,IAAI,CAACG,QAAQ,EAAG,EAAC,EAC/Ed,qBAAqB,CAACgB,iCAAiC,CACxD;UACH;QACF;QAEA,OAAON,MAAM,CAACC,IAAI,CAAC;MACrB;IACF,CAAC,CAAC;EACJ;;EAEA;EACA,WAAkBI,WAAWA,CAACA,WAA+B,EAAE;IAC7Db,oBAAoB,CAACC,KAAK,CAACY,WAAW,GAAGA,WAAW;EACtD;EAEA,WAAkBA,WAAWA,CAAA,EAAuB;IAClD,OAAOb,oBAAoB,CAACC,KAAK,CAACY,WAAW;EAC/C;EAEOE,4BAA4BA,CAACC,UAA4E,EAE9G;IACA,IAAI,CAACZ,4BAA4B,CAACa,IAAI,CAACD,UAAU,CAAC;IAElD,OAAO;MACLE,MAAM,EAAEA,CAAA,KAAM;QACZ,IAAI,CAACd,4BAA4B,GAAG,IAAI,CAACA,4BAA4B,CAACe,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAKJ,UAAU,CAAC;MACvG;IACF,CAAC;EACH;EAEOK,gBAAgB,GAA2B,MAAAA,CAAA;IAAA,IAAAC,qBAAA;IAAA,OAAY,CAAC,GAAAA,qBAAA,GAACtB,oBAAoB,CAACa,WAAW,cAAAS,qBAAA,eAAhCA,qBAAA,CAAkCC,MAAM;EAAA;EAEhGC,gBAAgBA,CAACC,KAAqC,EAA6B;IACzF,QAAQA,KAAK;MACX,KAAK,WAAW;QACd,OAAO,OAAO;MAChB,KAAK,UAAU;QACb,OAAO,eAAe;IAAC;EAE7B;EAEQC,wBAAwBA,CAACC,IAAY,EAA+C;IAC1F,IAAIA,IAAI,CAACC,UAAU,CAAC,GAAG,CAAC,EAAED,IAAI,GAAGA,IAAI,CAACE,KAAK,CAAC,CAAC,CAAC;IAC9C,IAAIF,IAAI,CAACG,QAAQ,CAAC,GAAG,CAAC,EAAEH,IAAI,GAAGA,IAAI,CAACE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,MAAME,WAAW,GAAGJ,IAAI,CAACK,KAAK,CAAC,GAAG,CAAC;IACnC,MAAMC,cAAc,GAAGF,WAAW,CAACG,GAAG,EAAE,IAAI,EAAE;IAC9C,OAAO;MAAEH,WAAW;MAAEI,QAAQ,EAAEF;IAAe,CAAC;EAClD;EAEQG,qBAAqBA,CAACC,KAAwB,EAAEC,aAAuB,EAAiB;IAC9F,MAAMC,sBAAsB,GAAGF,KAAK,CACjClB,MAAM,CAAEqB,CAAC,IAAKA,CAAC,CAACC,QAAQ,KAAK5C,SAAS,CAAC6C,MAAM,CAAC,CAC9CvB,MAAM,CAAEqB,CAAC,IAAKA,CAAC,CAACG,IAAI,KAAKL,aAAa,CAAC,CAAC,CAAC,CAAC;IAE7C,IAAIM,cAAkC;IACtC,IAAIL,sBAAsB,CAAChB,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,KAChD,IAAIgB,sBAAsB,CAAChB,MAAM,KAAK,CAAC,EAAE;MAC5CqB,cAAc,GAAGL,sBAAsB,CAAC,CAAC,CAAC,CAAEM,EAAE;IAChD,CAAC,MAAM;MACL;AACN;AACA;MACM,KAAK,MAAMC,oBAAoB,IAAIP,sBAAsB,EAAE;QACzD,IAAI,CAACF,KAAK,CAACU,IAAI,CAAEP,CAAC,IAAKA,CAAC,CAACK,EAAE,KAAKC,oBAAoB,CAAEE,OAAO,CAAE,CAAC,CAAC,IAAIR,CAAC,CAACC,QAAQ,KAAK5C,SAAS,CAAC6C,MAAM,CAAC,EAAE;UACrGE,cAAc,GAAGE,oBAAoB,CAAED,EAAE;UACzC;QACF;MACF;IACF;IAEA,IAAI,CAACD,cAAc,EAAE;MACnB,MAAM,IAAI7C,iBAAiB,CACxB,0CAAyCuC,aAAa,CAAC,CAAC,CAAE,EAAC,EAC5DxC,qBAAqB,CAACmD,mBAAmB,CAC1C;IACH;;IAEA;IACA,IAAIC,kBAAkB,GAAGN,cAAc;IACvC,KAAK,IAAIO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGb,aAAa,CAACf,MAAM,EAAE4B,CAAC,EAAE,EAAE;MAC7C,MAAMC,gBAAgB,GAAGf,KAAK,CAACU,IAAI,CAAEP,CAAC,IAAKA,CAAC,CAACK,EAAE,KAAKK,kBAAkB,CAAC;MACvE,IAAI,CAACE,gBAAgB,EACnB,MAAM,IAAIrD,iBAAiB,CACxB,oCAAmCmD,kBAAmB,EAAC,EACxDpD,qBAAqB,CAACmD,mBAAmB,CAC1C;MACH,MAAMI,aAAa,GAAGhB,KAAK,CAACU,IAAI,CAAEP,CAAC,IAAKA,CAAC,CAACG,IAAI,KAAKL,aAAa,CAACa,CAAC,CAAC,IAAIX,CAAC,CAACQ,OAAO,CAAE,CAAC,CAAC,KAAKE,kBAAkB,CAAC;MAC5G,IAAI,CAACG,aAAa,EAChB,MAAM,IAAItD,iBAAiB,CACxB,sCAAqCuC,aAAa,CAACa,CAAC,CAAE,EAAC,EACxDrD,qBAAqB,CAACmD,mBAAmB,CAC1C;MACHC,kBAAkB,GAAGG,aAAa,CAACR,EAAE;IACvC;IAEA,OAAOK,kBAAkB;EAC3B;EAEA,MAAcI,SAASA,CAAC7B,KAAqC,EAA8B;IACzF,MAAMY,KAAuC,GAAG,MAAMrC,oBAAoB,CAACC,KAAK,CAACoC,KAAK,CAACkB,IAAI,CAAC;MAC1FC,MAAM,EAAE,CAAC,IAAI,CAAChC,gBAAgB,CAACC,KAAK,CAAC,CAAC;MACtCgC,MAAM,EAAE;IACV,CAAC,CAAC;IAEF,OAAOpB,KAAK,CAACA,KAAK;EACpB;EAEQqB,gCAAgCA,CACtC/B,IAAY,EACZU,KAAwB,EACxBF,QAAgB,EAChBwB,iBAAgC,EAChC;IACA,IAAIC,aAAgC;IACpC,IAAID,iBAAiB,EAAE;MACrBC,aAAa,GAAGvB,KAAK,CAAClB,MAAM,CAAEqB,CAAC,IAAKA,CAAC,CAACG,IAAI,KAAKR,QAAQ,IAAIK,CAAC,CAACQ,OAAO,CAAE,CAAC,CAAC,KAAKW,iBAAiB,CAAC;IACjG,CAAC,MAAM;MACLC,aAAa,GAAGvB,KAAK,CAAClB,MAAM,CAAEqB,CAAC,IAAKA,CAAC,CAACG,IAAI,KAAKR,QAAQ,IAAI,CAACE,KAAK,CAACU,IAAI,CAAEc,EAAE,IAAKA,EAAE,CAAChB,EAAE,KAAKL,CAAC,CAACQ,OAAO,CAAE,CAAC,CAAC,CAAC,CAAC;IAC1G;IAEA,IAAIY,aAAa,CAACrC,MAAM,IAAI,CAAC,EAAE;IAE/B,IAAIvB,oBAAoB,CAACE,wBAAwB,EAAE;MACjD,MAAM,IAAIH,iBAAiB,CACxB,mDAAkD4B,IAAK,KAAIiC,aAAa,CAACE,GAAG,CAAEtB,CAAC,IAAKA,CAAC,CAACK,EAAE,CAAC,CAACkB,IAAI,CAAC,IAAI,CAAE,EAAC,EACvGjE,qBAAqB,CAACkE,wBAAwB,CAC/C;IACH,CAAC,MAAM;MACL,IAAI,CAAC5D,4BAA4B,CAAC6D,OAAO,CAAE7C,CAAC,IAAKA,CAAC,CAAC;QAAEO,IAAI;QAAEuC,OAAO,EAAEN,aAAa,CAACE,GAAG,CAAEtB,CAAC,IAAKA,CAAC,CAACK,EAAE;MAAE,CAAC,CAAC,CAAC;IACxG;EACF;EAEA,MAAcsB,SAASA,CACrBxC,IAAY,EACZF,KAAqC,EAEpB;IAAA,IADjB2C,gBAAgB,GAAAC,SAAA,CAAA9C,MAAA,QAAA8C,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,IAAI;IAEvB,IAAI;MACF,MAAMhC,KAAK,GAAG,MAAM,IAAI,CAACiB,SAAS,CAAC7B,KAAK,CAAC;MACzC,MAAM;QAAEM,WAAW;QAAEI;MAAS,CAAC,GAAG,IAAI,CAACT,wBAAwB,CAACC,IAAI,CAAC;MACrE,MAAMgC,iBAAiB,GAAG,IAAI,CAACvB,qBAAqB,CAACC,KAAK,EAAEN,WAAW,CAAC;MACxE,IAAIwC,IAAiC;MACrC,IAAIZ,iBAAiB,KAAK,IAAI,EAAE;QAC9B,IAAI,CAACD,gCAAgC,CAAC/B,IAAI,EAAEU,KAAK,EAAEF,QAAQ,EAAE,IAAI,CAAC;QAClE;AACR;QACQoC,IAAI,GAAGlC,KAAK,CAACU,IAAI,CAAEP,CAAC,IAAKA,CAAC,CAACG,IAAI,KAAKR,QAAQ,IAAI,CAACE,KAAK,CAACU,IAAI,CAAEc,EAAE,IAAKA,EAAE,CAAChB,EAAE,KAAKL,CAAC,CAACQ,OAAO,CAAE,CAAC,CAAC,CAAC,CAAC;MAC/F,CAAC,MAAM;QACL,IAAI,CAACU,gCAAgC,CAAC/B,IAAI,EAAEU,KAAK,EAAEF,QAAQ,EAAEwB,iBAAiB,CAAC;QAC/EY,IAAI,GAAGlC,KAAK,CAACU,IAAI,CAAEP,CAAC,IAAKA,CAAC,CAACG,IAAI,KAAKR,QAAQ,IAAIK,CAAC,CAACQ,OAAO,CAAE,CAAC,CAAC,KAAKW,iBAAiB,CAAC;MACtF;MACA,IAAI,CAACY,IAAI,EAAE,MAAM,IAAIxE,iBAAiB,CAAE,gBAAe,EAAED,qBAAqB,CAAC0E,cAAc,CAAC;MAC9F,IAAID,IAAI,CAAC9B,QAAQ,KAAK5C,SAAS,CAAC6C,MAAM,IAAI0B,gBAAgB,EAAE;QAC1D,MAAM,IAAIrE,iBAAiB,CAAE,QAAO4B,IAAK,iBAAgB,EAAE7B,qBAAqB,CAAC2E,iBAAiB,CAAC;MACrG;MACA,OAAOF,IAAI,CAAC1B,EAAE;IAChB,CAAC,CAAC,OAAO6B,CAAU,EAAE;MAAA,IAAAC,OAAA,EAAAC,aAAA;MACnB,IAAIF,CAAC,YAAY9E,SAAS,IAAI,EAAA+E,OAAA,GAAAD,CAAC,CAACG,IAAI,cAAAF,OAAA,wBAAAC,aAAA,GAAND,OAAA,CAAQG,KAAK,cAAAF,aAAA,uBAAbA,aAAA,CAAeG,MAAM,MAAK,iBAAiB,EAAE;QACzE,MAAM,IAAIhF,iBAAiB,CACxB,0CAAyC,EAC1CD,qBAAqB,CAACkF,qBAAqB,EAC3CN,CAAC,CAACG,IAAI,CACP;MACH,CAAC,MAAM;QACL,IAAIH,CAAC,YAAY3E,iBAAiB,EAAE,MAAM2E,CAAC;QAC3C,MAAM,IAAI3E,iBAAiB,CAAE,kCAAiC4B,IAAK,EAAC,EAAE7B,qBAAqB,CAACmF,OAAO,EAAEP,CAAC,CAAC;MACzG;IACF;EACF;EAEA,MAAMQ,UAAUA,CAACvD,IAAY,EAAEF,KAAqC,EAAoB;IACtF,IAAI;MACF,MAAM,IAAI,CAAC0C,SAAS,CAACxC,IAAI,EAAEF,KAAK,EAAE,KAAK,CAAC;MACxC,OAAO,IAAI;IACb,CAAC,CAAC,OAAOiD,CAAM,EAAE;MACf,IAAIA,CAAC,YAAY3E,iBAAiB,IAAI2E,CAAC,CAACS,IAAI,KAAKrF,qBAAqB,CAAC0E,cAAc,EAAE,OAAO,KAAK,CAAC,KAC/F,MAAME,CAAC;IACd;EACF;EAEA,MAAMU,UAAUA,CACdzD,IAAY,EACZ0D,IAAY,EACZ5D,KAAqC,EACrC6D,SAAkB,EACH;IACf,IAAIC,MAA0B;IAC9B,IAAID,SAAS,EAAE;MACb,IAAI;QACFC,MAAM,GAAG,MAAM,IAAI,CAACpB,SAAS,CAACxC,IAAI,EAAEF,KAAK,CAAC;MAC5C,CAAC,CAAC,OAAOiD,CAAM,EAAE;QACf,IAAIA,CAAC,YAAY3E,iBAAiB,IAAI2E,CAAC,CAACS,IAAI,KAAKrF,qBAAqB,CAAC0E,cAAc,EAAE;UACrF;QAAA,CACD,MAAM;UACL,MAAME,CAAC;QACT;MACF;IACF,CAAC,MAAM;MACL,IAAI;QACF,MAAM,IAAI,CAACP,SAAS,CAACxC,IAAI,EAAEF,KAAK,CAAC;QACjC,MAAM,IAAI1B,iBAAiB,CAAE,QAAO4B,IAAK,iBAAgB,EAAE7B,qBAAqB,CAAC0F,mBAAmB,CAAC;MACvG,CAAC,CAAC,OAAOd,CAAM,EAAE;QACf,IAAIA,CAAC,YAAY3E,iBAAiB,IAAI2E,CAAC,CAACS,IAAI,KAAKrF,qBAAqB,CAAC0E,cAAc,EAAE;UACrF;QAAA,CACD,MAAM;UACL,MAAME,CAAC;QACT;MACF;IACF;IAEA,MAAMe,QAAQ,GAAGzF,oBAAoB,CAACC,KAAK,CAACoC,KAAK,CAACqD,oBAAoB,EAAE,CAACC,OAAO,CAACN,IAAI,EAAExF,SAAS,CAAC+F,IAAI,CAAC;IACtG,IAAIL,MAAM,EAAEE,QAAQ,CAACI,mBAAmB,CAACN,MAAM,CAAC,CAAC,KAC5C;MACH,MAAMlD,KAAK,GAAG,MAAM,IAAI,CAACiB,SAAS,CAAC7B,KAAK,CAAC;MACzC,MAAM;QAAEM,WAAW;QAAEI;MAAS,CAAC,GAAG,IAAI,CAACT,wBAAwB,CAACC,IAAI,CAAC;MACrE,MAAMgC,iBAAiB,GAAG,IAAI,CAACvB,qBAAqB,CAACC,KAAK,EAAEN,WAAW,CAAC;MACxE0D,QAAQ,CAACK,cAAc,CAAC;QACtBnD,IAAI,EAAER,QAAQ;QACda,OAAO,EAAEW,iBAAiB,GACtB,CAACA,iBAAiB,CAAC,GACnBlC,KAAK,KAAK,UAAU,GACpB,CAAC,IAAI,CAACD,gBAAgB,CAACC,KAAK,CAAC,CAAC,GAC9B6C;MACN,CAAC,CAAC;IACJ;IACA,MAAMmB,QAAQ,CAACM,OAAO,EAAE;EAC1B;EAEA,MAAMC,eAAeA,CAACrE,IAAY,EAAEF,KAAqC,EAAiB;IACxF,IAAI;MACF,MAAM,IAAI,CAAC0C,SAAS,CAACxC,IAAI,EAAEF,KAAK,CAAC;MACjC,MAAM,IAAI1B,iBAAiB,CAAE,QAAO4B,IAAK,iBAAgB,EAAE7B,qBAAqB,CAAC0F,mBAAmB,CAAC;IACvG,CAAC,CAAC,OAAOd,CAAM,EAAE;MACf,IAAIA,CAAC,YAAY3E,iBAAiB,IAAI2E,CAAC,CAACS,IAAI,KAAKrF,qBAAqB,CAAC0E,cAAc,EAAE;QACrF;MAAA,CACD,MAAM,IAAIE,CAAC,YAAY3E,iBAAiB,IAAI2E,CAAC,CAACS,IAAI,KAAKrF,qBAAqB,CAAC2E,iBAAiB,EAAE;QAC/F,MAAM,IAAI1E,iBAAiB,CAAE,aAAY4B,IAAK,iBAAgB,EAAE7B,qBAAqB,CAAC0F,mBAAmB,CAAC;MAC5G,CAAC,MAAM;QACL,MAAMd,CAAC;MACT;IACF;IAEA,MAAMe,QAAQ,GAAGzF,oBAAoB,CAACC,KAAK,CAACoC,KAAK,CAAC4D,uBAAuB,EAAE;IAC3E,MAAM5D,KAAK,GAAG,MAAM,IAAI,CAACiB,SAAS,CAAC7B,KAAK,CAAC;IACzC,MAAM;MAAEM,WAAW;MAAEI;IAAS,CAAC,GAAG,IAAI,CAACT,wBAAwB,CAACC,IAAI,CAAC;IACrE,MAAMgC,iBAAiB,GAAG,IAAI,CAACvB,qBAAqB,CAACC,KAAK,EAAEN,WAAW,CAAC;IACxE0D,QAAQ,CAACK,cAAc,CAAC;MACtBnD,IAAI,EAAER,QAAQ;MACdM,QAAQ,EAAE5C,SAAS,CAAC6C,MAAM;MAC1BM,OAAO,EAAEW,iBAAiB,GACtB,CAACA,iBAAiB,CAAC,GACnBlC,KAAK,KAAK,UAAU,GACpB,CAAC,IAAI,CAACD,gBAAgB,CAACC,KAAK,CAAC,CAAC,GAC9B6C;IACN,CAAC,CAAC;IACF,MAAMmB,QAAQ,CAACM,OAAO,EAAE;EAC1B;EAEA,MAAMG,QAAQA,CAACvE,IAAY,EAAEF,KAAqC,EAAmB;IACnF,MAAM8D,MAAM,GAAG,MAAM,IAAI,CAACpB,SAAS,CAACxC,IAAI,EAAEF,KAAK,CAAC;IAChD,MAAM0E,OAAO,GAAG,MAAMnG,oBAAoB,CAACC,KAAK,CAACoC,KAAK,CAAC+D,OAAO,CAACb,MAAM,CAAC;IACtE,OAAOY,OAAO;EAChB;EAEA,MAAME,UAAUA,CAAC1E,IAAY,EAAEF,KAAqC,EAAiB;IACnF,MAAM8D,MAAM,GAAG,MAAM,IAAI,CAACpB,SAAS,CAACxC,IAAI,EAAEF,KAAK,CAAC;IAChD,MAAMzB,oBAAoB,CAACC,KAAK,CAACoC,KAAK,CAACiE,MAAM,CAACf,MAAM,CAAC;EACvD;EAEA,MAAMgB,QAAQA,CAAC5E,IAAY,EAAEF,KAAqC,EAA8C;IAC9G,MAAM8D,MAAM,GAAG,MAAM,IAAI,CAACpB,SAAS,CAACxC,IAAI,EAAEF,KAAK,EAAE,KAAK,CAAC;IACvD,MAAM8C,IAA6B,GAAG,MAAM,CAC1C,MAAMvE,oBAAoB,CAACC,KAAK,CAACoC,KAAK,CAAC9B,GAAG,CAACgF,MAAM,EAAG;MAClD9B,MAAM,EAAE;IACV,CAAC,CAAC,EACFoB,IAAI,EAAE;IAER,OAAO;MACL2B,IAAI,EAAEjC,IAAI,CAACiC,IAAI,IAAI,CAAC;MACpBC,WAAW,EAAE,IAAIC,IAAI,CAACnC,IAAI,CAACoC,WAAW,CAAE,CAACC,OAAO,EAAE;MAClDC,OAAO,EAAE,IAAIH,IAAI,CAACnC,IAAI,CAACuC,YAAY,CAAE,CAACF,OAAO,EAAE;MAC/CG,WAAW,EAAExC,IAAI,CAAC9B,QAAQ,KAAK5C,SAAS,CAAC6C,MAAM;MAC/CsE,MAAM,EAAEzC,IAAI,CAAC9B,QAAQ,KAAK5C,SAAS,CAAC6C;IACtC,CAAC;EACH;AACF"}
@@ -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,13 @@ 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>;
33
40
  /**
34
41
  * Reads the contents of the file at the given path.
35
42
  * @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;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"}
@@ -25,6 +25,7 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
25
25
  private getFileId;
26
26
  fileExists(path: string, scope: NativeRNCloudCloudStorageScope): Promise<boolean>;
27
27
  createFile(path: string, data: string, scope: NativeRNCloudCloudStorageScope, overwrite: boolean): Promise<void>;
28
+ createDirectory(path: string, scope: NativeRNCloudCloudStorageScope): Promise<void>;
28
29
  readFile(path: string, scope: NativeRNCloudCloudStorageScope): Promise<string>;
29
30
  deleteFile(path: string, scope: NativeRNCloudCloudStorageScope): Promise<void>;
30
31
  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;YAiDf,SAAS;IASvB,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,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"}
@@ -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,7 @@ 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>;
25
27
  readFile: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<string>;
26
28
  deleteFile: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<void>;
27
29
  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,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.6.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,16 @@ 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
+
50
60
  /**
51
61
  * Reads the contents of the file at the given path.
52
62
  * @param path The file to read.
@@ -157,7 +157,11 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
157
157
  }
158
158
  }
159
159
 
160
- private async getFileId(path: string, scope: NativeRNCloudCloudStorageScope): Promise<string> {
160
+ private async getFileId(
161
+ path: string,
162
+ scope: NativeRNCloudCloudStorageScope,
163
+ throwIfDirectory = true
164
+ ): Promise<string> {
161
165
  try {
162
166
  const files = await this.listFiles(scope);
163
167
  const { directories, filename } = this.resolvePathToDirectories(path);
@@ -173,8 +177,8 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
173
177
  file = files.find((f) => f.name === filename && f.parents![0] === parentDirectoryId);
174
178
  }
175
179
  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);
180
+ if (file.mimeType === MimeTypes.FOLDER && throwIfDirectory) {
181
+ throw new CloudStorageError(`Path ${path} is a directory`, CloudStorageErrorCode.PATH_IS_DIRECTORY);
178
182
  }
179
183
  return file.id;
180
184
  } catch (e: unknown) {
@@ -193,7 +197,7 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
193
197
 
194
198
  async fileExists(path: string, scope: NativeRNCloudCloudStorageScope): Promise<boolean> {
195
199
  try {
196
- await this.getFileId(path, scope);
200
+ await this.getFileId(path, scope, false);
197
201
  return true;
198
202
  } catch (e: any) {
199
203
  if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) return false;
@@ -249,6 +253,36 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
249
253
  await uploader.execute();
250
254
  }
251
255
 
256
+ async createDirectory(path: string, scope: NativeRNCloudCloudStorageScope): Promise<void> {
257
+ try {
258
+ await this.getFileId(path, scope);
259
+ throw new CloudStorageError(`File ${path} already exists`, CloudStorageErrorCode.FILE_ALREADY_EXISTS);
260
+ } catch (e: any) {
261
+ if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) {
262
+ /* do nothing, simply create the file */
263
+ } else if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.PATH_IS_DIRECTORY) {
264
+ throw new CloudStorageError(`Directory ${path} already exists`, CloudStorageErrorCode.FILE_ALREADY_EXISTS);
265
+ } else {
266
+ throw e;
267
+ }
268
+ }
269
+
270
+ const uploader = GoogleDriveApiClient.drive.files.newMetadataOnlyUploader();
271
+ const files = await this.listFiles(scope);
272
+ const { directories, filename } = this.resolvePathToDirectories(path);
273
+ const parentDirectoryId = this.findParentDirectoryId(files, directories);
274
+ uploader.setRequestBody({
275
+ name: filename,
276
+ mimeType: MimeTypes.FOLDER,
277
+ parents: parentDirectoryId
278
+ ? [parentDirectoryId]
279
+ : scope === 'app_data'
280
+ ? [this.getRootDirectory(scope)]
281
+ : undefined,
282
+ });
283
+ await uploader.execute();
284
+ }
285
+
252
286
  async readFile(path: string, scope: NativeRNCloudCloudStorageScope): Promise<string> {
253
287
  const fileId = await this.getFileId(path, scope);
254
288
  const content = await GoogleDriveApiClient.drive.files.getText(fileId);
@@ -261,10 +295,13 @@ export default class GoogleDriveApiClient implements NativeRNCloudStorage {
261
295
  }
262
296
 
263
297
  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
- });
298
+ const fileId = await this.getFileId(path, scope, false);
299
+ const file: GoogleDriveDetailedFile = await (
300
+ await GoogleDriveApiClient.drive.files.get(fileId!, {
301
+ fields: 'id,kind,mimeType,name,parents,spaces,size,createdTime,modifiedTime',
302
+ })
303
+ ).json();
304
+
268
305
  return {
269
306
  size: file.size ?? 0,
270
307
  birthtimeMs: new Date(file.createdTime!).getTime(),
@@ -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,7 @@ 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>;
28
30
  readFile: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<string>;
29
31
  deleteFile: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<void>;
30
32
  statFile: (path: string, scope: NativeRNCloudCloudStorageScope) => Promise<NativeRNCloudCloudStorageFileStat>;