react-native-compressor 1.7.1 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +40 -15
  2. package/android/build.gradle +8 -0
  3. package/android/src/main/java/com/reactnativecompressor/Audio/AudioCompressor.kt +527 -0
  4. package/android/src/main/java/com/reactnativecompressor/Audio/AudioMain.kt +31 -0
  5. package/android/src/main/java/com/reactnativecompressor/CompressorModule.kt +157 -0
  6. package/android/src/main/java/com/reactnativecompressor/CompressorPackage.kt +34 -0
  7. package/android/src/main/java/com/reactnativecompressor/Image/ImageCompressor.kt +199 -0
  8. package/android/src/main/java/com/reactnativecompressor/Image/ImageCompressorOptions.kt +57 -0
  9. package/android/src/main/java/com/reactnativecompressor/Image/ImageMain.kt +31 -0
  10. package/android/src/main/java/com/reactnativecompressor/Image/ImageSize.kt +3 -0
  11. package/android/src/main/java/com/reactnativecompressor/Utils/Downloader.kt +119 -0
  12. package/android/src/main/java/com/reactnativecompressor/Utils/EventEmitterHandler.kt +66 -0
  13. package/android/src/main/java/com/reactnativecompressor/Utils/MediaCache.kt +61 -0
  14. package/android/src/main/java/com/reactnativecompressor/Utils/RealPathUtil.kt +177 -0
  15. package/android/src/main/java/com/reactnativecompressor/Utils/Uploader.kt +117 -0
  16. package/android/src/main/java/com/reactnativecompressor/Utils/Utils.kt +162 -0
  17. package/android/src/main/java/com/reactnativecompressor/Video/AutoVideoCompression.kt +63 -0
  18. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressorHelper.kt +125 -0
  19. package/android/src/main/java/com/reactnativecompressor/Video/VideoMain.kt +86 -0
  20. package/android/src/newarch/CompressorSpec.kt +5 -0
  21. package/android/src/oldarch/CompressorSpec.kt +32 -0
  22. package/ios/Audio/AudioMain.swift +115 -0
  23. package/ios/Compressor-Bridging-Header.h +1 -2
  24. package/ios/Compressor.h +0 -8
  25. package/ios/Compressor.mm +28 -389
  26. package/ios/CompressorManager.swift +96 -0
  27. package/ios/Image/ImageCompressor.swift +354 -0
  28. package/ios/Image/ImageCompressorOptions.swift +93 -0
  29. package/ios/Image/ImageMain.swift +27 -0
  30. package/ios/Utils/Downloader.swift +157 -0
  31. package/ios/Utils/EventEmitterHandler.swift +54 -0
  32. package/ios/Utils/MediaCache.swift +48 -0
  33. package/ios/Utils/Uploader.swift +99 -0
  34. package/ios/Utils/Utils.swift +110 -0
  35. package/ios/Video/{VideoCompressor.swift → VideoMain.swift} +168 -147
  36. package/lib/commonjs/Image/index.js +1 -1
  37. package/lib/commonjs/Image/index.js.map +1 -1
  38. package/lib/commonjs/Main.js +1 -8
  39. package/lib/commonjs/Main.js.map +1 -1
  40. package/lib/commonjs/Spec/NativeCompressor.js.map +1 -1
  41. package/lib/commonjs/Video/index.js +4 -33
  42. package/lib/commonjs/Video/index.js.map +1 -1
  43. package/lib/commonjs/expo-plugin/compressor.js.map +1 -1
  44. package/lib/commonjs/index.js +11 -6
  45. package/lib/commonjs/index.js.map +1 -1
  46. package/lib/commonjs/utils/Downloader.js +38 -0
  47. package/lib/commonjs/utils/Downloader.js.map +1 -0
  48. package/lib/commonjs/utils/Uploader.js +40 -0
  49. package/lib/commonjs/utils/Uploader.js.map +1 -0
  50. package/lib/commonjs/utils/index.js +35 -0
  51. package/lib/commonjs/utils/index.js.map +1 -1
  52. package/lib/module/Image/index.js +1 -1
  53. package/lib/module/Image/index.js.map +1 -1
  54. package/lib/module/Main.js +1 -7
  55. package/lib/module/Main.js.map +1 -1
  56. package/lib/module/Spec/NativeCompressor.js.map +1 -1
  57. package/lib/module/Video/index.js +5 -33
  58. package/lib/module/Video/index.js.map +1 -1
  59. package/lib/module/expo-plugin/compressor.js.map +1 -1
  60. package/lib/module/index.js +6 -6
  61. package/lib/module/index.js.map +1 -1
  62. package/lib/module/utils/Downloader.js +31 -0
  63. package/lib/module/utils/Downloader.js.map +1 -0
  64. package/lib/module/utils/Uploader.js +33 -0
  65. package/lib/module/utils/Uploader.js.map +1 -0
  66. package/lib/module/utils/index.js +2 -0
  67. package/lib/module/utils/index.js.map +1 -1
  68. package/lib/typescript/Image/index.d.ts +4 -0
  69. package/lib/typescript/Image/index.d.ts.map +1 -1
  70. package/lib/typescript/Main.d.ts +1 -2
  71. package/lib/typescript/Main.d.ts.map +1 -1
  72. package/lib/typescript/Spec/NativeCompressor.d.ts +8 -2
  73. package/lib/typescript/Spec/NativeCompressor.d.ts.map +1 -1
  74. package/lib/typescript/Video/index.d.ts +4 -28
  75. package/lib/typescript/Video/index.d.ts.map +1 -1
  76. package/lib/typescript/index.d.ts +5 -4
  77. package/lib/typescript/index.d.ts.map +1 -1
  78. package/lib/typescript/utils/Downloader.d.ts +2 -0
  79. package/lib/typescript/utils/Downloader.d.ts.map +1 -0
  80. package/lib/typescript/utils/Uploader.d.ts +28 -0
  81. package/lib/typescript/utils/Uploader.d.ts.map +1 -0
  82. package/lib/typescript/utils/index.d.ts +2 -1
  83. package/lib/typescript/utils/index.d.ts.map +1 -1
  84. package/package.json +6 -4
  85. package/src/Image/index.tsx +5 -1
  86. package/src/Main.tsx +1 -15
  87. package/src/Spec/NativeCompressor.ts +14 -2
  88. package/src/Video/index.tsx +11 -84
  89. package/src/expo-plugin/compressor.ts +1 -1
  90. package/src/index.tsx +6 -3
  91. package/src/utils/Downloader.tsx +38 -0
  92. package/src/utils/Uploader.tsx +78 -0
  93. package/src/utils/index.tsx +2 -0
  94. package/android/src/main/java/com/reactnativecompressor/Audio/AudioCompressor.java +0 -605
  95. package/android/src/main/java/com/reactnativecompressor/CompressorModule.java +0 -220
  96. package/android/src/main/java/com/reactnativecompressor/CompressorPackage.java +0 -58
  97. package/android/src/main/java/com/reactnativecompressor/Image/ImageCompressor.java +0 -257
  98. package/android/src/main/java/com/reactnativecompressor/Image/utils/ImageCompressorOptions.java +0 -69
  99. package/android/src/main/java/com/reactnativecompressor/Image/utils/ImageSize.java +0 -13
  100. package/android/src/main/java/com/reactnativecompressor/Utils/FileUplaoder/FileUploadHelper.java +0 -39
  101. package/android/src/main/java/com/reactnativecompressor/Utils/FileUplaoder/FileUploader.java +0 -129
  102. package/android/src/main/java/com/reactnativecompressor/Utils/MediaCache.java +0 -65
  103. package/android/src/main/java/com/reactnativecompressor/Utils/RealPathUtil.java +0 -210
  104. package/android/src/main/java/com/reactnativecompressor/Utils/Utils.java +0 -272
  105. package/android/src/main/java/com/reactnativecompressor/Video/AutoVideoCompression/AutoVideoCompression.java +0 -87
  106. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressorHelper.java +0 -182
  107. package/android/src/main/java/com/reactnativecompressor/Video/VideoModule.java +0 -112
  108. package/android/src/newarch/CompressorSpec.java +0 -9
  109. package/android/src/newarch/VideoCompressorSpec.java +0 -9
  110. package/android/src/oldarch/CompressorSpec.java +0 -34
  111. package/android/src/oldarch/VideoCompressorSpec.java +0 -26
  112. package/ios/Image/ImageCompressor.h +0 -22
  113. package/ios/Image/ImageCompressor.m +0 -540
  114. package/ios/Image/ImageCompressorOptions.h +0 -28
  115. package/ios/Image/ImageCompressorOptions.m +0 -97
  116. package/ios/Utils/Downloader.h +0 -16
  117. package/ios/Utils/Downloader.m +0 -150
  118. package/ios/Utils/MediaCache.h +0 -11
  119. package/ios/Utils/MediaCache.m +0 -51
  120. package/ios/Video/VideoCompressor.h +0 -5
  121. package/ios/Video/VideoCompressor.m +0 -1
  122. package/lib/commonjs/Spec/NativeVideoCompressor.js +0 -10
  123. package/lib/commonjs/Spec/NativeVideoCompressor.js.map +0 -1
  124. package/lib/module/Spec/NativeVideoCompressor.js +0 -3
  125. package/lib/module/Spec/NativeVideoCompressor.js.map +0 -1
  126. package/lib/typescript/Spec/NativeVideoCompressor.d.ts +0 -13
  127. package/lib/typescript/Spec/NativeVideoCompressor.d.ts.map +0 -1
  128. package/src/Spec/NativeVideoCompressor.ts +0 -14
package/README.md CHANGED
@@ -17,9 +17,9 @@
17
17
  **REACT-NATIVE-COMPRESSOR** is a react-native package, which helps us to Compress `Image`, `Video`, and `Audio` before uploading, same like **Whatsapp** without knowing the compression `algorithm`
18
18
 
19
19
  <div align="center">
20
- <img height="90" src="/media/whatsapp_logo.png"/>
21
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
22
- <img height="90" src="/media/compress_media.png"/>
20
+ <pre>
21
+ <img height="90" src="/media/whatsapp_logo.png"/> <img height="90" src="/media/compress_media.png"/>
22
+ </pre>
23
23
  <h2 align="center">🗜️Compress Image, Video, and Audio same like Whatsapp</h2>
24
24
  </div>
25
25
 
@@ -53,9 +53,7 @@ We should use **react-native-compressor** instead of **FFmpeg** because **react-
53
53
  <summary>Open Table of Contents</summary>
54
54
 
55
55
  - [Installation](#installation)
56
- - [For React Native](#react-native)
57
- - [For React Native<0.65](#for-react-native065)
58
- - [For React Native 0.65 or greater](#for-react-native-065-or-greater)
56
+ - [For React Native](#Installation)
59
57
  - [Managed Expo](#managed-expo)
60
58
  - [Usage](#usage)
61
59
  - [Image](#image)
@@ -69,6 +67,7 @@ We should use **react-native-compressor** instead of **FFmpeg** because **react-
69
67
  - [Video Api Docs](#video-1)
70
68
  - [Audio](#audio)
71
69
  - [Background Upload](#background-upload)
70
+ - [Download File](#download)
72
71
 
73
72
  * [Other Utilities](#api)
74
73
  - [Background Upload](#background-upload-1)
@@ -84,8 +83,8 @@ yarn add react-native-compressor
84
83
  ```
85
84
 
86
85
  ### [New Architecture (Turbo Module)](https://reactnative.dev/docs/new-architecture-intro) Supported
87
- you can give feedback on [Discord channel](https://discord.gg/dtYzk8sp)
88
86
 
87
+ you can give feedback on [Discord channel](https://discord.gg/dtYzk8sp)
89
88
 
90
89
  ### Managed Expo
91
90
 
@@ -163,10 +162,11 @@ import { Image } from 'react-native-compressor';
163
162
 
164
163
  const result = await Image.compress('file://path_of_file/image.jpg');
165
164
  // OR
166
- const result = await Image.compress('https://path_of_file/image.jpg',{
165
+ const result = await Image.compress('https://path_of_file/image.jpg', {
166
+ progressDivider: 10,
167
167
  downloadProgress: (progress) => {
168
168
  console.log('downloadProgress: ', progress);
169
- }
169
+ },
170
170
  });
171
171
  ```
172
172
 
@@ -195,7 +195,7 @@ const result = await Video.compress(
195
195
  'file://path_of_file/BigBuckBunny.mp4',
196
196
  {},
197
197
  (progress) => {
198
- console.log('Compression Progress: ', progress);
198
+ console.log('Compression Progress: ', progress);
199
199
  }
200
200
  );
201
201
 
@@ -204,12 +204,13 @@ const result = await Video.compress(
204
204
  const result = await Video.compress(
205
205
  'https://example.com/video.mp4',
206
206
  {
207
+ progressDivider: 10,
207
208
  downloadProgress: (progress) => {
208
209
  console.log('downloadProgress: ', progress);
209
- }
210
+ },
210
211
  },
211
212
  (progress) => {
212
- console.log('Compression Progress: ', progress);
213
+ console.log('Compression Progress: ', progress);
213
214
  }
214
215
  );
215
216
  ```
@@ -227,7 +228,7 @@ const result = await Video.compress(
227
228
  compressionMethod: 'manual',
228
229
  },
229
230
  (progress) => {
230
- console.log('Compression Progress: ', progress);
231
+ console.log('Compression Progress: ', progress);
231
232
  }
232
233
  );
233
234
  ```
@@ -288,6 +289,16 @@ const uploadResult = await backgroundUpload(
288
289
  );
289
290
  ```
290
291
 
292
+ ### Download File
293
+
294
+ ```js
295
+ import { download } from 'react-native-compressor';
296
+
297
+ const downloadFileUrl = await download(url, (progress) => {
298
+ console.log('downloadProgress: ', progress);
299
+ });
300
+ ```
301
+
291
302
  # API
292
303
 
293
304
  ## Image
@@ -305,8 +316,13 @@ const uploadResult = await backgroundUpload(
305
316
  if you want to compress images like **whatsapp** then make this prop `auto`. Can be either `manual` or `auto`, defines the Compression Method.
306
317
 
307
318
  - ##### `downloadProgress?: (progress: number) => void;`
319
+
308
320
  it is callback, only trigger when we pass image url from server
309
321
 
322
+ - ##### `progressDivider?: number` (default: 0)
323
+
324
+ we uses it when we use downloadProgress
325
+
310
326
  - ###### `maxWidth: number` (default: 1280)
311
327
 
312
328
  The maximum width boundary used as the main boundary in resizing a landscape image.
@@ -344,13 +360,18 @@ const uploadResult = await backgroundUpload(
344
360
  if you want to compress videos like **whatsapp** then make this prop `auto`. Can be either `manual` or `auto`, defines the Compression Method.
345
361
 
346
362
  - ##### `downloadProgress?: (progress: number) => void;`
363
+
347
364
  it is callback, only trigger when we pass image url from server
348
365
 
366
+ - ##### `progressDivider?: number` (default: 0)
367
+
368
+ we uses it when we use downloadProgress/onProgress
369
+
349
370
  - ###### `maxSize: number` (default: 640)
350
371
 
351
372
  The maximum size can be height in case of portrait video or can be width in case of landscape video.
352
373
 
353
- - ###### `bitrate: string`
374
+ - ###### `bitrate: number`
354
375
 
355
376
  bitrate of video which reduce or increase video size. if compressionMethod will auto then this prop will not work
356
377
 
@@ -374,7 +395,7 @@ const uploadResult = await backgroundUpload(
374
395
 
375
396
  ## Background Upload
376
397
 
377
- - ###### `backgroundUpload: (url: string, fileUrl: string, options: FileSystemUploadOptions, onProgress?: ((writtem: number, total: number) => void) | undefined) => Promise<any>
398
+ - ###### backgroundUpload: (url: string, fileUrl: string, options: FileSystemUploadOptions, onProgress?: ((writtem: number, total: number) => void) | undefined) => Promise< any >
378
399
 
379
400
  - ###### ` FileSystemUploadOptions`
380
401
 
@@ -396,6 +417,10 @@ type FileSystemUploadOptions = (
396
417
  };
397
418
  ```
398
419
 
420
+ ### Download
421
+
422
+ - ##### download: ( fileUrl: string, downloadProgress?: (progress: number) => void, progressDivider?: number ) => Promise< string >
423
+
399
424
  ### Get Metadata Of Video
400
425
 
401
426
  if you want to get metadata of video than you can use this function
@@ -1,4 +1,7 @@
1
1
  buildscript {
2
+ // Buildscript is evaluated before everything else so we can't use getExtOrDefault
3
+ def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["Compressor_kotlinVersion"]
4
+
2
5
  repositories {
3
6
  google()
4
7
  mavenCentral()
@@ -6,6 +9,8 @@ buildscript {
6
9
 
7
10
  dependencies {
8
11
  classpath "com.android.tools.build:gradle:7.2.1"
12
+ // noinspection DifferentKotlinGradleVersion
13
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
9
14
  }
10
15
  }
11
16
 
@@ -14,6 +19,7 @@ def isNewArchitectureEnabled() {
14
19
  }
15
20
 
16
21
  apply plugin: "com.android.library"
22
+ apply plugin: "kotlin-android"
17
23
 
18
24
 
19
25
  def appProject = rootProject.allprojects.find { it.plugins.hasPlugin('com.android.application') }
@@ -96,12 +102,14 @@ repositories {
96
102
  google()
97
103
  }
98
104
 
105
+ def kotlin_version = getExtOrDefault("kotlinVersion")
99
106
 
100
107
  dependencies {
101
108
  // For < 0.71, this will be from the local maven repo
102
109
  // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
103
110
  //noinspection GradleDynamicVersion
104
111
  implementation "com.facebook.react:react-native:+"
112
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
105
113
  implementation 'io.github.lizhangqu:coreprogress:1.0.2'
106
114
  implementation 'com.github.numandev1:VideoCompressor:1a262bba37'
107
115
  }