react-native-cloud-storage 0.4.2 → 0.5.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.
- package/lib/commonjs/RNCloudStorage.js +10 -0
- package/lib/commonjs/RNCloudStorage.js.map +1 -1
- package/lib/commonjs/google-drive/index.js +76 -19
- package/lib/commonjs/google-drive/index.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types/native.js +2 -0
- package/lib/commonjs/types/native.js.map +1 -1
- package/lib/module/RNCloudStorage.js +10 -0
- package/lib/module/RNCloudStorage.js.map +1 -1
- package/lib/module/google-drive/index.js +77 -20
- package/lib/module/google-drive/index.js.map +1 -1
- package/lib/module/index.js +1 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/types/native.js +2 -0
- package/lib/module/types/native.js.map +1 -1
- package/lib/typescript/RNCloudStorage.d.ts +7 -0
- package/lib/typescript/RNCloudStorage.d.ts.map +1 -1
- package/lib/typescript/google-drive/index.d.ts +13 -2
- package/lib/typescript/google-drive/index.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/types/native.d.ts +2 -0
- package/lib/typescript/types/native.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/RNCloudStorage.ts +10 -0
- package/src/google-drive/index.ts +91 -18
- package/src/index.ts +1 -2
- package/src/types/native.ts +2 -0
|
@@ -6,11 +6,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _createRNCloudStorage = _interopRequireDefault(require("./createRNCloudStorage"));
|
|
8
8
|
var _googleDrive = _interopRequireDefault(require("./google-drive"));
|
|
9
|
+
var _reactNative = require("react-native");
|
|
9
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
11
|
const nativeInstance = (0, _createRNCloudStorage.default)();
|
|
11
12
|
const RNCloudStorage = {
|
|
12
13
|
getGoogleDriveAccessToken: () => _googleDrive.default.accessToken,
|
|
13
14
|
setGoogleDriveAccessToken: accessToken => _googleDrive.default.accessToken = accessToken,
|
|
15
|
+
setThrowOnFilesWithSameName: enable => _googleDrive.default.throwOnFilesWithSameName = enable,
|
|
16
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
17
|
+
subscribeToFilesWithSameName: _reactNative.Platform.OS === 'ios' ?
|
|
18
|
+
// @ts-expect-error - subscriber is undefined; just a mock
|
|
19
|
+
subscriber => ({
|
|
20
|
+
remove: () => {}
|
|
21
|
+
}) : nativeInstance.subscribeToFilesWithSameName.bind(nativeInstance),
|
|
22
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
23
|
+
|
|
14
24
|
/**
|
|
15
25
|
* Tests whether or not the cloud storage is available. Always returns true for Google Drive. iCloud may be
|
|
16
26
|
* unavailable right after app launch or if the user is not logged in.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_createRNCloudStorage","_interopRequireDefault","require","_googleDrive","obj","__esModule","default","nativeInstance","createRNCloudStorage","RNCloudStorage","getGoogleDriveAccessToken","GoogleDriveApiClient","accessToken","setGoogleDriveAccessToken","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;
|
|
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"}
|
|
@@ -10,12 +10,15 @@ var _CloudStorageError = _interopRequireDefault(require("../utils/CloudStorageEr
|
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
11
|
class GoogleDriveApiClient {
|
|
12
12
|
static drive = new _reactNativeGoogleDriveApiWrapperJs.GDrive();
|
|
13
|
+
static throwOnFilesWithSameName = false;
|
|
13
14
|
constructor() {
|
|
15
|
+
this.filesWithSameNameSubscribers = [];
|
|
14
16
|
GoogleDriveApiClient.drive.fetchTimeout = 3000;
|
|
15
17
|
return new Proxy(this, {
|
|
16
18
|
// before calling any function, check if the access token is set
|
|
17
19
|
get(target, prop) {
|
|
18
|
-
|
|
20
|
+
const allowedFunctions = ['isCloudAvailable', 'subscribeToFilesWithSameName'];
|
|
21
|
+
if (typeof target[prop] === 'function' && !allowedFunctions.includes(prop.toString())) {
|
|
19
22
|
if (!GoogleDriveApiClient.drive.accessToken) {
|
|
20
23
|
throw new _CloudStorageError.default(`Google Drive access token is not set, cannot call function ${prop.toString()}`, _native.CloudStorageErrorCode.GOOGLE_DRIVE_ACCESS_TOKEN_MISSING);
|
|
21
24
|
}
|
|
@@ -32,6 +35,14 @@ class GoogleDriveApiClient {
|
|
|
32
35
|
static get accessToken() {
|
|
33
36
|
return GoogleDriveApiClient.drive.accessToken;
|
|
34
37
|
}
|
|
38
|
+
subscribeToFilesWithSameName(subscriber) {
|
|
39
|
+
this.filesWithSameNameSubscribers.push(subscriber);
|
|
40
|
+
return {
|
|
41
|
+
remove: () => {
|
|
42
|
+
this.filesWithSameNameSubscribers = this.filesWithSameNameSubscribers.filter(s => s !== subscriber);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
35
46
|
isCloudAvailable = async () => {
|
|
36
47
|
var _GoogleDriveApiClient;
|
|
37
48
|
return !!((_GoogleDriveApiClient = GoogleDriveApiClient.accessToken) !== null && _GoogleDriveApiClient !== void 0 && _GoogleDriveApiClient.length);
|
|
@@ -92,23 +103,55 @@ class GoogleDriveApiClient {
|
|
|
92
103
|
});
|
|
93
104
|
return files.files;
|
|
94
105
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (
|
|
104
|
-
|
|
105
|
-
and the first parent has an id which does not exist in the files array */
|
|
106
|
-
file = files.find(f => f.name === filename && !files.find(f2 => f2.id === f.parents[0]));
|
|
106
|
+
checkIfMultipleFilesWithSameName(path, files, filename, parentDirectoryId) {
|
|
107
|
+
let possibleFiles;
|
|
108
|
+
if (parentDirectoryId) {
|
|
109
|
+
possibleFiles = files.filter(f => f.name === filename && f.parents[0] === parentDirectoryId);
|
|
110
|
+
} else {
|
|
111
|
+
possibleFiles = files.filter(f => f.name === filename && !files.find(f2 => f2.id === f.parents[0]));
|
|
112
|
+
}
|
|
113
|
+
if (possibleFiles.length <= 1) return;
|
|
114
|
+
if (GoogleDriveApiClient.throwOnFilesWithSameName) {
|
|
115
|
+
throw new _CloudStorageError.default(`Multiple files with the same name found at path ${path}: ${possibleFiles.map(f => f.id).join(', ')}`, _native.CloudStorageErrorCode.MULTIPLE_FILES_SAME_NAME);
|
|
107
116
|
} else {
|
|
108
|
-
|
|
117
|
+
this.filesWithSameNameSubscribers.forEach(s => s({
|
|
118
|
+
path,
|
|
119
|
+
fileIds: possibleFiles.map(f => f.id)
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async getFileId(path, scope) {
|
|
124
|
+
try {
|
|
125
|
+
const files = await this.listFiles(scope);
|
|
126
|
+
const {
|
|
127
|
+
directories,
|
|
128
|
+
filename
|
|
129
|
+
} = this.resolvePathToDirectories(path);
|
|
130
|
+
const parentDirectoryId = this.findParentDirectoryId(files, directories);
|
|
131
|
+
let file;
|
|
132
|
+
if (parentDirectoryId === null) {
|
|
133
|
+
this.checkIfMultipleFilesWithSameName(path, files, filename, null);
|
|
134
|
+
/* when the file is supposed to be in the root directory, we need to get the file where the name is the filename
|
|
135
|
+
and the first parent has an id which does not exist in the files array */
|
|
136
|
+
file = files.find(f => f.name === filename && !files.find(f2 => f2.id === f.parents[0]));
|
|
137
|
+
} else {
|
|
138
|
+
this.checkIfMultipleFilesWithSameName(path, files, filename, parentDirectoryId);
|
|
139
|
+
file = files.find(f => f.name === filename && f.parents[0] === parentDirectoryId);
|
|
140
|
+
}
|
|
141
|
+
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);
|
|
144
|
+
}
|
|
145
|
+
return file.id;
|
|
146
|
+
} catch (e) {
|
|
147
|
+
var _e$json, _e$json$error;
|
|
148
|
+
if (e instanceof _reactNativeGoogleDriveApiWrapperJs.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') {
|
|
149
|
+
throw new _CloudStorageError.default(`Could not authenticate with Google Drive`, _native.CloudStorageErrorCode.AUTHENTICATION_FAILED, e.json);
|
|
150
|
+
} else {
|
|
151
|
+
if (e instanceof _CloudStorageError.default) throw e;
|
|
152
|
+
throw new _CloudStorageError.default(`Could not get file id for path ${path}`, _native.CloudStorageErrorCode.UNKNOWN, e);
|
|
153
|
+
}
|
|
109
154
|
}
|
|
110
|
-
if (!file) throw new _CloudStorageError.default(`File not found`, _native.CloudStorageErrorCode.FILE_NOT_FOUND);
|
|
111
|
-
return file.id;
|
|
112
155
|
}
|
|
113
156
|
async fileExists(path, scope) {
|
|
114
157
|
try {
|
|
@@ -124,7 +167,22 @@ class GoogleDriveApiClient {
|
|
|
124
167
|
try {
|
|
125
168
|
fileId = await this.getFileId(path, scope);
|
|
126
169
|
} catch (e) {
|
|
127
|
-
|
|
170
|
+
if (e instanceof _CloudStorageError.default && e.code === _native.CloudStorageErrorCode.FILE_NOT_FOUND) {
|
|
171
|
+
/* do nothing, simply create the file */
|
|
172
|
+
} else {
|
|
173
|
+
throw e;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
} else {
|
|
177
|
+
try {
|
|
178
|
+
await this.getFileId(path, scope);
|
|
179
|
+
throw new _CloudStorageError.default(`File ${path} already exists`, _native.CloudStorageErrorCode.FILE_ALREADY_EXISTS);
|
|
180
|
+
} catch (e) {
|
|
181
|
+
if (e instanceof _CloudStorageError.default && e.code === _native.CloudStorageErrorCode.FILE_NOT_FOUND) {
|
|
182
|
+
/* do nothing, simply create the file */
|
|
183
|
+
} else {
|
|
184
|
+
throw e;
|
|
185
|
+
}
|
|
128
186
|
}
|
|
129
187
|
}
|
|
130
188
|
const uploader = GoogleDriveApiClient.drive.files.newMultipartUploader().setData(data, _reactNativeGoogleDriveApiWrapperJs.MimeTypes.TEXT);
|
|
@@ -165,6 +223,5 @@ class GoogleDriveApiClient {
|
|
|
165
223
|
};
|
|
166
224
|
}
|
|
167
225
|
}
|
|
168
|
-
|
|
169
|
-
exports.default = _default;
|
|
226
|
+
exports.default = GoogleDriveApiClient;
|
|
170
227
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeGoogleDriveApiWrapperJs","require","_native","_CloudStorageError","_interopRequireDefault","obj","__esModule","default","GoogleDriveApiClient","drive","GDrive","constructor","fetchTimeout","Proxy","get","target","prop","accessToken","CloudStorageError","toString","CloudStorageErrorCode","GOOGLE_DRIVE_ACCESS_TOKEN_MISSING","isCloudAvailable","_GoogleDriveApiClient","length","getRootDirectory","scope","resolvePathToDirectories","path","startsWith","slice","endsWith","directories","split","actualFilename","pop","filename","findParentDirectoryId","files","directoryTree","possibleTopDirectories","filter","f","mimeType","MimeTypes","FOLDER","name","topDirectoryId","id","possibleTopDirectory","find","parents","DIRECTORY_NOT_FOUND","currentDirectoryId","i","currentDirectory","nextDirectory","listFiles","list","spaces","fields","getFileId","parentDirectoryId","file","f2","FILE_NOT_FOUND","fileExists","e","code","createFile","data","overwrite","fileId","uploader","newMultipartUploader","setData","TEXT","setIdOfFileToUpdate","setRequestBody","undefined","execute","readFile","content","getText","deleteFile","delete","statFile","size","birthtimeMs","Date","createdTime","getTime","mtimeMs","modifiedTime","isDirectory","isFile","_default","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","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 +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,
|
|
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"}
|
|
@@ -8,6 +8,8 @@ let CloudStorageErrorCode = /*#__PURE__*/function (CloudStorageErrorCode) {
|
|
|
8
8
|
CloudStorageErrorCode["FILE_NOT_FOUND"] = "ERR_FILE_NOT_FOUND";
|
|
9
9
|
CloudStorageErrorCode["DIRECTORY_NOT_FOUND"] = "ERR_NO_DIRECTORY_FOUND";
|
|
10
10
|
CloudStorageErrorCode["FILE_ALREADY_EXISTS"] = "ERR_FILE_EXISTS";
|
|
11
|
+
CloudStorageErrorCode["MULTIPLE_FILES_SAME_NAME"] = "ERR_MULTIPLE_FILES_SAME_NAME";
|
|
12
|
+
CloudStorageErrorCode["AUTHENTICATION_FAILED"] = "ERR_AUTHENTICATION_FAILED";
|
|
11
13
|
CloudStorageErrorCode["WRITE_ERROR"] = "ERR_WRITE_ERROR";
|
|
12
14
|
CloudStorageErrorCode["READ_ERROR"] = "ERR_READ_ERROR";
|
|
13
15
|
CloudStorageErrorCode["DELETE_ERROR"] = "ERR_DELETE_ERROR";
|
|
@@ -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;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;EAAA,OAArBA,qBAAqB;AAAA;AAAAC,OAAA,CAAAD,qBAAA,GAAAA,qBAAA"}
|
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import createRNCloudStorage from './createRNCloudStorage';
|
|
2
2
|
import GoogleDriveApiClient from './google-drive';
|
|
3
|
+
import { Platform } from 'react-native';
|
|
3
4
|
const nativeInstance = createRNCloudStorage();
|
|
4
5
|
const RNCloudStorage = {
|
|
5
6
|
getGoogleDriveAccessToken: () => GoogleDriveApiClient.accessToken,
|
|
6
7
|
setGoogleDriveAccessToken: accessToken => GoogleDriveApiClient.accessToken = accessToken,
|
|
8
|
+
setThrowOnFilesWithSameName: enable => GoogleDriveApiClient.throwOnFilesWithSameName = enable,
|
|
9
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
10
|
+
subscribeToFilesWithSameName: Platform.OS === 'ios' ?
|
|
11
|
+
// @ts-expect-error - subscriber is undefined; just a mock
|
|
12
|
+
subscriber => ({
|
|
13
|
+
remove: () => {}
|
|
14
|
+
}) : nativeInstance.subscribeToFilesWithSameName.bind(nativeInstance),
|
|
15
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
16
|
+
|
|
7
17
|
/**
|
|
8
18
|
* Tests whether or not the cloud storage is available. Always returns true for Google Drive. iCloud may be
|
|
9
19
|
* unavailable right after app launch or if the user is not logged in.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createRNCloudStorage","GoogleDriveApiClient","nativeInstance","RNCloudStorage","getGoogleDriveAccessToken","accessToken","setGoogleDriveAccessToken","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;
|
|
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,14 +1,17 @@
|
|
|
1
|
-
import { GDrive, MimeTypes } from 'react-native-google-drive-api-wrapper-js';
|
|
1
|
+
import { GDrive, HttpError, MimeTypes } from 'react-native-google-drive-api-wrapper-js';
|
|
2
2
|
import { CloudStorageErrorCode } from '../types/native';
|
|
3
3
|
import CloudStorageError from '../utils/CloudStorageError';
|
|
4
|
-
class GoogleDriveApiClient {
|
|
4
|
+
export default class GoogleDriveApiClient {
|
|
5
5
|
static drive = new GDrive();
|
|
6
|
+
static throwOnFilesWithSameName = false;
|
|
6
7
|
constructor() {
|
|
8
|
+
this.filesWithSameNameSubscribers = [];
|
|
7
9
|
GoogleDriveApiClient.drive.fetchTimeout = 3000;
|
|
8
10
|
return new Proxy(this, {
|
|
9
11
|
// before calling any function, check if the access token is set
|
|
10
12
|
get(target, prop) {
|
|
11
|
-
|
|
13
|
+
const allowedFunctions = ['isCloudAvailable', 'subscribeToFilesWithSameName'];
|
|
14
|
+
if (typeof target[prop] === 'function' && !allowedFunctions.includes(prop.toString())) {
|
|
12
15
|
if (!GoogleDriveApiClient.drive.accessToken) {
|
|
13
16
|
throw new CloudStorageError(`Google Drive access token is not set, cannot call function ${prop.toString()}`, CloudStorageErrorCode.GOOGLE_DRIVE_ACCESS_TOKEN_MISSING);
|
|
14
17
|
}
|
|
@@ -25,6 +28,14 @@ class GoogleDriveApiClient {
|
|
|
25
28
|
static get accessToken() {
|
|
26
29
|
return GoogleDriveApiClient.drive.accessToken;
|
|
27
30
|
}
|
|
31
|
+
subscribeToFilesWithSameName(subscriber) {
|
|
32
|
+
this.filesWithSameNameSubscribers.push(subscriber);
|
|
33
|
+
return {
|
|
34
|
+
remove: () => {
|
|
35
|
+
this.filesWithSameNameSubscribers = this.filesWithSameNameSubscribers.filter(s => s !== subscriber);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
28
39
|
isCloudAvailable = async () => {
|
|
29
40
|
var _GoogleDriveApiClient;
|
|
30
41
|
return !!((_GoogleDriveApiClient = GoogleDriveApiClient.accessToken) !== null && _GoogleDriveApiClient !== void 0 && _GoogleDriveApiClient.length);
|
|
@@ -85,23 +96,55 @@ class GoogleDriveApiClient {
|
|
|
85
96
|
});
|
|
86
97
|
return files.files;
|
|
87
98
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if (
|
|
97
|
-
|
|
98
|
-
and the first parent has an id which does not exist in the files array */
|
|
99
|
-
file = files.find(f => f.name === filename && !files.find(f2 => f2.id === f.parents[0]));
|
|
99
|
+
checkIfMultipleFilesWithSameName(path, files, filename, parentDirectoryId) {
|
|
100
|
+
let possibleFiles;
|
|
101
|
+
if (parentDirectoryId) {
|
|
102
|
+
possibleFiles = files.filter(f => f.name === filename && f.parents[0] === parentDirectoryId);
|
|
103
|
+
} else {
|
|
104
|
+
possibleFiles = files.filter(f => f.name === filename && !files.find(f2 => f2.id === f.parents[0]));
|
|
105
|
+
}
|
|
106
|
+
if (possibleFiles.length <= 1) return;
|
|
107
|
+
if (GoogleDriveApiClient.throwOnFilesWithSameName) {
|
|
108
|
+
throw new CloudStorageError(`Multiple files with the same name found at path ${path}: ${possibleFiles.map(f => f.id).join(', ')}`, CloudStorageErrorCode.MULTIPLE_FILES_SAME_NAME);
|
|
100
109
|
} else {
|
|
101
|
-
|
|
110
|
+
this.filesWithSameNameSubscribers.forEach(s => s({
|
|
111
|
+
path,
|
|
112
|
+
fileIds: possibleFiles.map(f => f.id)
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
async getFileId(path, scope) {
|
|
117
|
+
try {
|
|
118
|
+
const files = await this.listFiles(scope);
|
|
119
|
+
const {
|
|
120
|
+
directories,
|
|
121
|
+
filename
|
|
122
|
+
} = this.resolvePathToDirectories(path);
|
|
123
|
+
const parentDirectoryId = this.findParentDirectoryId(files, directories);
|
|
124
|
+
let file;
|
|
125
|
+
if (parentDirectoryId === null) {
|
|
126
|
+
this.checkIfMultipleFilesWithSameName(path, files, filename, null);
|
|
127
|
+
/* when the file is supposed to be in the root directory, we need to get the file where the name is the filename
|
|
128
|
+
and the first parent has an id which does not exist in the files array */
|
|
129
|
+
file = files.find(f => f.name === filename && !files.find(f2 => f2.id === f.parents[0]));
|
|
130
|
+
} else {
|
|
131
|
+
this.checkIfMultipleFilesWithSameName(path, files, filename, parentDirectoryId);
|
|
132
|
+
file = files.find(f => f.name === filename && f.parents[0] === parentDirectoryId);
|
|
133
|
+
}
|
|
134
|
+
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);
|
|
137
|
+
}
|
|
138
|
+
return file.id;
|
|
139
|
+
} catch (e) {
|
|
140
|
+
var _e$json, _e$json$error;
|
|
141
|
+
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') {
|
|
142
|
+
throw new CloudStorageError(`Could not authenticate with Google Drive`, CloudStorageErrorCode.AUTHENTICATION_FAILED, e.json);
|
|
143
|
+
} else {
|
|
144
|
+
if (e instanceof CloudStorageError) throw e;
|
|
145
|
+
throw new CloudStorageError(`Could not get file id for path ${path}`, CloudStorageErrorCode.UNKNOWN, e);
|
|
146
|
+
}
|
|
102
147
|
}
|
|
103
|
-
if (!file) throw new CloudStorageError(`File not found`, CloudStorageErrorCode.FILE_NOT_FOUND);
|
|
104
|
-
return file.id;
|
|
105
148
|
}
|
|
106
149
|
async fileExists(path, scope) {
|
|
107
150
|
try {
|
|
@@ -117,7 +160,22 @@ class GoogleDriveApiClient {
|
|
|
117
160
|
try {
|
|
118
161
|
fileId = await this.getFileId(path, scope);
|
|
119
162
|
} catch (e) {
|
|
120
|
-
|
|
163
|
+
if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) {
|
|
164
|
+
/* do nothing, simply create the file */
|
|
165
|
+
} else {
|
|
166
|
+
throw e;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
} else {
|
|
170
|
+
try {
|
|
171
|
+
await this.getFileId(path, scope);
|
|
172
|
+
throw new CloudStorageError(`File ${path} already exists`, CloudStorageErrorCode.FILE_ALREADY_EXISTS);
|
|
173
|
+
} catch (e) {
|
|
174
|
+
if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) {
|
|
175
|
+
/* do nothing, simply create the file */
|
|
176
|
+
} else {
|
|
177
|
+
throw e;
|
|
178
|
+
}
|
|
121
179
|
}
|
|
122
180
|
}
|
|
123
181
|
const uploader = GoogleDriveApiClient.drive.files.newMultipartUploader().setData(data, MimeTypes.TEXT);
|
|
@@ -158,5 +216,4 @@ class GoogleDriveApiClient {
|
|
|
158
216
|
};
|
|
159
217
|
}
|
|
160
218
|
}
|
|
161
|
-
export default GoogleDriveApiClient;
|
|
162
219
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GDrive","MimeTypes","CloudStorageErrorCode","CloudStorageError","GoogleDriveApiClient","drive","constructor","fetchTimeout","Proxy","get","target","prop","accessToken","toString","GOOGLE_DRIVE_ACCESS_TOKEN_MISSING","isCloudAvailable","_GoogleDriveApiClient","length","getRootDirectory","scope","resolvePathToDirectories","path","startsWith","slice","endsWith","directories","split","actualFilename","pop","filename","findParentDirectoryId","files","directoryTree","possibleTopDirectories","filter","f","mimeType","FOLDER","name","topDirectoryId","id","possibleTopDirectory","find","parents","DIRECTORY_NOT_FOUND","currentDirectoryId","i","currentDirectory","nextDirectory","listFiles","list","spaces","fields","getFileId","parentDirectoryId","file","f2","FILE_NOT_FOUND","fileExists","e","code","createFile","data","overwrite","fileId","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","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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"}
|
package/lib/module/index.js
CHANGED
|
@@ -4,7 +4,6 @@ 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 };
|
|
8
|
-
export { CloudStorageErrorCode };
|
|
7
|
+
export { CloudStorageError, CloudStorageErrorCode };
|
|
9
8
|
export default RNCloudStorage;
|
|
10
9
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -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
|
|
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"}
|
|
@@ -2,6 +2,8 @@ export let CloudStorageErrorCode = /*#__PURE__*/function (CloudStorageErrorCode)
|
|
|
2
2
|
CloudStorageErrorCode["FILE_NOT_FOUND"] = "ERR_FILE_NOT_FOUND";
|
|
3
3
|
CloudStorageErrorCode["DIRECTORY_NOT_FOUND"] = "ERR_NO_DIRECTORY_FOUND";
|
|
4
4
|
CloudStorageErrorCode["FILE_ALREADY_EXISTS"] = "ERR_FILE_EXISTS";
|
|
5
|
+
CloudStorageErrorCode["MULTIPLE_FILES_SAME_NAME"] = "ERR_MULTIPLE_FILES_SAME_NAME";
|
|
6
|
+
CloudStorageErrorCode["AUTHENTICATION_FAILED"] = "ERR_AUTHENTICATION_FAILED";
|
|
5
7
|
CloudStorageErrorCode["WRITE_ERROR"] = "ERR_WRITE_ERROR";
|
|
6
8
|
CloudStorageErrorCode["READ_ERROR"] = "ERR_READ_ERROR";
|
|
7
9
|
CloudStorageErrorCode["DELETE_ERROR"] = "ERR_DELETE_ERROR";
|
|
@@ -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;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;EAAA,OAArBA,qBAAqB;AAAA"}
|
|
@@ -2,6 +2,13 @@ import type { CloudStorageFileStat, CloudStorageScope } from './types/main';
|
|
|
2
2
|
declare const RNCloudStorage: {
|
|
3
3
|
getGoogleDriveAccessToken: () => string | undefined;
|
|
4
4
|
setGoogleDriveAccessToken: (accessToken: string) => string;
|
|
5
|
+
setThrowOnFilesWithSameName: (enable: boolean) => boolean;
|
|
6
|
+
subscribeToFilesWithSameName: (subscriber: ({ path, fileIds }: {
|
|
7
|
+
path: string;
|
|
8
|
+
fileIds: string[];
|
|
9
|
+
}) => void) => {
|
|
10
|
+
remove: () => void;
|
|
11
|
+
};
|
|
5
12
|
/**
|
|
6
13
|
* Tests whether or not the cloud storage is available. Always returns true for Google Drive. iCloud may be
|
|
7
14
|
* unavailable right after app launch or if the user is not logged in.
|
|
@@ -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;
|
|
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,15 +1,27 @@
|
|
|
1
1
|
import type NativeRNCloudStorage from '../types/native';
|
|
2
2
|
import { type NativeRNCloudCloudStorageFileStat, type NativeRNCloudCloudStorageScope } from '../types/native';
|
|
3
|
-
|
|
3
|
+
export default class GoogleDriveApiClient implements NativeRNCloudStorage {
|
|
4
4
|
private static drive;
|
|
5
|
+
static throwOnFilesWithSameName: boolean;
|
|
6
|
+
filesWithSameNameSubscribers: (({ path, fileIds }: {
|
|
7
|
+
path: string;
|
|
8
|
+
fileIds: string[];
|
|
9
|
+
}) => void)[];
|
|
5
10
|
constructor();
|
|
6
11
|
static set accessToken(accessToken: string | undefined);
|
|
7
12
|
static get accessToken(): string | undefined;
|
|
13
|
+
subscribeToFilesWithSameName(subscriber: ({ path, fileIds }: {
|
|
14
|
+
path: string;
|
|
15
|
+
fileIds: string[];
|
|
16
|
+
}) => void): {
|
|
17
|
+
remove: () => void;
|
|
18
|
+
};
|
|
8
19
|
isCloudAvailable: () => Promise<boolean>;
|
|
9
20
|
private getRootDirectory;
|
|
10
21
|
private resolvePathToDirectories;
|
|
11
22
|
private findParentDirectoryId;
|
|
12
23
|
private listFiles;
|
|
24
|
+
private checkIfMultipleFilesWithSameName;
|
|
13
25
|
private getFileId;
|
|
14
26
|
fileExists(path: string, scope: NativeRNCloudCloudStorageScope): Promise<boolean>;
|
|
15
27
|
createFile(path: string, data: string, scope: NativeRNCloudCloudStorageScope, overwrite: boolean): Promise<void>;
|
|
@@ -17,5 +29,4 @@ declare class GoogleDriveApiClient implements NativeRNCloudStorage {
|
|
|
17
29
|
deleteFile(path: string, scope: NativeRNCloudCloudStorageScope): Promise<void>;
|
|
18
30
|
statFile(path: string, scope: NativeRNCloudCloudStorageScope): Promise<NativeRNCloudCloudStorageFileStat>;
|
|
19
31
|
}
|
|
20
|
-
export default GoogleDriveApiClient;
|
|
21
32
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,
|
|
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"}
|
|
@@ -4,7 +4,6 @@ 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 };
|
|
8
|
-
export { CloudStorageErrorCode };
|
|
7
|
+
export { CloudStorageError, CloudStorageErrorCode };
|
|
9
8
|
export default RNCloudStorage;
|
|
10
9
|
//# 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,
|
|
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"}
|
|
@@ -10,6 +10,8 @@ export declare enum CloudStorageErrorCode {
|
|
|
10
10
|
FILE_NOT_FOUND = "ERR_FILE_NOT_FOUND",
|
|
11
11
|
DIRECTORY_NOT_FOUND = "ERR_NO_DIRECTORY_FOUND",
|
|
12
12
|
FILE_ALREADY_EXISTS = "ERR_FILE_EXISTS",
|
|
13
|
+
MULTIPLE_FILES_SAME_NAME = "ERR_MULTIPLE_FILES_SAME_NAME",
|
|
14
|
+
AUTHENTICATION_FAILED = "ERR_AUTHENTICATION_FAILED",
|
|
13
15
|
WRITE_ERROR = "ERR_WRITE_ERROR",
|
|
14
16
|
READ_ERROR = "ERR_READ_ERROR",
|
|
15
17
|
DELETE_ERROR = "ERR_DELETE_ERROR",
|
|
@@ -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,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,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"}
|
package/package.json
CHANGED
package/src/RNCloudStorage.ts
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import createRNCloudStorage from './createRNCloudStorage';
|
|
2
2
|
import GoogleDriveApiClient from './google-drive';
|
|
3
3
|
import type { CloudStorageFileStat, CloudStorageScope } from './types/main';
|
|
4
|
+
import { Platform } from 'react-native';
|
|
4
5
|
|
|
5
6
|
const nativeInstance = createRNCloudStorage();
|
|
7
|
+
|
|
6
8
|
const RNCloudStorage = {
|
|
7
9
|
getGoogleDriveAccessToken: () => GoogleDriveApiClient.accessToken,
|
|
8
10
|
setGoogleDriveAccessToken: (accessToken: string) => (GoogleDriveApiClient.accessToken = accessToken),
|
|
11
|
+
setThrowOnFilesWithSameName: (enable: boolean) => (GoogleDriveApiClient.throwOnFilesWithSameName = enable),
|
|
12
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
13
|
+
subscribeToFilesWithSameName:
|
|
14
|
+
Platform.OS === 'ios'
|
|
15
|
+
? // @ts-expect-error - subscriber is undefined; just a mock
|
|
16
|
+
(subscriber: ({ path, fileIds }: { path: string; fileIds: string[] }) => void) => ({ remove: () => {} })
|
|
17
|
+
: (nativeInstance as GoogleDriveApiClient).subscribeToFilesWithSameName.bind(nativeInstance),
|
|
18
|
+
/* eslint-enable @typescript-eslint/no-unused-vars */
|
|
9
19
|
|
|
10
20
|
/**
|
|
11
21
|
* Tests whether or not the cloud storage is available. Always returns true for Google Drive. iCloud may be
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GDrive, MimeTypes } from 'react-native-google-drive-api-wrapper-js';
|
|
1
|
+
import { GDrive, HttpError, MimeTypes } from 'react-native-google-drive-api-wrapper-js';
|
|
2
2
|
import type NativeRNCloudStorage from '../types/native';
|
|
3
3
|
import {
|
|
4
4
|
CloudStorageErrorCode,
|
|
@@ -8,15 +8,19 @@ import {
|
|
|
8
8
|
import type { GoogleDriveDetailedFile, GoogleDriveFile, GoogleDriveListOperationResponse } from './types';
|
|
9
9
|
import CloudStorageError from '../utils/CloudStorageError';
|
|
10
10
|
|
|
11
|
-
class GoogleDriveApiClient implements NativeRNCloudStorage {
|
|
11
|
+
export default class GoogleDriveApiClient implements NativeRNCloudStorage {
|
|
12
12
|
private static drive: GDrive = new GDrive();
|
|
13
|
+
public static throwOnFilesWithSameName = false;
|
|
14
|
+
public filesWithSameNameSubscribers: (({ path, fileIds }: { path: string; fileIds: string[] }) => void)[];
|
|
13
15
|
|
|
14
16
|
constructor() {
|
|
17
|
+
this.filesWithSameNameSubscribers = [];
|
|
15
18
|
GoogleDriveApiClient.drive.fetchTimeout = 3000;
|
|
16
19
|
return new Proxy(this, {
|
|
17
20
|
// before calling any function, check if the access token is set
|
|
18
21
|
get(target: GoogleDriveApiClient, prop: keyof GoogleDriveApiClient) {
|
|
19
|
-
|
|
22
|
+
const allowedFunctions = ['isCloudAvailable', 'subscribeToFilesWithSameName'];
|
|
23
|
+
if (typeof target[prop] === 'function' && !allowedFunctions.includes(prop.toString())) {
|
|
20
24
|
if (!GoogleDriveApiClient.drive.accessToken) {
|
|
21
25
|
throw new CloudStorageError(
|
|
22
26
|
`Google Drive access token is not set, cannot call function ${prop.toString()}`,
|
|
@@ -39,6 +43,18 @@ class GoogleDriveApiClient implements NativeRNCloudStorage {
|
|
|
39
43
|
return GoogleDriveApiClient.drive.accessToken;
|
|
40
44
|
}
|
|
41
45
|
|
|
46
|
+
public subscribeToFilesWithSameName(subscriber: ({ path, fileIds }: { path: string; fileIds: string[] }) => void): {
|
|
47
|
+
remove: () => void;
|
|
48
|
+
} {
|
|
49
|
+
this.filesWithSameNameSubscribers.push(subscriber);
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
remove: () => {
|
|
53
|
+
this.filesWithSameNameSubscribers = this.filesWithSameNameSubscribers.filter((s) => s !== subscriber);
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
42
58
|
public isCloudAvailable: () => Promise<boolean> = async () => !!GoogleDriveApiClient.accessToken?.length;
|
|
43
59
|
|
|
44
60
|
private getRootDirectory(scope: NativeRNCloudCloudStorageScope): 'drive' | 'appDataFolder' {
|
|
@@ -116,20 +132,63 @@ class GoogleDriveApiClient implements NativeRNCloudStorage {
|
|
|
116
132
|
return files.files;
|
|
117
133
|
}
|
|
118
134
|
|
|
119
|
-
private
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
135
|
+
private checkIfMultipleFilesWithSameName(
|
|
136
|
+
path: string,
|
|
137
|
+
files: GoogleDriveFile[],
|
|
138
|
+
filename: string,
|
|
139
|
+
parentDirectoryId: string | null
|
|
140
|
+
) {
|
|
141
|
+
let possibleFiles: GoogleDriveFile[];
|
|
142
|
+
if (parentDirectoryId) {
|
|
143
|
+
possibleFiles = files.filter((f) => f.name === filename && f.parents![0] === parentDirectoryId);
|
|
144
|
+
} else {
|
|
145
|
+
possibleFiles = files.filter((f) => f.name === filename && !files.find((f2) => f2.id === f.parents![0]));
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (possibleFiles.length <= 1) return;
|
|
149
|
+
|
|
150
|
+
if (GoogleDriveApiClient.throwOnFilesWithSameName) {
|
|
151
|
+
throw new CloudStorageError(
|
|
152
|
+
`Multiple files with the same name found at path ${path}: ${possibleFiles.map((f) => f.id).join(', ')}`,
|
|
153
|
+
CloudStorageErrorCode.MULTIPLE_FILES_SAME_NAME
|
|
154
|
+
);
|
|
128
155
|
} else {
|
|
129
|
-
|
|
156
|
+
this.filesWithSameNameSubscribers.forEach((s) => s({ path, fileIds: possibleFiles.map((f) => f.id) }));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
private async getFileId(path: string, scope: NativeRNCloudCloudStorageScope): Promise<string> {
|
|
161
|
+
try {
|
|
162
|
+
const files = await this.listFiles(scope);
|
|
163
|
+
const { directories, filename } = this.resolvePathToDirectories(path);
|
|
164
|
+
const parentDirectoryId = this.findParentDirectoryId(files, directories);
|
|
165
|
+
let file: GoogleDriveFile | undefined;
|
|
166
|
+
if (parentDirectoryId === null) {
|
|
167
|
+
this.checkIfMultipleFilesWithSameName(path, files, filename, null);
|
|
168
|
+
/* when the file is supposed to be in the root directory, we need to get the file where the name is the filename
|
|
169
|
+
and the first parent has an id which does not exist in the files array */
|
|
170
|
+
file = files.find((f) => f.name === filename && !files.find((f2) => f2.id === f.parents![0]));
|
|
171
|
+
} else {
|
|
172
|
+
this.checkIfMultipleFilesWithSameName(path, files, filename, parentDirectoryId);
|
|
173
|
+
file = files.find((f) => f.name === filename && f.parents![0] === parentDirectoryId);
|
|
174
|
+
}
|
|
175
|
+
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);
|
|
178
|
+
}
|
|
179
|
+
return file.id;
|
|
180
|
+
} catch (e: unknown) {
|
|
181
|
+
if (e instanceof HttpError && e.json?.error?.status === 'UNAUTHENTICATED') {
|
|
182
|
+
throw new CloudStorageError(
|
|
183
|
+
`Could not authenticate with Google Drive`,
|
|
184
|
+
CloudStorageErrorCode.AUTHENTICATION_FAILED,
|
|
185
|
+
e.json
|
|
186
|
+
);
|
|
187
|
+
} else {
|
|
188
|
+
if (e instanceof CloudStorageError) throw e;
|
|
189
|
+
throw new CloudStorageError(`Could not get file id for path ${path}`, CloudStorageErrorCode.UNKNOWN, e);
|
|
190
|
+
}
|
|
130
191
|
}
|
|
131
|
-
if (!file) throw new CloudStorageError(`File not found`, CloudStorageErrorCode.FILE_NOT_FOUND);
|
|
132
|
-
return file.id;
|
|
133
192
|
}
|
|
134
193
|
|
|
135
194
|
async fileExists(path: string, scope: NativeRNCloudCloudStorageScope): Promise<boolean> {
|
|
@@ -153,9 +212,25 @@ class GoogleDriveApiClient implements NativeRNCloudStorage {
|
|
|
153
212
|
try {
|
|
154
213
|
fileId = await this.getFileId(path, scope);
|
|
155
214
|
} catch (e: any) {
|
|
156
|
-
|
|
215
|
+
if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) {
|
|
216
|
+
/* do nothing, simply create the file */
|
|
217
|
+
} else {
|
|
218
|
+
throw e;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
} else {
|
|
222
|
+
try {
|
|
223
|
+
await this.getFileId(path, scope);
|
|
224
|
+
throw new CloudStorageError(`File ${path} already exists`, CloudStorageErrorCode.FILE_ALREADY_EXISTS);
|
|
225
|
+
} catch (e: any) {
|
|
226
|
+
if (e instanceof CloudStorageError && e.code === CloudStorageErrorCode.FILE_NOT_FOUND) {
|
|
227
|
+
/* do nothing, simply create the file */
|
|
228
|
+
} else {
|
|
229
|
+
throw e;
|
|
230
|
+
}
|
|
157
231
|
}
|
|
158
232
|
}
|
|
233
|
+
|
|
159
234
|
const uploader = GoogleDriveApiClient.drive.files.newMultipartUploader().setData(data, MimeTypes.TEXT);
|
|
160
235
|
if (fileId) uploader.setIdOfFileToUpdate(fileId);
|
|
161
236
|
else {
|
|
@@ -199,5 +274,3 @@ class GoogleDriveApiClient implements NativeRNCloudStorage {
|
|
|
199
274
|
};
|
|
200
275
|
}
|
|
201
276
|
}
|
|
202
|
-
|
|
203
|
-
export default GoogleDriveApiClient;
|
package/src/index.ts
CHANGED
|
@@ -5,6 +5,5 @@ export * from './hooks/useCloudFile';
|
|
|
5
5
|
export * from './hooks/useIsCloudAvailable';
|
|
6
6
|
import CloudStorageError from './utils/CloudStorageError';
|
|
7
7
|
|
|
8
|
-
export { CloudStorageError };
|
|
9
|
-
export { CloudStorageErrorCode };
|
|
8
|
+
export { CloudStorageError, CloudStorageErrorCode };
|
|
10
9
|
export default RNCloudStorage;
|
package/src/types/native.ts
CHANGED
|
@@ -12,6 +12,8 @@ export enum CloudStorageErrorCode {
|
|
|
12
12
|
FILE_NOT_FOUND = 'ERR_FILE_NOT_FOUND',
|
|
13
13
|
DIRECTORY_NOT_FOUND = 'ERR_NO_DIRECTORY_FOUND',
|
|
14
14
|
FILE_ALREADY_EXISTS = 'ERR_FILE_EXISTS',
|
|
15
|
+
MULTIPLE_FILES_SAME_NAME = 'ERR_MULTIPLE_FILES_SAME_NAME',
|
|
16
|
+
AUTHENTICATION_FAILED = 'ERR_AUTHENTICATION_FAILED',
|
|
15
17
|
WRITE_ERROR = 'ERR_WRITE_ERROR',
|
|
16
18
|
READ_ERROR = 'ERR_READ_ERROR',
|
|
17
19
|
DELETE_ERROR = 'ERR_DELETE_ERROR',
|