react-native-cloud-storage 1.5.0 → 1.5.1

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 (106) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +5 -6
  3. package/ios/CloudStorage.swift +262 -52
  4. package/ios/CloudStorage.xcodeproj/project.pbxproj +0 -28
  5. package/ios/CloudStorage.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
  6. package/ios/CloudStorage.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  7. package/ios/CloudStorage.xcodeproj/project.xcworkspace/xcuserdata/max.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  8. package/ios/CloudStorage.xcodeproj/xcuserdata/max.xcuserdatad/xcschemes/xcschememanagement.plist +22 -0
  9. package/ios/CloudStorageEventEmitter.swift +4 -4
  10. package/lib/commonjs/RNCloudStorage.js +66 -361
  11. package/lib/commonjs/RNCloudStorage.js.map +1 -1
  12. package/lib/commonjs/createRNCloudStorage.js +48 -0
  13. package/lib/commonjs/createRNCloudStorage.js.map +1 -0
  14. package/lib/commonjs/expo-plugin/types/index.js.map +1 -1
  15. package/lib/commonjs/expo-plugin/withRNCloudStorage.js +3 -2
  16. package/lib/commonjs/expo-plugin/withRNCloudStorage.js.map +1 -1
  17. package/lib/commonjs/expo-plugin/withRNCloudStorageIos.js +7 -4
  18. package/lib/commonjs/expo-plugin/withRNCloudStorageIos.js.map +1 -1
  19. package/lib/commonjs/google-drive/client.js +20 -16
  20. package/lib/commonjs/google-drive/client.js.map +1 -1
  21. package/lib/commonjs/google-drive/index.js +64 -42
  22. package/lib/commonjs/google-drive/index.js.map +1 -1
  23. package/lib/commonjs/google-drive/types.js +2 -1
  24. package/lib/commonjs/google-drive/types.js.map +1 -1
  25. package/lib/commonjs/hooks/useCloudFile.js +17 -14
  26. package/lib/commonjs/hooks/useCloudFile.js.map +1 -1
  27. package/lib/commonjs/hooks/useIsCloudAvailable.js +21 -11
  28. package/lib/commonjs/hooks/useIsCloudAvailable.js.map +1 -1
  29. package/lib/commonjs/index.js +7 -1
  30. package/lib/commonjs/index.js.map +1 -1
  31. package/lib/commonjs/types/main.js +3 -8
  32. package/lib/commonjs/types/main.js.map +1 -1
  33. package/lib/commonjs/types/native.js +3 -3
  34. package/lib/commonjs/types/native.js.map +1 -1
  35. package/lib/commonjs/utils/CloudStorageError.js +2 -1
  36. package/lib/commonjs/utils/CloudStorageError.js.map +1 -1
  37. package/lib/commonjs/utils/helpers.js +15 -8
  38. package/lib/commonjs/utils/helpers.js.map +1 -1
  39. package/lib/module/RNCloudStorage.js +65 -362
  40. package/lib/module/RNCloudStorage.js.map +1 -1
  41. package/lib/module/createRNCloudStorage.js +41 -0
  42. package/lib/module/createRNCloudStorage.js.map +1 -0
  43. package/lib/module/expo-plugin/types/index.js +1 -1
  44. package/lib/module/expo-plugin/types/index.js.map +1 -1
  45. package/lib/module/expo-plugin/withRNCloudStorage.js +0 -2
  46. package/lib/module/expo-plugin/withRNCloudStorage.js.map +1 -1
  47. package/lib/module/expo-plugin/withRNCloudStorageIos.js +5 -5
  48. package/lib/module/expo-plugin/withRNCloudStorageIos.js.map +1 -1
  49. package/lib/module/google-drive/client.js +20 -18
  50. package/lib/module/google-drive/client.js.map +1 -1
  51. package/lib/module/google-drive/index.js +62 -41
  52. package/lib/module/google-drive/index.js.map +1 -1
  53. package/lib/module/google-drive/types.js +0 -2
  54. package/lib/module/google-drive/types.js.map +1 -1
  55. package/lib/module/hooks/useCloudFile.js +16 -15
  56. package/lib/module/hooks/useCloudFile.js.map +1 -1
  57. package/lib/module/hooks/useIsCloudAvailable.js +21 -13
  58. package/lib/module/hooks/useIsCloudAvailable.js.map +1 -1
  59. package/lib/module/index.js +5 -2
  60. package/lib/module/index.js.map +1 -1
  61. package/lib/module/types/main.js +0 -9
  62. package/lib/module/types/main.js.map +1 -1
  63. package/lib/module/types/native.js +1 -4
  64. package/lib/module/types/native.js.map +1 -1
  65. package/lib/module/utils/CloudStorageError.js +0 -2
  66. package/lib/module/utils/CloudStorageError.js.map +1 -1
  67. package/lib/module/utils/helpers.js +13 -8
  68. package/lib/module/utils/helpers.js.map +1 -1
  69. package/lib/typescript/RNCloudStorage.d.ts +39 -159
  70. package/lib/typescript/RNCloudStorage.d.ts.map +1 -1
  71. package/lib/typescript/createRNCloudStorage.d.ts +3 -0
  72. package/lib/typescript/createRNCloudStorage.d.ts.map +1 -0
  73. package/lib/typescript/google-drive/client.d.ts +3 -3
  74. package/lib/typescript/google-drive/client.d.ts.map +1 -1
  75. package/lib/typescript/google-drive/index.d.ts +18 -6
  76. package/lib/typescript/google-drive/index.d.ts.map +1 -1
  77. package/lib/typescript/hooks/useCloudFile.d.ts +7 -4
  78. package/lib/typescript/hooks/useCloudFile.d.ts.map +1 -1
  79. package/lib/typescript/hooks/useIsCloudAvailable.d.ts +2 -3
  80. package/lib/typescript/hooks/useIsCloudAvailable.d.ts.map +1 -1
  81. package/lib/typescript/index.d.ts +4 -0
  82. package/lib/typescript/index.d.ts.map +1 -1
  83. package/lib/typescript/types/main.d.ts +0 -33
  84. package/lib/typescript/types/main.d.ts.map +1 -1
  85. package/lib/typescript/types/native.d.ts +1 -2
  86. package/lib/typescript/types/native.d.ts.map +1 -1
  87. package/lib/typescript/utils/helpers.d.ts +9 -2
  88. package/lib/typescript/utils/helpers.d.ts.map +1 -1
  89. package/package.json +11 -9
  90. package/src/RNCloudStorage.ts +68 -387
  91. package/src/createRNCloudStorage.ts +53 -0
  92. package/src/google-drive/client.ts +7 -8
  93. package/src/google-drive/index.ts +63 -38
  94. package/src/hooks/useCloudFile.ts +16 -13
  95. package/src/hooks/useIsCloudAvailable.ts +25 -12
  96. package/src/index.ts +5 -0
  97. package/src/types/main.ts +0 -38
  98. package/src/types/native.ts +1 -2
  99. package/src/utils/helpers.ts +15 -8
  100. package/ios/Utils/CloudKitUtils.swift +0 -112
  101. package/ios/Utils/CloudStorageError.swift +0 -78
  102. package/ios/Utils/FileUtils.swift +0 -132
  103. package/ios/Utils/Promise.swift +0 -58
  104. package/ios/Utils/Types.swift +0 -36
  105. package/lib/commonjs/package.json +0 -1
  106. package/lib/module/package.json +0 -1
@@ -4,287 +4,129 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _main = require("./types/main");
8
- var _helpers = require("./utils/helpers");
9
7
  var _reactNative = require("react-native");
10
- var _CloudStorageError = _interopRequireDefault(require("./utils/CloudStorageError"));
11
- var _native = require("./types/native");
8
+ var _createRNCloudStorage = _interopRequireDefault(require("./createRNCloudStorage"));
12
9
  var _googleDrive = _interopRequireDefault(require("./google-drive"));
13
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
- const LINKING_ERROR = `The package 'react-native-cloud-storage' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
15
- ios: "- You have run 'pod install'\n",
16
- default: ''
17
- }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
18
-
19
- // proxy NativeModules.CloudStorage to catch any errors thrown by the native module and wrap them in a CloudStorageError
20
- const nativeIosInstance = _reactNative.NativeModules.CloudStorage ? new Proxy(_reactNative.NativeModules.CloudStorage, {
21
- get(target, prop) {
22
- const originalFunction = target[prop];
23
- if (typeof originalFunction === 'function') {
24
- return async (...args) => {
25
- try {
26
- // @ts-expect-error - we can't know the types of the functions and their arguments
27
- return await originalFunction(...args);
28
- } catch (error) {
29
- if (error?.code && Object.values(_native.CloudStorageErrorCode).includes(error.code)) {
30
- throw new _CloudStorageError.default(error?.message || '', error.code);
31
- } else {
32
- throw new _CloudStorageError.default('Unknown error', _native.CloudStorageErrorCode.UNKNOWN, error);
33
- }
34
- }
35
- };
36
- }
37
- return originalFunction;
38
- }
39
- }) : null;
40
- const defaultProviderOptions = {
41
- [_main.CloudStorageProvider.ICloud]: {
42
- scope: _main.CloudStorageScope.AppData
43
- },
44
- [_main.CloudStorageProvider.GoogleDrive]: {
45
- scope: _main.CloudStorageScope.AppData,
46
- accessToken: null,
47
- strictFilenames: false,
48
- timeout: 3000
49
- }
50
- };
51
- class RNCloudStorage {
52
- cloudAvailabilityListeners = [];
53
-
54
- //#region Constructor and configuration
55
- /**
56
- * Creates a new RNCloudStorage instance for the given provider.
57
- * @param provider The provider to create the instance for. Defaults to the default provider for the current platform.
58
- */
59
- constructor(provider, options) {
60
- if (provider && !(0, _helpers.isProviderSupported)(provider)) {
61
- throw new Error(`Provider ${provider} is not supported on the current platform.`);
62
- }
63
- this.provider = {
64
- provider: provider ?? RNCloudStorage.getDefaultProvider(),
65
- options: defaultProviderOptions[provider ?? RNCloudStorage.getDefaultProvider()]
66
- };
67
- this.setProvider(provider ?? RNCloudStorage.getDefaultProvider());
68
- if (options) {
69
- this.setProviderOptions(options);
70
- }
71
- }
72
- get nativeInstance() {
73
- switch (this.provider.provider) {
74
- case _main.CloudStorageProvider.ICloud:
75
- return nativeIosInstance ?? new Proxy({}, {
76
- get() {
77
- throw new Error(LINKING_ERROR);
78
- }
79
- });
80
- default:
81
- return new _googleDrive.default(this.provider.options);
82
- }
83
- }
84
-
85
- /**
86
- * Gets the default CloudStorageProvider for the current platform.
87
- * @returns The default CloudStorageProvider.
88
- */
89
- static getDefaultProvider() {
90
- switch (_reactNative.Platform.OS) {
91
- case 'ios':
92
- return _main.CloudStorageProvider.ICloud;
93
- default:
94
- return _main.CloudStorageProvider.GoogleDrive;
95
- }
96
- }
97
-
98
- /**
99
- * Gets the list of supported CloudStorageProviders on the current platform.
100
- * @returns An array of supported CloudStorageProviders.
101
- */
102
- static getSupportedProviders() {
103
- return Object.values(_main.CloudStorageProvider).filter(_helpers.isProviderSupported);
104
- }
105
-
106
- /**
107
- * Gets the current CloudStorageProvider.
108
- * @returns The current CloudStorageProvider.
109
- */
110
- getProvider() {
111
- return this.provider.provider;
112
- }
113
-
114
- /**
115
- * Sets the current CloudStorageProvider.
116
- * @param provider The provider to set.
117
- */
118
- setProvider(provider) {
119
- if (!(0, _helpers.isProviderSupported)(provider)) {
120
- throw new Error(`Provider ${provider} is not supported on the current platform.`);
121
- }
122
- this.provider = {
123
- provider,
124
- options: defaultProviderOptions[provider]
125
- };
126
-
127
- // Emit an event to notify useIsCloudAvailable() hook consumers of the new cloud availability status
128
- this.nativeInstance.isCloudAvailable().then(available => {
129
- this.cloudAvailabilityListeners.forEach(listener => {
130
- listener(available);
131
- });
132
- });
133
- if (provider === _main.CloudStorageProvider.ICloud) {
134
- // Listen to native cloud availability change events
135
- const eventEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.CloudStorageEventEmitter);
136
- eventEmitter.addListener('RNCloudStorage.cloud.availability-changed', event => {
137
- this.cloudAvailabilityListeners.forEach(listener => {
138
- listener(event.available);
139
- });
140
- });
141
- }
142
- }
143
-
144
- /**
145
- * Gets the current options for the current provider.
146
- * @returns The current options for the current provider.
147
- */
148
- getProviderOptions() {
149
- return this.provider.options;
150
- }
151
-
152
- /**
153
- * Sets the options for the current provider.
154
- * @param options The options to set for the provider.
155
- */
156
- setProviderOptions(options) {
157
- const newOptions = Object.fromEntries(Object.entries(options).filter(([_, v]) => v !== undefined));
158
- this.provider.options = {
159
- ...this.provider.options,
160
- ...newOptions
161
- };
162
- if (this.provider.provider === _main.CloudStorageProvider.GoogleDrive && 'accessToken' in newOptions) {
163
- // Emit an event to notify useIsCloudAvailable() hook consumers of the new cloud availability status
164
- this.cloudAvailabilityListeners.forEach(listener => {
165
- listener(!!newOptions.accessToken?.length);
166
- });
167
- }
168
- }
169
- subscribeToCloudAvailability(listener) {
170
- this.cloudAvailabilityListeners.push(listener);
171
- }
172
- unsubscribeFromCloudAvailability(listener) {
173
- this.cloudAvailabilityListeners = this.cloudAvailabilityListeners.filter(l => l !== listener);
174
- }
175
- //#endregion
10
+ var _main = require("./types/main");
11
+ var _helpers = require("./utils/helpers");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ const nativeInstance = (0, _createRNCloudStorage.default)();
14
+ let defaultScope = _main.CloudStorageScope.AppData;
15
+ const RNCloudStorage = {
16
+ getDefaultScope: () => defaultScope,
17
+ setDefaultScope: scope => defaultScope = scope,
18
+ getGoogleDriveAccessToken: () => _googleDrive.default.accessToken,
19
+ setGoogleDriveAccessToken: accessToken => _googleDrive.default.accessToken = accessToken,
20
+ setThrowOnFilesWithSameName: enable => _googleDrive.default.throwOnFilesWithSameName = enable,
21
+ setTimeout: timeout => _googleDrive.default.timeout = timeout,
22
+ /* eslint-disable @typescript-eslint/no-unused-vars */
23
+ subscribeToFilesWithSameName: _reactNative.Platform.OS === 'ios' ?
24
+ // @ts-expect-error - subscriber is undefined; just a mock
25
+ subscriber => ({
26
+ remove: () => {}
27
+ }) : nativeInstance.subscribeToFilesWithSameName.bind(nativeInstance),
28
+ /* eslint-enable @typescript-eslint/no-unused-vars */
176
29
 
177
- //#region File system operations
178
30
  /**
179
31
  * Tests whether or not the cloud storage is available. Always returns true for Google Drive. iCloud may be
180
32
  * unavailable right after app launch or if the user is not logged in.
181
33
  * @returns A promise that resolves to true if the cloud storage is available, false otherwise.
182
34
  */
183
- isCloudAvailable() {
184
- return this.nativeInstance.isCloudAvailable();
185
- }
186
-
35
+ isCloudAvailable: async () => {
36
+ return nativeInstance.isCloudAvailable();
37
+ },
187
38
  /**
188
39
  * Appends the data to the file at the given path, creating the file if it doesn't exist.
189
40
  * @param path The file to append to.
190
41
  * @param data The data to append.
191
- * @param scope The directory scope the path is in. Defaults to the default scope set for the current provider.
42
+ * @param scope The directory scope the path is in. Defaults to the set default scope.
192
43
  * @returns A promise that resolves when the data has been appended.
193
44
  */
194
- appendFile(path, data, scope) {
195
- return this.nativeInstance.appendToFile(path, data, scope ?? this.provider.options.scope);
196
- }
197
-
45
+ appendFile: (path, data, scope) => {
46
+ return nativeInstance.appendToFile((0, _helpers.verifyLeadingSlash)(path), data, scope ?? defaultScope);
47
+ },
198
48
  /**
199
49
  * Tests whether or not the file at the given path exists.
200
50
  * @param path The path to test.
201
- * @param scope The directory scope the path is in. Defaults to set default scope set for the current provider.
51
+ * @param scope The directory scope the path is in. Defaults to the set default scope.
202
52
  * @returns A promise that resolves to true if the path exists, false otherwise.
203
53
  */
204
- exists(path, scope) {
205
- return this.nativeInstance.fileExists(path, scope ?? this.provider.options.scope);
206
- }
207
-
54
+ exists: (path, scope) => {
55
+ return nativeInstance.fileExists((0, _helpers.verifyLeadingSlash)(path), scope ?? defaultScope);
56
+ },
208
57
  /**
209
58
  * Writes to the file at the given path, creating it if it doesn't exist or overwriting it if it does.
210
59
  * @param path The file to write to.
211
60
  * @param data The data to write.
212
- * @param scope The directory scope the path is in. Defaults to set default scope set for the current provider.
61
+ * @param scope The directory scope the path is in. Defaults to the set default scope.
213
62
  * @returns A promise that resolves when the file has been written.
214
63
  */
215
- writeFile(path, data, scope) {
216
- return this.nativeInstance.createFile(path, data, scope ?? this.provider.options.scope, true);
217
- }
218
-
64
+ writeFile: (path, data, scope) => {
65
+ return nativeInstance.createFile((0, _helpers.verifyLeadingSlash)(path), data, scope ?? defaultScope, true);
66
+ },
219
67
  /**
220
68
  * Creates a new directory at the given path.
221
69
  * @param path The directory to create.
222
- * @param scope The directory scope the path is in. Defaults to set default scope set for the current provider.
70
+ * @param scope The directory scope the path is in. Defaults to the set default scope.
223
71
  * @returns A promise that resolves when the directory has been created.
224
72
  */
225
- mkdir(path, scope) {
226
- return this.nativeInstance.createDirectory(path, scope ?? this.provider.options.scope);
227
- }
228
-
73
+ mkdir: (path, scope) => {
74
+ return nativeInstance.createDirectory((0, _helpers.verifyLeadingSlash)(path), scope ?? defaultScope);
75
+ },
229
76
  /**
230
77
  * Lists the contents of the directory at the given path.
231
78
  * @param path The directory to list.
232
- * @param scope The directory scope the path is in. Defaults to set default scope set for the current provider.
79
+ * @param scope The directory scope the path is in. Defaults to the set default scope.
233
80
  * @returns A promise that resolves to an array of file names, excluding '.' and '..'.
234
81
  */
235
- readdir(path, scope) {
236
- return this.nativeInstance.listFiles(path, scope ?? this.provider.options.scope);
237
- }
238
-
82
+ readdir: (path, scope) => {
83
+ return nativeInstance.listFiles((0, _helpers.verifyLeadingSlash)(path), scope ?? defaultScope);
84
+ },
239
85
  /**
240
86
  * Reads the contents of the file at the given path.
241
87
  * @param path The file to read.
242
- * @param scope The directory scope the path is in. Defaults to set default scope set for the current provider.
88
+ * @param scope The directory scope the path is in. Defaults to the set default scope.
243
89
  * @returns A promise that resolves to the contents of the file.
244
90
  */
245
- readFile(path, scope) {
246
- return this.nativeInstance.readFile(path, scope ?? this.provider.options.scope);
247
- }
248
-
91
+ readFile: (path, scope) => {
92
+ return nativeInstance.readFile((0, _helpers.verifyLeadingSlash)(path), scope ?? defaultScope);
93
+ },
249
94
  /**
250
- * Downloads the file at the given path. Does not have any effect on Google Drive.
95
+ * Downloads the file at the given path from iCloud. Does not have any effect on Google Drive.
251
96
  * @param path The file to trigger the download for.
252
- * @param scope The directory scope the path is in. Defaults to set default scope set for the current provider.
97
+ * @param scope The directory scope the path is in. Defaults to the set default scope.
253
98
  * @returns A promise that resolves once the download has been triggered.
254
99
  */
255
- downloadFile(path, scope) {
256
- return this.nativeInstance.downloadFile(path, scope ?? this.provider.options.scope);
257
- }
258
-
100
+ downloadFile: (path, scope) => {
101
+ return nativeInstance.downloadFile((0, _helpers.verifyLeadingSlash)(path), scope ?? defaultScope);
102
+ },
259
103
  /**
260
104
  * Deletes the file at the given path.
261
105
  * @param path The file to delete.
262
- * @param scope The directory scope the path is in. Defaults to set default scope set for the current provider.
106
+ * @param scope The directory scope the path is in. Defaults to the set default scope.
263
107
  * @returns A promise that resolves when the file has been deleted.
264
108
  */
265
- unlink(path, scope) {
266
- return this.nativeInstance.deleteFile(path, scope ?? this.provider.options.scope);
267
- }
268
-
109
+ unlink: (path, scope) => {
110
+ return nativeInstance.deleteFile((0, _helpers.verifyLeadingSlash)(path), scope ?? defaultScope);
111
+ },
269
112
  /**
270
113
  * Deletes the directory at the given path.
271
114
  * @param path The directory to delete.
272
115
  * @param options Options for the delete operation. Defaults to { recursive: false }.
273
- * @param scope The directory scope the path is in. Defaults to set default scope set for the current provider.
116
+ * @param scope The directory scope the path is in. Defaults to the set default scope.
274
117
  * @returns A promise that resolves when the directory has been deleted.
275
118
  */
276
- rmdir(path, options, scope) {
277
- return this.nativeInstance.deleteDirectory(path, options?.recursive ?? false, scope ?? this.provider.options.scope);
278
- }
279
-
119
+ rmdir: (path, options, scope) => {
120
+ return nativeInstance.deleteDirectory((0, _helpers.verifyLeadingSlash)(path), (options === null || options === void 0 ? void 0 : options.recursive) ?? false, scope ?? defaultScope);
121
+ },
280
122
  /**
281
123
  * Gets the size, creation time, and modification time of the file at the given path.
282
124
  * @param path The file to stat.
283
- * @param scope The directory scope the path is in. Defaults to set default scope set for the current provider.
125
+ * @param scope The directory scope the path is in. Defaults to the set default scope.
284
126
  * @returns A promise that resolves to the CloudStorageFileStat object.
285
127
  */
286
- async stat(path, scope) {
287
- const native = await this.nativeInstance.statFile(path, scope ?? this.provider.options.scope);
128
+ stat: async (path, scope) => {
129
+ const native = await nativeInstance.statFile((0, _helpers.verifyLeadingSlash)(path), scope ?? defaultScope);
288
130
  return {
289
131
  ...native,
290
132
  birthtime: new Date(native.birthtimeMs),
@@ -293,144 +135,7 @@ class RNCloudStorage {
293
135
  isFile: () => native.isFile
294
136
  };
295
137
  }
296
- //#endregion
297
-
298
- //#region Static methods for default static instance
299
- static getDefaultInstance() {
300
- if (!RNCloudStorage.defaultInstance) {
301
- RNCloudStorage.defaultInstance = new RNCloudStorage();
302
- }
303
- return RNCloudStorage.defaultInstance;
304
- }
305
-
306
- /**
307
- * Gets the current options for the provider of the default static instance.
308
- * @returns The current options for the provider of the default static instance.
309
- */
310
- static getProviderOptions() {
311
- return RNCloudStorage.getDefaultInstance().getProviderOptions();
312
- }
313
-
314
- /**
315
- * Sets the options for the provider of the default static instance.
316
- * @param options The options to set for the provider of the default static instance.
317
- */
318
- static setProviderOptions(options) {
319
- RNCloudStorage.getDefaultInstance().setProviderOptions(options);
320
- }
321
-
322
- /**
323
- * Tests whether or not the file at the given path exists in the provider of the default static instance.
324
- * @param path The path to test.
325
- * @param scope The directory scope the path is in. Defaults to set default scope set for the current provider.
326
- * @returns A promise that resolves to true if the path exists, false otherwise.
327
- */
328
- static exists(path, scope) {
329
- return RNCloudStorage.getDefaultInstance().exists(path, scope);
330
- }
331
-
332
- /**
333
- * Tests whether or not the cloud storage is available for the provider of the default static instance. Always returns true for Google Drive. iCloud may be
334
- * unavailable right after app launch or if the user is not logged in.
335
- * @returns A promise that resolves to true if the cloud storage is available, false otherwise.
336
- */
337
- static isCloudAvailable() {
338
- return RNCloudStorage.getDefaultInstance().isCloudAvailable();
339
- }
340
-
341
- /**
342
- * Appends the data to the file at the given path in the provider of the default static instance, creating the file if it doesn't exist.
343
- * @param path The file to append to.
344
- * @param data The data to append.
345
- * @param scope The directory scope the path is in. Defaults to the default scope set for the default static instance.
346
- * @returns A promise that resolves when the data has been appended.
347
- */
348
- static appendFile(path, data, scope) {
349
- return RNCloudStorage.getDefaultInstance().appendFile(path, data, scope);
350
- }
351
-
352
- /**
353
- * Writes to the file at the given path in the provider of the default static instance, creating it if it doesn't exist or overwriting it if it does.
354
- * @param path The file to write to.
355
- * @param data The data to write.
356
- * @param scope The directory scope the path is in. Defaults to the default scope set for the default static instance.
357
- * @returns A promise that resolves when the file has been written.
358
- */
359
- static writeFile(path, data, scope) {
360
- return RNCloudStorage.getDefaultInstance().writeFile(path, data, scope);
361
- }
362
-
363
- /**
364
- * Creates a new directory at the given path in the provider of the default static instance.
365
- * @param path The directory to create.
366
- * @param scope The directory scope the path is in. Defaults to the default scope set for the default static instance.
367
- * @returns A promise that resolves when the directory has been created.
368
- */
369
- static mkdir(path, scope) {
370
- return RNCloudStorage.getDefaultInstance().mkdir(path, scope);
371
- }
372
-
373
- /**
374
- * Lists the contents of the directory at the given path in the provider of the default static instance.
375
- * @param path The directory to list.
376
- * @param scope The directory scope the path is in. Defaults to the default scope set for the default static instance.
377
- * @returns A promise that resolves to an array of file names, excluding '.' and '..'.
378
- */
379
- static readdir(path, scope) {
380
- return RNCloudStorage.getDefaultInstance().readdir(path, scope);
381
- }
382
-
383
- /**
384
- * Reads the contents of the file at the given path in the provider of the default static instance.
385
- * @param path The file to read.
386
- * @param scope The directory scope the path is in. Defaults to the default scope set for the default static instance.
387
- * @returns A promise that resolves to the contents of the file.
388
- */
389
- static readFile(path, scope) {
390
- return RNCloudStorage.getDefaultInstance().readFile(path, scope);
391
- }
392
-
393
- /**
394
- * Downloads the file at the given path in the provider of the default static instance. Does not have any effect on Google Drive.
395
- * @param path The file to trigger the download for.
396
- * @param scope The directory scope the path is in. Defaults to the default scope set for the default static instance.
397
- * @returns A promise that resolves once the download has been triggered.
398
- */
399
- static downloadFile(path, scope) {
400
- return RNCloudStorage.getDefaultInstance().downloadFile(path, scope);
401
- }
402
-
403
- /**
404
- * Deletes the file at the given path in the provider of the default static instance.
405
- * @param path The file to delete.
406
- * @param scope The directory scope the path is in. Defaults to the default scope set for the default static instance.
407
- * @returns A promise that resolves when the file has been deleted.
408
- */
409
- static unlink(path, scope) {
410
- return RNCloudStorage.getDefaultInstance().unlink(path, scope);
411
- }
412
-
413
- /**
414
- * Deletes the directory at the given path in the provider of the default static instance.
415
- * @param path The directory to delete.
416
- * @param options Options for the delete operation. Defaults to { recursive: false }.
417
- * @param scope The directory scope the path is in. Defaults to the default scope set for the default static instance.
418
- * @returns A promise that resolves when the directory has been deleted.
419
- */
420
- static rmdir(path, options, scope) {
421
- return RNCloudStorage.getDefaultInstance().rmdir(path, options, scope);
422
- }
423
-
424
- /**
425
- * Gets the size, creation time, and modification time of the file at the given path in the provider of the default static instance.
426
- * @param path The file to stat.
427
- * @param scope The directory scope the path is in. Defaults to the default scope set for the default static instance.
428
- * @returns A promise that resolves to the CloudStorageFileStat object.
429
- */
430
- static stat(path, scope) {
431
- return RNCloudStorage.getDefaultInstance().stat(path, scope);
432
- }
433
- //#endregion
434
- }
435
- exports.default = RNCloudStorage;
138
+ };
139
+ var _default = RNCloudStorage;
140
+ exports.default = _default;
436
141
  //# sourceMappingURL=RNCloudStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_main","require","_helpers","_reactNative","_CloudStorageError","_interopRequireDefault","_native","_googleDrive","e","__esModule","default","LINKING_ERROR","Platform","select","ios","nativeIosInstance","NativeModules","CloudStorage","Proxy","get","target","prop","originalFunction","args","error","code","Object","values","CloudStorageErrorCode","includes","CloudStorageError","message","UNKNOWN","defaultProviderOptions","CloudStorageProvider","ICloud","scope","CloudStorageScope","AppData","GoogleDrive","accessToken","strictFilenames","timeout","RNCloudStorage","cloudAvailabilityListeners","constructor","provider","options","isProviderSupported","Error","getDefaultProvider","setProvider","setProviderOptions","nativeInstance","OS","getSupportedProviders","filter","getProvider","isCloudAvailable","then","available","forEach","listener","eventEmitter","NativeEventEmitter","CloudStorageEventEmitter","addListener","event","getProviderOptions","newOptions","fromEntries","entries","_","v","undefined","length","subscribeToCloudAvailability","push","unsubscribeFromCloudAvailability","l","appendFile","path","data","appendToFile","exists","fileExists","writeFile","createFile","mkdir","createDirectory","readdir","listFiles","readFile","downloadFile","unlink","deleteFile","rmdir","deleteDirectory","recursive","stat","native","statFile","birthtime","Date","birthtimeMs","mtime","mtimeMs","isDirectory","isFile","getDefaultInstance","defaultInstance","exports"],"sourceRoot":"../../src","sources":["RNCloudStorage.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_createRNCloudStorage","_interopRequireDefault","_googleDrive","_main","_helpers","obj","__esModule","default","nativeInstance","createRNCloudStorage","defaultScope","CloudStorageScope","AppData","RNCloudStorage","getDefaultScope","setDefaultScope","scope","getGoogleDriveAccessToken","GoogleDrive","accessToken","setGoogleDriveAccessToken","setThrowOnFilesWithSameName","enable","throwOnFilesWithSameName","setTimeout","timeout","subscribeToFilesWithSameName","Platform","OS","subscriber","remove","bind","isCloudAvailable","appendFile","path","data","appendToFile","verifyLeadingSlash","exists","fileExists","writeFile","createFile","mkdir","createDirectory","readdir","listFiles","readFile","downloadFile","unlink","deleteFile","rmdir","options","deleteDirectory","recursive","stat","native","statFile","birthtime","Date","birthtimeMs","mtime","mtimeMs","isDirectory","isFile","_default","exports"],"sourceRoot":"../../src","sources":["RNCloudStorage.ts"],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = createRNCloudStorage;
7
+ var _reactNative = require("react-native");
8
+ var _googleDrive = _interopRequireDefault(require("./google-drive"));
9
+ var _native = require("./types/native");
10
+ var _CloudStorageError = _interopRequireDefault(require("./utils/CloudStorageError"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ const LINKING_ERROR = `The package 'react-native-cloud-storage' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
13
+ ios: "- You have run 'pod install'\n",
14
+ default: ''
15
+ }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
16
+
17
+ // proxy NativeModules.CloudStorage to catch any errors thrown by the native module and wrap them in a CloudStorageError
18
+ const nativeIosInstance = _reactNative.NativeModules.CloudStorage ? new Proxy(_reactNative.NativeModules.CloudStorage, {
19
+ get(target, prop) {
20
+ const originalFunction = target[prop];
21
+ if (typeof originalFunction === 'function') {
22
+ return async function () {
23
+ try {
24
+ // @ts-expect-error - we can't know the types of the functions and their arguments
25
+ return await originalFunction(...arguments);
26
+ } catch (error) {
27
+ if (error !== null && error !== void 0 && error.code && Object.values(_native.CloudStorageErrorCode).includes(error.code)) {
28
+ throw new _CloudStorageError.default((error === null || error === void 0 ? void 0 : error.message) || '', error.code);
29
+ } else {
30
+ throw new _CloudStorageError.default('Unknown error', _native.CloudStorageErrorCode.UNKNOWN, error);
31
+ }
32
+ }
33
+ };
34
+ }
35
+ return originalFunction;
36
+ }
37
+ }) : null;
38
+ function createRNCloudStorage() {
39
+ if (_reactNative.Platform.OS === 'ios') {
40
+ return nativeIosInstance ?? new Proxy({}, {
41
+ get() {
42
+ throw new Error(LINKING_ERROR);
43
+ }
44
+ });
45
+ }
46
+ return new _googleDrive.default();
47
+ }
48
+ //# sourceMappingURL=createRNCloudStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_googleDrive","_interopRequireDefault","_native","_CloudStorageError","obj","__esModule","default","LINKING_ERROR","Platform","select","ios","nativeIosInstance","NativeModules","CloudStorage","Proxy","get","target","prop","originalFunction","arguments","error","code","Object","values","CloudStorageErrorCode","includes","CloudStorageError","message","UNKNOWN","createRNCloudStorage","OS","Error","GoogleDrive"],"sourceRoot":"../../src","sources":["createRNCloudStorage.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAF,sBAAA,CAAAF,OAAA;AAA0D,SAAAE,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE1D,MAAMG,aAAa,GAChB,qFAAoF,GACrFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEJ,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMK,iBAAiB,GAAGC,0BAAa,CAACC,YAAY,GAChD,IAAIC,KAAK,CAACF,0BAAa,CAACC,YAAY,EAAE;EACpCE,GAAGA,CAACC,MAA4B,EAAEC,IAAgC,EAAE;IAClE,MAAMC,gBAAgB,GAAGF,MAAM,CAACC,IAAI,CAAC;IACrC,IAAI,OAAOC,gBAAgB,KAAK,UAAU,EAAE;MAC1C,OAAO,kBAA0B;QAC/B,IAAI;UACF;UACA,OAAO,MAAMA,gBAAgB,CAAC,GAAAC,SAAO,CAAC;QACxC,CAAC,CAAC,OAAOC,KAAU,EAAE;UACnB,IAAIA,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEC,IAAI,IAAIC,MAAM,CAACC,MAAM,CAACC,6BAAqB,CAAC,CAACC,QAAQ,CAACL,KAAK,CAACC,IAAI,CAAC,EAAE;YAC5E,MAAM,IAAIK,0BAAiB,CAAC,CAAAN,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEO,OAAO,KAAI,EAAE,EAAEP,KAAK,CAACC,IAAI,CAA0B;UACxF,CAAC,MAAM;YACL,MAAM,IAAIK,0BAAiB,CAAC,eAAe,EAAEF,6BAAqB,CAACI,OAAO,EAAER,KAAK,CAAC;UACpF;QACF;MACF,CAAC;IACH;IACA,OAAOF,gBAAgB;EACzB;AACF,CAAC,CAAC,GACF,IAAI;AAEO,SAASW,oBAAoBA,CAAA,EAAyB;EACnE,IAAIrB,qBAAQ,CAACsB,EAAE,KAAK,KAAK,EAAE;IACzB,OACEnB,iBAAiB,IACjB,IAAIG,KAAK,CACP,CAAC,CAAC,EACF;MACEC,GAAGA,CAAA,EAAG;QACJ,MAAM,IAAIgB,KAAK,CAACxB,aAAa,CAAC;MAChC;IACF,CAAC,CACF;EAEL;EAEA,OAAO,IAAIyB,oBAAW,EAAE;AAC1B"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["expo-plugin/types/index.ts"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["expo-plugin/types/index.ts"],"mappings":""}
@@ -5,9 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _withRNCloudStorageIos = _interopRequireDefault(require("./withRNCloudStorageIos"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
9
  // Android config plugin not needed as there's no native code to configure.
10
10
 
11
11
  const withRNCloudStorage = (config, options) => (0, _withRNCloudStorageIos.default)(config, options);
12
- var _default = exports.default = withRNCloudStorage;
12
+ var _default = withRNCloudStorage;
13
+ exports.default = _default;
13
14
  //# sourceMappingURL=withRNCloudStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_withRNCloudStorageIos","_interopRequireDefault","require","e","__esModule","default","withRNCloudStorage","config","options","withRNCloudStorageIos","_default","exports"],"sourceRoot":"../../../src","sources":["expo-plugin/withRNCloudStorage.ts"],"mappings":";;;;;;AACA,IAAAA,sBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA4D,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG5D;;AAEA,MAAMG,kBAAmE,GAAGA,CAACC,MAAM,EAAEC,OAAO,KAC1F,IAAAC,8BAAqB,EAACF,MAAM,EAAEC,OAAO,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAN,OAAA,GAE1BC,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["_withRNCloudStorageIos","_interopRequireDefault","require","obj","__esModule","default","withRNCloudStorage","config","options","withRNCloudStorageIos","_default","exports"],"sourceRoot":"../../../src","sources":["expo-plugin/withRNCloudStorage.ts"],"mappings":";;;;;;AACA,IAAAA,sBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA4D,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAG5D;;AAEA,MAAMG,kBAAmE,GAAGA,CAACC,MAAM,EAAEC,OAAO,KAC1F,IAAAC,8BAAqB,EAACF,MAAM,EAAEC,OAAO,CAAC;AAAC,IAAAE,QAAA,GAE1BJ,kBAAkB;AAAAK,OAAA,CAAAN,OAAA,GAAAK,QAAA"}
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _configPlugins = require("@expo/config-plugins");
8
8
  const withRNCloudStorageInfoPlist = config => (0, _configPlugins.withInfoPlist)(config, async newConfig => {
9
- if (!config.ios?.bundleIdentifier) {
9
+ var _config$ios;
10
+ if (!((_config$ios = config.ios) !== null && _config$ios !== void 0 && _config$ios.bundleIdentifier)) {
10
11
  throw new Error('Missing iOS bundle identifier');
11
12
  }
12
13
  const infoPlist = newConfig.modResults;
@@ -20,17 +21,19 @@ const withRNCloudStorageInfoPlist = config => (0, _configPlugins.withInfoPlist)(
20
21
  return newConfig;
21
22
  });
22
23
  const withRNCloudStorageEntitlementsPlist = (config, options) => (0, _configPlugins.withEntitlementsPlist)(config, async newConfig => {
23
- if (!config.ios?.bundleIdentifier) {
24
+ var _config$ios2;
25
+ if (!((_config$ios2 = config.ios) !== null && _config$ios2 !== void 0 && _config$ios2.bundleIdentifier)) {
24
26
  throw new Error('Missing iOS bundle identifier');
25
27
  }
26
28
  const entitlementsPlist = newConfig.modResults;
27
29
  entitlementsPlist['com.apple.developer.icloud-container-identifiers'] = [`iCloud.${config.ios.bundleIdentifier}`];
28
30
  entitlementsPlist['com.apple.developer.icloud-services'] = ['CloudDocuments'];
29
- entitlementsPlist['com.apple.developer.icloud-container-environment'] = options?.iCloudContainerEnvironment ?? 'Production';
31
+ entitlementsPlist['com.apple.developer.icloud-container-environment'] = (options === null || options === void 0 ? void 0 : options.iCloudContainerEnvironment) ?? 'Production';
30
32
  entitlementsPlist['com.apple.developer.ubiquity-container-identifiers'] = [`iCloud.${config.ios.bundleIdentifier}`];
31
33
  entitlementsPlist['com.apple.developer.ubiquity-kvstore-identifier'] = `$(TeamIdentifierPrefix)${config.ios.bundleIdentifier}`;
32
34
  return newConfig;
33
35
  });
34
36
  const withRNCloudStorageIos = (config, options) => (0, _configPlugins.withPlugins)(config, [withRNCloudStorageInfoPlist, [withRNCloudStorageEntitlementsPlist, options]]);
35
- var _default = exports.default = withRNCloudStorageIos;
37
+ var _default = withRNCloudStorageIos;
38
+ exports.default = _default;
36
39
  //# sourceMappingURL=withRNCloudStorageIos.js.map