react-native-cloud-storage 1.2.3 → 1.3.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 (43) hide show
  1. package/README.md +66 -10
  2. package/ios/CloudStorage.m +1 -0
  3. package/ios/CloudStorage.swift +46 -0
  4. package/lib/commonjs/RNCloudStorage.js +10 -0
  5. package/lib/commonjs/RNCloudStorage.js.map +1 -1
  6. package/lib/commonjs/createRNCloudStorage.js.map +1 -1
  7. package/lib/commonjs/google-drive/client.js +172 -0
  8. package/lib/commonjs/google-drive/client.js.map +1 -0
  9. package/lib/commonjs/google-drive/index.js +72 -54
  10. package/lib/commonjs/google-drive/index.js.map +1 -1
  11. package/lib/commonjs/google-drive/types.js +15 -0
  12. package/lib/commonjs/google-drive/types.js.map +1 -1
  13. package/lib/commonjs/types/native.js +2 -0
  14. package/lib/commonjs/types/native.js.map +1 -1
  15. package/lib/module/RNCloudStorage.js +14 -4
  16. package/lib/module/RNCloudStorage.js.map +1 -1
  17. package/lib/module/createRNCloudStorage.js +2 -2
  18. package/lib/module/createRNCloudStorage.js.map +1 -1
  19. package/lib/module/google-drive/client.js +164 -0
  20. package/lib/module/google-drive/client.js.map +1 -0
  21. package/lib/module/google-drive/index.js +66 -49
  22. package/lib/module/google-drive/index.js.map +1 -1
  23. package/lib/module/google-drive/types.js +9 -1
  24. package/lib/module/google-drive/types.js.map +1 -1
  25. package/lib/module/types/native.js +2 -0
  26. package/lib/module/types/native.js.map +1 -1
  27. package/lib/typescript/RNCloudStorage.d.ts +12 -2
  28. package/lib/typescript/RNCloudStorage.d.ts.map +1 -1
  29. package/lib/typescript/google-drive/client.d.ts +33 -0
  30. package/lib/typescript/google-drive/client.d.ts.map +1 -0
  31. package/lib/typescript/google-drive/index.d.ts +7 -4
  32. package/lib/typescript/google-drive/index.d.ts.map +1 -1
  33. package/lib/typescript/google-drive/types.d.ts +10 -3
  34. package/lib/typescript/google-drive/types.d.ts.map +1 -1
  35. package/lib/typescript/types/native.d.ts +3 -0
  36. package/lib/typescript/types/native.d.ts.map +1 -1
  37. package/package.json +1 -4
  38. package/src/RNCloudStorage.ts +16 -5
  39. package/src/createRNCloudStorage.ts +2 -2
  40. package/src/google-drive/client.ts +180 -0
  41. package/src/google-drive/index.ts +97 -73
  42. package/src/google-drive/types.ts +12 -4
  43. package/src/types/native.ts +3 -0
@@ -0,0 +1,164 @@
1
+ import { MimeTypes } from './types';
2
+ const BASE_URL = 'https://www.googleapis.com/drive/v3';
3
+ const BASE_UPLOAD_URL = 'https://www.googleapis.com/upload/drive/v3';
4
+ const MULTIPART_BOUNDARY = 'foo_bar_baz';
5
+ export class GoogleDriveHttpError extends Error {
6
+ constructor(message, status, json) {
7
+ super(message);
8
+ this.status = status;
9
+ this.json = json;
10
+ }
11
+ }
12
+
13
+ // TODO: fetch timeout
14
+ // TODO: properly handle errors
15
+ export default class GoogleDriveApiClient {
16
+ constructor() {
17
+ let accessToken = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
18
+ this.accessToken = accessToken;
19
+ }
20
+ buildQueryString(query) {
21
+ let res = Object.entries(query).filter(_ref => {
22
+ let [, value] = _ref;
23
+ return value !== undefined;
24
+ }).map(_ref2 => {
25
+ let [key, value] = _ref2;
26
+ if (typeof value === 'boolean') return `${encodeURIComponent(key)}=${value ? 'true' : 'false'}`;
27
+ return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
28
+ }).join('&');
29
+ if (res) {
30
+ res = `?${res}`;
31
+ }
32
+ return res;
33
+ }
34
+ async request(operation) {
35
+ let {
36
+ queryParameters,
37
+ baseUrl,
38
+ ...options
39
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
40
+ let path = `${baseUrl ?? BASE_URL}${operation}`;
41
+ if (queryParameters) {
42
+ path += this.buildQueryString(queryParameters);
43
+ }
44
+ const response = await fetch(path, {
45
+ ...options,
46
+ headers: {
47
+ ...options.headers,
48
+ Authorization: `Bearer ${this.accessToken}`
49
+ }
50
+ });
51
+ if (!response.ok) {
52
+ let errorMessage;
53
+ let json = null;
54
+ try {
55
+ var _json$error;
56
+ json = await response.json();
57
+ errorMessage = ((_json$error = json.error) === null || _json$error === void 0 ? void 0 : _json$error.message) ?? `Request failed with status ${response.status}`;
58
+ } catch (e) {
59
+ errorMessage = `Request failed with status ${response.status}`;
60
+ }
61
+ throw new GoogleDriveHttpError(errorMessage, response.status, json);
62
+ }
63
+ if (response.status === 204) {
64
+ return undefined;
65
+ }
66
+ if (options !== null && options !== void 0 && options.headers && 'Accept' in options.headers && options.headers.Accept !== 'application/json') {
67
+ return response.text();
68
+ }
69
+ return response.json();
70
+ }
71
+ buildMultiPartBody(metadata, media) {
72
+ const body = [];
73
+ body.push(`--${MULTIPART_BOUNDARY}\r\n`);
74
+ body.push(`Content-Type: ${MimeTypes.JSON}; charset=UTF-8\r\n\r\n`);
75
+ body.push(`${JSON.stringify(metadata)}\r\n`);
76
+ body.push(`--${MULTIPART_BOUNDARY}\r\n`);
77
+ body.push(`Content-Type: ${media.mimeType}\r\n\r\n`);
78
+ body.push(`${media.body}\r\n`);
79
+ body.push(`--${MULTIPART_BOUNDARY}--`);
80
+ return body.join('');
81
+ }
82
+ async listFiles(space) {
83
+ const files = [];
84
+ let pageToken;
85
+ const fields = ['id', 'kind', 'mimeType', 'name', 'parents', 'spaces', 'size', 'createdTime', 'modifiedTime'];
86
+ do {
87
+ const queryParameters = {
88
+ fields: `files(${fields.join(',')}),nextPageToken`,
89
+ spaces: space
90
+ };
91
+ const response = await this.request(`/files`, {
92
+ queryParameters
93
+ });
94
+ files.push(...response.files);
95
+ pageToken = response.nextPageToken ?? undefined;
96
+ } while (pageToken);
97
+ return files;
98
+ }
99
+ async getFile(fileId) {
100
+ const queryParameters = {
101
+ fields: ['id', 'kind', 'mimeType', 'name', 'parents', 'spaces', 'size', 'createdTime', 'modifiedTime'].join(',')
102
+ };
103
+ return this.request(`/files/${fileId}`, {
104
+ queryParameters
105
+ });
106
+ }
107
+ async getFileText(fileId) {
108
+ return this.request(`/files/${fileId}`, {
109
+ queryParameters: {
110
+ alt: 'media'
111
+ },
112
+ headers: {
113
+ Accept: 'text/plain'
114
+ }
115
+ });
116
+ }
117
+ async deleteFile(fileId) {
118
+ return this.request(`/files/${fileId}`, {
119
+ method: 'DELETE'
120
+ });
121
+ }
122
+ async createFile(metadata, media) {
123
+ const multipartRequestBody = this.buildMultiPartBody(metadata, media);
124
+ await this.request(`/files`, {
125
+ queryParameters: {
126
+ uploadType: 'multipart'
127
+ },
128
+ method: 'POST',
129
+ headers: {
130
+ 'Content-Type': `multipart/related; boundary=${MULTIPART_BOUNDARY}`,
131
+ 'Content-Length': multipartRequestBody.length.toString()
132
+ },
133
+ body: multipartRequestBody,
134
+ baseUrl: BASE_UPLOAD_URL
135
+ });
136
+ }
137
+ async createDirectory(metadata) {
138
+ await this.request(`/files`, {
139
+ method: 'POST',
140
+ headers: {
141
+ 'Content-Type': `application/json`
142
+ },
143
+ body: JSON.stringify({
144
+ ...metadata,
145
+ mimeType: MimeTypes.FOLDER
146
+ })
147
+ });
148
+ }
149
+ async updateFile(fileId, media) {
150
+ await this.request(`/files/${fileId}`, {
151
+ queryParameters: {
152
+ uploadType: 'media'
153
+ },
154
+ method: 'PATCH',
155
+ headers: {
156
+ 'Content-Type': media.mimeType,
157
+ 'Content-Length': media.body.length.toString()
158
+ },
159
+ body: media.body,
160
+ baseUrl: BASE_UPLOAD_URL
161
+ });
162
+ }
163
+ }
164
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MimeTypes","BASE_URL","BASE_UPLOAD_URL","MULTIPART_BOUNDARY","GoogleDriveHttpError","Error","constructor","message","status","json","GoogleDriveApiClient","accessToken","arguments","length","undefined","buildQueryString","query","res","Object","entries","filter","_ref","value","map","_ref2","key","encodeURIComponent","join","request","operation","queryParameters","baseUrl","options","path","response","fetch","headers","Authorization","ok","errorMessage","_json$error","error","e","Accept","text","buildMultiPartBody","metadata","media","body","push","JSON","stringify","mimeType","listFiles","space","files","pageToken","fields","spaces","nextPageToken","getFile","fileId","getFileText","alt","deleteFile","method","createFile","multipartRequestBody","uploadType","toString","createDirectory","FOLDER","updateFile"],"sourceRoot":"../../../src","sources":["google-drive/client.ts"],"mappings":"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"}
@@ -1,19 +1,23 @@
1
- import { GDrive, HttpError, MimeTypes } from 'react-native-google-drive-api-wrapper-js';
2
1
  import { CloudStorageErrorCode } from '../types/native';
3
2
  import CloudStorageError from '../utils/CloudStorageError';
3
+ import { MimeTypes } from './types';
4
4
  import { DeviceEventEmitter } from 'react-native';
5
- export default class GoogleDriveApiClient {
6
- static drive = new GDrive();
5
+ import GoogleDriveApiClient, { GoogleDriveHttpError } from './client';
6
+
7
+ /**
8
+ * A proxy class that wraps the Google Drive API client implementation to match the native iOS interface.
9
+ */
10
+ export default class GoogleDrive {
11
+ static drive = new GoogleDriveApiClient();
7
12
  static throwOnFilesWithSameName = false;
8
13
  constructor() {
9
14
  this.filesWithSameNameSubscribers = [];
10
- GoogleDriveApiClient.drive.fetchTimeout = 3000;
11
15
  return new Proxy(this, {
12
16
  // before calling any function, check if the access token is set
13
17
  get(target, prop) {
14
18
  const allowedFunctions = ['isCloudAvailable', 'subscribeToFilesWithSameName'];
15
19
  if (typeof target[prop] === 'function' && !allowedFunctions.includes(prop.toString())) {
16
- if (!GoogleDriveApiClient.drive.accessToken) {
20
+ if (!GoogleDrive.drive.accessToken.length) {
17
21
  throw new CloudStorageError(`Google Drive access token is not set, cannot call function ${prop.toString()}`, CloudStorageErrorCode.GOOGLE_DRIVE_ACCESS_TOKEN_MISSING);
18
22
  }
19
23
  }
@@ -24,7 +28,7 @@ export default class GoogleDriveApiClient {
24
28
 
25
29
  // when setting accessToken, set it on the GDrive instance
26
30
  static set accessToken(accessToken) {
27
- GoogleDriveApiClient.drive.accessToken = accessToken;
31
+ GoogleDrive.drive.accessToken = accessToken ?? '';
28
32
 
29
33
  // emit an event for the useIsCloudAvailable hook
30
34
  DeviceEventEmitter.emit('RNCloudStorage.cloud.availability-changed', {
@@ -32,7 +36,7 @@ export default class GoogleDriveApiClient {
32
36
  });
33
37
  }
34
38
  static get accessToken() {
35
- return GoogleDriveApiClient.drive.accessToken;
39
+ return GoogleDrive.drive.accessToken.length ? GoogleDrive.drive.accessToken : null;
36
40
  }
37
41
  subscribeToFilesWithSameName(subscriber) {
38
42
  this.filesWithSameNameSubscribers.push(subscriber);
@@ -42,10 +46,7 @@ export default class GoogleDriveApiClient {
42
46
  }
43
47
  };
44
48
  }
45
- isCloudAvailable = async () => {
46
- var _GoogleDriveApiClient;
47
- return !!((_GoogleDriveApiClient = GoogleDriveApiClient.accessToken) !== null && _GoogleDriveApiClient !== void 0 && _GoogleDriveApiClient.length);
48
- };
49
+ isCloudAvailable = async () => !!GoogleDrive.drive.accessToken.length;
49
50
  getRootDirectory(scope) {
50
51
  switch (scope) {
51
52
  case 'documents':
@@ -102,19 +103,12 @@ export default class GoogleDriveApiClient {
102
103
  * @returns A promise that resolves to the ID of the root directory or null if it could not be found.
103
104
  */
104
105
  async getRootDirectoryId(scope) {
105
- const files = await this.listInternalFiles(scope);
106
+ const files = await GoogleDrive.drive.listFiles(this.getRootDirectory(scope));
106
107
  for (const file of files) {
107
108
  if (!files.find(f => f.id === file.parents[0])) return file.parents[0] ?? null;
108
109
  }
109
110
  return null;
110
111
  }
111
- async listInternalFiles(scope) {
112
- const files = await GoogleDriveApiClient.drive.files.list({
113
- spaces: [this.getRootDirectory(scope)],
114
- fields: 'files(id,kind,mimeType,name,parents,spaces)'
115
- });
116
- return files.files;
117
- }
118
112
  checkIfMultipleFilesWithSameName(path, files, filename, parentDirectoryId) {
119
113
  let possibleFiles;
120
114
  if (parentDirectoryId) {
@@ -123,7 +117,7 @@ export default class GoogleDriveApiClient {
123
117
  possibleFiles = files.filter(f => f.name === filename && !files.find(f2 => f2.id === f.parents[0]));
124
118
  }
125
119
  if (possibleFiles.length <= 1) return;
126
- if (GoogleDriveApiClient.throwOnFilesWithSameName) {
120
+ if (GoogleDrive.throwOnFilesWithSameName) {
127
121
  throw new CloudStorageError(`Multiple files with the same name found at path ${path}: ${possibleFiles.map(f => f.id).join(', ')}`, CloudStorageErrorCode.MULTIPLE_FILES_SAME_NAME);
128
122
  } else {
129
123
  this.filesWithSameNameSubscribers.forEach(s => s({
@@ -133,9 +127,9 @@ export default class GoogleDriveApiClient {
133
127
  }
134
128
  }
135
129
  async getFileId(path, scope) {
136
- let throwIfDirectory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
130
+ let throwIf = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
137
131
  try {
138
- const files = await this.listInternalFiles(scope);
132
+ const files = await GoogleDrive.drive.listFiles(this.getRootDirectory(scope));
139
133
  if (path === '' || path === '/') {
140
134
  const rootDirectoryId = await this.getRootDirectoryId(scope);
141
135
  if (!rootDirectoryId) throw new CloudStorageError(`Root directory in scope ${scope} not found`, CloudStorageErrorCode.DIRECTORY_NOT_FOUND);
@@ -157,13 +151,15 @@ export default class GoogleDriveApiClient {
157
151
  file = files.find(f => f.name === filename && f.parents[0] === parentDirectoryId);
158
152
  }
159
153
  if (!file) throw new CloudStorageError(`File not found`, CloudStorageErrorCode.FILE_NOT_FOUND);
160
- if (file.mimeType === MimeTypes.FOLDER && throwIfDirectory) {
154
+ if (file.mimeType === MimeTypes.FOLDER && throwIf === 'directory') {
161
155
  throw new CloudStorageError(`Path ${path} is a directory`, CloudStorageErrorCode.PATH_IS_DIRECTORY);
156
+ } else if (file.mimeType !== MimeTypes.FOLDER && throwIf === 'file') {
157
+ throw new CloudStorageError(`Path ${path} is a file`, CloudStorageErrorCode.FILE_NOT_FOUND);
162
158
  }
163
159
  return file.id;
164
160
  } catch (e) {
165
161
  var _e$json, _e$json$error;
166
- if (e instanceof HttpError && ((_e$json = e.json) === null || _e$json === void 0 ? void 0 : (_e$json$error = _e$json.error) === null || _e$json$error === void 0 ? void 0 : _e$json$error.status) === 'UNAUTHENTICATED') {
162
+ if (e instanceof GoogleDriveHttpError && ((_e$json = e.json) === null || _e$json === void 0 ? void 0 : (_e$json$error = _e$json.error) === null || _e$json$error === void 0 ? void 0 : _e$json$error.status) === 'UNAUTHENTICATED') {
167
163
  throw new CloudStorageError(`Could not authenticate with Google Drive`, CloudStorageErrorCode.AUTHENTICATION_FAILED, e.json);
168
164
  } else {
169
165
  if (e instanceof CloudStorageError) throw e;
@@ -173,7 +169,7 @@ export default class GoogleDriveApiClient {
173
169
  }
174
170
  async fileExists(path, scope) {
175
171
  try {
176
- await this.getFileId(path, scope, false);
172
+ await this.getFileId(path, scope);
177
173
  return true;
178
174
  } catch (e) {
179
175
  if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) return false;else throw e;
@@ -184,7 +180,7 @@ export default class GoogleDriveApiClient {
184
180
  let prevContent = '';
185
181
  try {
186
182
  fileId = await this.getFileId(path, scope);
187
- prevContent = await GoogleDriveApiClient.drive.files.getText(fileId);
183
+ prevContent = await GoogleDrive.drive.getFileText(fileId);
188
184
  } catch (e) {
189
185
  if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) {
190
186
  /* do nothing, simply create the file */
@@ -192,20 +188,26 @@ export default class GoogleDriveApiClient {
192
188
  throw e;
193
189
  }
194
190
  }
195
- const uploader = GoogleDriveApiClient.drive.files.newMultipartUploader().setData(prevContent + data, MimeTypes.TEXT);
196
- if (fileId) uploader.setIdOfFileToUpdate(fileId);else {
197
- const files = await this.listInternalFiles(scope);
191
+ if (fileId) {
192
+ await GoogleDrive.drive.updateFile(fileId, {
193
+ body: prevContent + data,
194
+ mimeType: MimeTypes.TEXT
195
+ });
196
+ } else {
197
+ const files = await GoogleDrive.drive.listFiles(this.getRootDirectory(scope));
198
198
  const {
199
199
  directories,
200
200
  filename
201
201
  } = this.resolvePathToDirectories(path);
202
202
  const parentDirectoryId = this.findParentDirectoryId(files, directories);
203
- uploader.setRequestBody({
203
+ await GoogleDrive.drive.createFile({
204
204
  name: filename,
205
205
  parents: parentDirectoryId ? [parentDirectoryId] : scope === 'app_data' ? [this.getRootDirectory(scope)] : undefined
206
+ }, {
207
+ body: data,
208
+ mimeType: MimeTypes.TEXT
206
209
  });
207
210
  }
208
- await uploader.execute();
209
211
  }
210
212
  async createFile(path, data, scope, overwrite) {
211
213
  let fileId;
@@ -231,25 +233,31 @@ export default class GoogleDriveApiClient {
231
233
  }
232
234
  }
233
235
  }
234
- const uploader = GoogleDriveApiClient.drive.files.newMultipartUploader().setData(data, MimeTypes.TEXT);
235
- if (fileId) uploader.setIdOfFileToUpdate(fileId);else {
236
- const files = await this.listInternalFiles(scope);
236
+ if (fileId) {
237
+ await GoogleDrive.drive.updateFile(fileId, {
238
+ body: data,
239
+ mimeType: MimeTypes.TEXT
240
+ });
241
+ } else {
242
+ const files = await GoogleDrive.drive.listFiles(this.getRootDirectory(scope));
237
243
  const {
238
244
  directories,
239
245
  filename
240
246
  } = this.resolvePathToDirectories(path);
241
247
  const parentDirectoryId = this.findParentDirectoryId(files, directories);
242
- uploader.setRequestBody({
248
+ await GoogleDrive.drive.createFile({
243
249
  name: filename,
244
250
  parents: parentDirectoryId ? [parentDirectoryId] : scope === 'app_data' ? [this.getRootDirectory(scope)] : undefined
251
+ }, {
252
+ body: data,
253
+ mimeType: MimeTypes.TEXT
245
254
  });
246
255
  }
247
- await uploader.execute();
248
256
  }
249
257
  async listFiles(path, scope) {
250
- const allFiles = await this.listInternalFiles(scope);
258
+ const allFiles = await GoogleDrive.drive.listFiles(this.getRootDirectory(scope));
251
259
  if (path !== '') {
252
- const fileId = await this.getFileId(path, scope, false);
260
+ const fileId = await this.getFileId(path, scope);
253
261
  const files = allFiles.filter(f => (f.parents ?? [])[0] === fileId);
254
262
  return Array.from(new Set(files.map(f => f.name)));
255
263
  } else {
@@ -270,23 +278,20 @@ export default class GoogleDriveApiClient {
270
278
  throw e;
271
279
  }
272
280
  }
273
- const uploader = GoogleDriveApiClient.drive.files.newMetadataOnlyUploader();
274
- const files = await this.listInternalFiles(scope);
281
+ const files = await GoogleDrive.drive.listFiles(this.getRootDirectory(scope));
275
282
  const {
276
283
  directories,
277
284
  filename
278
285
  } = this.resolvePathToDirectories(path);
279
286
  const parentDirectoryId = this.findParentDirectoryId(files, directories);
280
- uploader.setRequestBody({
287
+ await GoogleDrive.drive.createDirectory({
281
288
  name: filename,
282
- mimeType: MimeTypes.FOLDER,
283
289
  parents: parentDirectoryId ? [parentDirectoryId] : scope === 'app_data' ? [this.getRootDirectory(scope)] : undefined
284
290
  });
285
- await uploader.execute();
286
291
  }
287
292
  async readFile(path, scope) {
288
293
  const fileId = await this.getFileId(path, scope);
289
- const content = await GoogleDriveApiClient.drive.files.getText(fileId);
294
+ const content = await GoogleDrive.drive.getFileText(fileId);
290
295
  return content;
291
296
  }
292
297
  async downloadFile(_path, _scope) {
@@ -294,14 +299,26 @@ export default class GoogleDriveApiClient {
294
299
  return;
295
300
  }
296
301
  async deleteFile(path, scope) {
297
- const fileId = await this.getFileId(path, scope);
298
- await GoogleDriveApiClient.drive.files.delete(fileId);
302
+ // if trying to pass a directory, throw an error
303
+ const fileId = await this.getFileId(path, scope, 'directory');
304
+ await GoogleDrive.drive.deleteFile(fileId);
305
+ }
306
+ async deleteDirectory(path, recursive, scope) {
307
+ // if trying to pass a file, throw an error
308
+ const fileId = await this.getFileId(path, scope, 'file');
309
+ if (!recursive) {
310
+ // check if the directory is empty
311
+ const files = await GoogleDrive.drive.listFiles(this.getRootDirectory(scope));
312
+ const filesInDirectory = files.filter(f => (f.parents ?? [])[0] === fileId);
313
+ if (filesInDirectory.length > 0) {
314
+ throw new CloudStorageError(`Directory ${path} is not empty`, CloudStorageErrorCode.DELETE_ERROR, filesInDirectory);
315
+ }
316
+ }
317
+ await GoogleDrive.drive.deleteFile(fileId);
299
318
  }
300
319
  async statFile(path, scope) {
301
320
  const fileId = await this.getFileId(path, scope, false);
302
- const file = await (await GoogleDriveApiClient.drive.files.get(fileId, {
303
- fields: 'id,kind,mimeType,name,parents,spaces,size,createdTime,modifiedTime'
304
- })).json();
321
+ const file = await GoogleDrive.drive.getFile(fileId);
305
322
  return {
306
323
  size: file.size ?? 0,
307
324
  birthtimeMs: new Date(file.createdTime).getTime(),
@@ -1 +1 @@
1
- {"version":3,"names":["GDrive","HttpError","MimeTypes","CloudStorageErrorCode","CloudStorageError","DeviceEventEmitter","GoogleDriveApiClient","drive","throwOnFilesWithSameName","constructor","filesWithSameNameSubscribers","fetchTimeout","Proxy","get","target","prop","allowedFunctions","includes","toString","accessToken","GOOGLE_DRIVE_ACCESS_TOKEN_MISSING","emit","available","length","subscribeToFilesWithSameName","subscriber","push","remove","filter","s","isCloudAvailable","_GoogleDriveApiClient","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","rootDirectoryId","FILE_NOT_FOUND","PATH_IS_DIRECTORY","e","_e$json","_e$json$error","json","error","status","AUTHENTICATION_FAILED","UNKNOWN","fileExists","code","appendToFile","data","fileId","prevContent","getText","uploader","newMultipartUploader","setData","TEXT","setIdOfFileToUpdate","setRequestBody","execute","createFile","overwrite","FILE_ALREADY_EXISTS","listFiles","allFiles","Array","from","Set","createDirectory","newMetadataOnlyUploader","readFile","content","downloadFile","_path","_scope","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":["CloudStorageErrorCode","CloudStorageError","MimeTypes","DeviceEventEmitter","GoogleDriveApiClient","GoogleDriveHttpError","GoogleDrive","drive","throwOnFilesWithSameName","constructor","filesWithSameNameSubscribers","Proxy","get","target","prop","allowedFunctions","includes","toString","accessToken","length","GOOGLE_DRIVE_ACCESS_TOKEN_MISSING","emit","available","subscribeToFilesWithSameName","subscriber","push","remove","filter","s","isCloudAvailable","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","listFiles","file","checkIfMultipleFilesWithSameName","parentDirectoryId","possibleFiles","f2","map","join","MULTIPLE_FILES_SAME_NAME","forEach","fileIds","getFileId","throwIf","arguments","undefined","rootDirectoryId","FILE_NOT_FOUND","PATH_IS_DIRECTORY","e","_e$json","_e$json$error","json","error","status","AUTHENTICATION_FAILED","UNKNOWN","fileExists","code","appendToFile","data","fileId","prevContent","getFileText","updateFile","body","TEXT","createFile","overwrite","FILE_ALREADY_EXISTS","allFiles","Array","from","Set","createDirectory","readFile","content","downloadFile","_path","_scope","deleteFile","deleteDirectory","recursive","filesInDirectory","DELETE_ERROR","statFile","getFile","size","birthtimeMs","Date","createdTime","getTime","mtimeMs","modifiedTime","isDirectory","isFile"],"sourceRoot":"../../../src","sources":["google-drive/index.ts"],"mappings":"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"}
@@ -1,2 +1,10 @@
1
-
1
+ export let MimeTypes = /*#__PURE__*/function (MimeTypes) {
2
+ MimeTypes["BINARY"] = "application/octet-stream";
3
+ MimeTypes["CSV"] = "text/csv";
4
+ MimeTypes["FOLDER"] = "application/vnd.google-apps.folder";
5
+ MimeTypes["JSON"] = "application/json";
6
+ MimeTypes["PDF"] = "application/pdf";
7
+ MimeTypes["TEXT"] = "text/plain";
8
+ return MimeTypes;
9
+ }({});
2
10
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../src","sources":["google-drive/types.ts"],"mappings":""}
1
+ {"version":3,"names":["MimeTypes"],"sourceRoot":"../../../src","sources":["google-drive/types.ts"],"mappings":"AAEA,WAAYA,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA"}
@@ -1,7 +1,9 @@
1
1
  export let CloudStorageErrorCode = /*#__PURE__*/function (CloudStorageErrorCode) {
2
2
  CloudStorageErrorCode["FILE_NOT_FOUND"] = "ERR_FILE_NOT_FOUND";
3
+ CloudStorageErrorCode["PATH_IS_FILE"] = "ERR_PATH_IS_FILE";
3
4
  CloudStorageErrorCode["PATH_IS_DIRECTORY"] = "ERR_PATH_IS_DIRECTORY";
4
5
  CloudStorageErrorCode["DIRECTORY_NOT_FOUND"] = "ERR_DIRECTORY_NOT_FOUND";
6
+ CloudStorageErrorCode["DIRECTORY_NOT_EMPTY"] = "ERR_DIRECTORY_NOT_EMPTY";
5
7
  CloudStorageErrorCode["FILE_ALREADY_EXISTS"] = "ERR_FILE_EXISTS";
6
8
  CloudStorageErrorCode["MULTIPLE_FILES_SAME_NAME"] = "ERR_MULTIPLE_FILES_SAME_NAME";
7
9
  CloudStorageErrorCode["AUTHENTICATION_FAILED"] = "ERR_AUTHENTICATION_FAILED";
@@ -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;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;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA"}
@@ -2,8 +2,8 @@ import { CloudStorageScope, type CloudStorageFileStat } from './types/main';
2
2
  declare const RNCloudStorage: {
3
3
  getDefaultScope: () => CloudStorageScope;
4
4
  setDefaultScope: (scope: CloudStorageScope) => CloudStorageScope;
5
- getGoogleDriveAccessToken: () => string | undefined;
6
- setGoogleDriveAccessToken: (accessToken: string) => string;
5
+ getGoogleDriveAccessToken: () => string | null;
6
+ setGoogleDriveAccessToken: (accessToken: string | null) => string | null;
7
7
  setThrowOnFilesWithSameName: (enable: boolean) => boolean;
8
8
  subscribeToFilesWithSameName: (subscriber: ({ path, fileIds }: {
9
9
  path: string;
@@ -75,6 +75,16 @@ declare const RNCloudStorage: {
75
75
  * @returns A promise that resolves when the file has been deleted.
76
76
  */
77
77
  unlink: (path: string, scope?: CloudStorageScope) => Promise<void>;
78
+ /**
79
+ * Deletes the directory at the given path.
80
+ * @param path The directory to delete.
81
+ * @param options Options for the delete operation. Defaults to { recursive: false }.
82
+ * @param scope The directory scope the path is in. Defaults to the set default scope.
83
+ * @returns A promise that resolves when the directory has been deleted.
84
+ */
85
+ rmdir: (path: string, options?: {
86
+ recursive?: boolean;
87
+ }, scope?: CloudStorageScope) => Promise<void>;
78
88
  /**
79
89
  * Gets the size, creation time, and modification time of the file at the given path.
80
90
  * @param path The file to stat.
@@ -1 +1 @@
1
- {"version":3,"file":"RNCloudStorage.d.ts","sourceRoot":"","sources":["../../src/RNCloudStorage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAM5E,QAAA,MAAM,cAAc;;6BAEO,iBAAiB;;6CAED,MAAM;0CACT,OAAO;;;;;;;IAS7C;;;;OAIG;4BACyB,QAAQ,OAAO,CAAC;IAI5C;;;;;;OAMG;uBACgB,MAAM,QAAQ,MAAM,UAAU,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAIlF;;;;;OAKG;mBACY,MAAM,UAAU,iBAAiB,KAAG,QAAQ,OAAO,CAAC;IAInE;;;;;;OAMG;sBACe,MAAM,QAAQ,MAAM,UAAU,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAIjF;;;;;OAKG;kBACW,MAAM,UAAU,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAI/D;;;;;OAKG;oBACa,MAAM,UAAU,iBAAiB,KAAG,QAAQ,MAAM,EAAE,CAAC;IAIrE;;;;;OAKG;qBACc,MAAM,UAAU,iBAAiB,KAAG,QAAQ,MAAM,CAAC;IAIpE;;;;;OAKG;yBACkB,MAAM,UAAU,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAItE;;;;;OAKG;mBACY,MAAM,UAAU,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAIhE;;;;;OAKG;iBACgB,MAAM,UAAU,iBAAiB,KAAG,QAAQ,oBAAoB,CAAC;CAWrF,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"RNCloudStorage.d.ts","sourceRoot":"","sources":["../../src/RNCloudStorage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAM5E,QAAA,MAAM,cAAc;;6BAEO,iBAAiB;;6CAED,MAAM,GAAG,IAAI;0CAChB,OAAO;;;;;;;IAS7C;;;;OAIG;4BACyB,QAAQ,OAAO,CAAC;IAI5C;;;;;;OAMG;uBACgB,MAAM,QAAQ,MAAM,UAAU,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAIlF;;;;;OAKG;mBACY,MAAM,UAAU,iBAAiB,KAAG,QAAQ,OAAO,CAAC;IAInE;;;;;;OAMG;sBACe,MAAM,QAAQ,MAAM,UAAU,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAIjF;;;;;OAKG;kBACW,MAAM,UAAU,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAI/D;;;;;OAKG;oBACa,MAAM,UAAU,iBAAiB,KAAG,QAAQ,MAAM,EAAE,CAAC;IAIrE;;;;;OAKG;qBACc,MAAM,UAAU,iBAAiB,KAAG,QAAQ,MAAM,CAAC;IAIpE;;;;;OAKG;yBACkB,MAAM,UAAU,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAItE;;;;;OAKG;mBACY,MAAM,UAAU,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAIhE;;;;;;OAMG;kBACW,MAAM,YAAY;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,UAAU,iBAAiB,KAAG,QAAQ,IAAI,CAAC;IAIlG;;;;;OAKG;iBACgB,MAAM,UAAU,iBAAiB,KAAG,QAAQ,oBAAoB,CAAC;CAWrF,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { type GoogleDriveFile, type GoogleDriveFileSpace } from './types';
2
+ export declare class GoogleDriveHttpError extends Error {
3
+ status: number;
4
+ json: any;
5
+ constructor(message: string, status: number, json: any);
6
+ }
7
+ export default class GoogleDriveApiClient {
8
+ accessToken: string;
9
+ constructor(accessToken?: string);
10
+ private buildQueryString;
11
+ private request;
12
+ private buildMultiPartBody;
13
+ listFiles(space: GoogleDriveFileSpace): Promise<GoogleDriveFile[]>;
14
+ getFile(fileId: string): Promise<GoogleDriveFile>;
15
+ getFileText(fileId: string): Promise<string>;
16
+ deleteFile(fileId: string): Promise<void>;
17
+ createFile(metadata: {
18
+ name: string;
19
+ parents?: string[];
20
+ }, media: {
21
+ mimeType: string;
22
+ body: string;
23
+ }): Promise<void>;
24
+ createDirectory(metadata: {
25
+ name: string;
26
+ parents?: string[];
27
+ }): Promise<void>;
28
+ updateFile(fileId: string, media: {
29
+ mimeType: string;
30
+ body: string;
31
+ }): Promise<void>;
32
+ }
33
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/google-drive/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAG1B,MAAM,SAAS,CAAC;AAMjB,qBAAa,oBAAqB,SAAQ,KAAK;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;gBAEL,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;CAKvD;AAID,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAChC,WAAW,EAAE,MAAM,CAAC;gBAEf,WAAW,GAAE,MAAW;IAIpC,OAAO,CAAC,gBAAgB;YAeV,OAAO;IAqCrB,OAAO,CAAC,kBAAkB;IAab,SAAS,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAoBlE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IASjD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzC,UAAU,CACrB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAC9C,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,IAAI,CAAC;IAeH,eAAe,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9E,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAYlG"}