react-native-compressor 1.6.4 → 1.7.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 (192) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +41 -27
  3. package/android/build.gradle +95 -42
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +0 -1
  6. package/android/src/main/AndroidManifestNew.xml +2 -0
  7. package/android/src/main/java/com/reactnativecompressor/CompressorModule.java +107 -43
  8. package/android/src/main/java/com/reactnativecompressor/CompressorPackage.java +47 -19
  9. package/android/src/main/java/com/reactnativecompressor/Image/ImageCompressor.java +28 -16
  10. package/android/src/main/java/com/reactnativecompressor/Image/utils/ImageCompressorOptions.java +5 -1
  11. package/android/src/main/java/com/reactnativecompressor/Utils/MediaCache.java +65 -0
  12. package/android/src/main/java/com/reactnativecompressor/Utils/Utils.java +162 -3
  13. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressorHelper.java +7 -4
  14. package/android/src/main/java/com/reactnativecompressor/Video/VideoModule.java +11 -22
  15. package/android/src/newarch/CompressorSpec.java +9 -0
  16. package/android/src/newarch/VideoCompressorSpec.java +9 -0
  17. package/android/src/oldarch/CompressorSpec.java +34 -0
  18. package/android/src/oldarch/VideoCompressorSpec.java +26 -0
  19. package/ios/Compressor-Bridging-Header.h +1 -0
  20. package/ios/Compressor.h +9 -1
  21. package/ios/Compressor.mm +427 -0
  22. package/ios/Compressor.xcodeproj/project.pbxproj +6 -36
  23. package/ios/Image/ImageCompressor.h +12 -7
  24. package/ios/Image/ImageCompressor.m +164 -67
  25. package/ios/Image/ImageCompressorOptions.h +1 -0
  26. package/ios/Image/ImageCompressorOptions.m +5 -1
  27. package/ios/Utils/Downloader.h +16 -0
  28. package/ios/Utils/Downloader.m +150 -0
  29. package/ios/Utils/MediaCache.h +11 -0
  30. package/ios/Utils/MediaCache.m +51 -0
  31. package/ios/Video/VideoCompressor.swift +14 -5
  32. package/lib/commonjs/Audio/index.js +13 -14
  33. package/lib/commonjs/Audio/index.js.map +1 -1
  34. package/lib/commonjs/Image/index.js +26 -7
  35. package/lib/commonjs/Image/index.js.map +1 -1
  36. package/lib/commonjs/Main.js +29 -0
  37. package/lib/commonjs/Main.js.map +1 -0
  38. package/lib/commonjs/Spec/NativeCompressor.js +10 -0
  39. package/lib/commonjs/Spec/NativeCompressor.js.map +1 -0
  40. package/lib/commonjs/Spec/NativeVideoCompressor.js +10 -0
  41. package/lib/commonjs/Spec/NativeVideoCompressor.js.map +1 -0
  42. package/lib/commonjs/Video/index.js +17 -25
  43. package/lib/commonjs/Video/index.js.map +1 -1
  44. package/lib/commonjs/expo-plugin/compressor.js +1 -4
  45. package/lib/commonjs/expo-plugin/compressor.js.map +1 -1
  46. package/lib/commonjs/index.js +21 -28
  47. package/lib/commonjs/index.js.map +1 -1
  48. package/lib/commonjs/utils/index.js +32 -51
  49. package/lib/commonjs/utils/index.js.map +1 -1
  50. package/lib/module/Audio/index.js +13 -11
  51. package/lib/module/Audio/index.js.map +1 -1
  52. package/lib/module/Image/index.js +27 -6
  53. package/lib/module/Image/index.js.map +1 -1
  54. package/lib/module/Main.js +22 -0
  55. package/lib/module/Main.js.map +1 -0
  56. package/lib/module/Spec/NativeCompressor.js +3 -0
  57. package/lib/module/Spec/NativeCompressor.js.map +1 -0
  58. package/lib/module/Spec/NativeVideoCompressor.js +3 -0
  59. package/lib/module/Spec/NativeVideoCompressor.js.map +1 -0
  60. package/lib/module/Video/index.js +18 -19
  61. package/lib/module/Video/index.js.map +1 -1
  62. package/lib/module/expo-plugin/compressor.js +1 -3
  63. package/lib/module/expo-plugin/compressor.js.map +1 -1
  64. package/lib/module/index.js +8 -5
  65. package/lib/module/index.js.map +1 -1
  66. package/lib/module/utils/index.js +26 -34
  67. package/lib/module/utils/index.js.map +1 -1
  68. package/lib/typescript/Audio/index.d.ts +2 -1
  69. package/lib/typescript/Audio/index.d.ts.map +1 -0
  70. package/lib/typescript/Image/index.d.ts +11 -6
  71. package/lib/typescript/Image/index.d.ts.map +1 -0
  72. package/lib/typescript/Main.d.ts +4 -0
  73. package/lib/typescript/Main.d.ts.map +1 -0
  74. package/lib/typescript/Spec/NativeCompressor.d.ts +14 -0
  75. package/lib/typescript/Spec/NativeCompressor.d.ts.map +1 -0
  76. package/lib/typescript/Spec/NativeVideoCompressor.d.ts +13 -0
  77. package/lib/typescript/Spec/NativeVideoCompressor.d.ts.map +1 -0
  78. package/lib/typescript/Video/index.d.ts +5 -3
  79. package/lib/typescript/Video/index.d.ts.map +1 -0
  80. package/lib/typescript/expo-plugin/compressor.d.ts +2 -3
  81. package/lib/typescript/expo-plugin/compressor.d.ts.map +1 -0
  82. package/lib/typescript/index.d.ts +7 -3
  83. package/lib/typescript/index.d.ts.map +1 -0
  84. package/lib/typescript/utils/index.d.ts +6 -4
  85. package/lib/typescript/utils/index.d.ts.map +1 -0
  86. package/package.json +62 -38
  87. package/react-native-compressor.podspec +24 -1
  88. package/src/Audio/index.tsx +6 -4
  89. package/src/Image/index.tsx +38 -5
  90. package/src/Main.tsx +41 -0
  91. package/src/Spec/NativeCompressor.ts +15 -0
  92. package/src/Spec/NativeVideoCompressor.ts +14 -0
  93. package/src/Video/index.tsx +28 -11
  94. package/src/expo-plugin/compressor.ts +2 -1
  95. package/src/index.tsx +7 -2
  96. package/src/utils/index.tsx +11 -5
  97. package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
  98. package/android/.gradle/6.9/fileChanges/last-build.bin +0 -0
  99. package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
  100. package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
  101. package/android/.gradle/6.9/gc.properties +0 -0
  102. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  103. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  104. package/android/.gradle/checksums/checksums.lock +0 -0
  105. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  106. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  107. package/android/.gradle/vcs-1/gc.properties +0 -0
  108. package/android/.idea/caches/build_file_checksums.ser +0 -0
  109. package/android/.idea/compiler.xml +0 -6
  110. package/android/.idea/gradle.xml +0 -20
  111. package/android/.idea/jarRepositories.xml +0 -45
  112. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0.xml +0 -13
  113. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_0_2_aar.xml +0 -24
  114. package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_0_0.xml +0 -11
  115. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml +0 -19
  116. package/android/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml +0 -19
  117. package/android/.idea/libraries/Gradle__androidx_autofill_autofill_1_1_0_aar.xml +0 -16
  118. package/android/.idea/libraries/Gradle__androidx_collection_collection_1_0_0.xml +0 -11
  119. package/android/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml +0 -24
  120. package/android/.idea/libraries/Gradle__androidx_core_core_1_1_0_aar.xml +0 -16
  121. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +0 -19
  122. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +0 -19
  123. package/android/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml +0 -19
  124. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +0 -24
  125. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_0_0_aar.xml +0 -24
  126. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +0 -19
  127. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml +0 -19
  128. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml +0 -19
  129. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_0_0.xml +0 -11
  130. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +0 -19
  131. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml +0 -19
  132. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_0_0_aar.xml +0 -19
  133. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_0_0_aar.xml +0 -19
  134. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +0 -19
  135. package/android/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml +0 -19
  136. package/android/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml +0 -24
  137. package/android/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml +0 -19
  138. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +0 -24
  139. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_0_1_aar.xml +0 -19
  140. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_0_0_aar.xml +0 -19
  141. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml +0 -13
  142. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +0 -19
  143. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_2_2.xml +0 -13
  144. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_5_0_aar.xml +0 -15
  145. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_5_0_aar.xml +0 -18
  146. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_5_0_aar.xml +0 -18
  147. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_5_0_aar.xml +0 -18
  148. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_5_0_aar.xml +0 -18
  149. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_native_2_5_0_aar.xml +0 -15
  150. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_5_0_aar.xml +0 -15
  151. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_ashmem_2_5_0_aar.xml +0 -15
  152. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_java_2_5_0_aar.xml +0 -15
  153. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_native_2_5_0_aar.xml +0 -15
  154. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_5_0_aar.xml +0 -15
  155. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_5_0_aar.xml +0 -15
  156. package/android/.idea/libraries/Gradle__com_facebook_fresco_ui_common_2_5_0_aar.xml +0 -15
  157. package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_18_0.xml +0 -13
  158. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_66_1_aar.xml +0 -14
  159. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_10_1.xml +0 -13
  160. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_1.xml +0 -13
  161. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_1_aar.xml +0 -15
  162. package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_19_0.xml +0 -13
  163. package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +0 -13
  164. package/android/.idea/libraries/Gradle__com_googlecode_mp4parser_isoparser_1_0_6.xml +0 -13
  165. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_4_9_1.xml +0 -13
  166. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_4_9_1.xml +0 -13
  167. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_9_0.xml +0 -13
  168. package/android/.idea/libraries/Gradle__io_github_lizhangqu_coreprogress_1_0_2_aar.xml +0 -18
  169. package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +0 -13
  170. package/android/.idea/libraries/Gradle__org_aspectj_aspectjrt_1_8_2.xml +0 -13
  171. package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +0 -13
  172. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_annotations_jvm_1_3_72.xml +0 -13
  173. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_4_10.xml +0 -13
  174. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_4_10.xml +0 -13
  175. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_4_10.xml +0 -13
  176. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_4_10.xml +0 -13
  177. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_4_0.xml +0 -13
  178. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_4_0.xml +0 -13
  179. package/android/.idea/misc.xml +0 -9
  180. package/android/.idea/modules/android.iml +0 -138
  181. package/android/.idea/modules.xml +0 -8
  182. package/android/.idea/vcs.xml +0 -6
  183. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  184. package/android/gradle/wrapper/gradle-wrapper.properties +0 -5
  185. package/android/gradlew +0 -183
  186. package/android/gradlew.bat +0 -100
  187. package/android/local.properties +0 -8
  188. package/ios/Compressor.m +0 -351
  189. package/ios/Compressor.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  190. package/ios/Compressor.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  191. package/ios/Compressor.xcodeproj/xcshareddata/xcschemes/Compressor.xcscheme +0 -67
  192. package/ios/Compressor.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist +0 -22
@@ -3,14 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.uuidv4 = exports.checkUrlAndOptions = exports.getDetails = exports.getVideoMetaData = exports.getRealPath = exports.generateFilePath = exports.DEFAULT_COMPRESS_AUDIO_OPTIONS = exports.AUDIO_BITRATE = void 0;
7
-
8
- var _reactNative = require("react-native");
9
-
6
+ exports.uuidv4 = exports.getVideoMetaData = exports.getRealPath = exports.getFileSize = exports.getDetails = exports.generateFilePath = exports.checkUrlAndOptions = exports.DEFAULT_COMPRESS_AUDIO_OPTIONS = exports.AUDIO_BITRATE = void 0;
7
+ var _Main = require("../Main");
10
8
  /* eslint-disable no-bitwise */
11
- const {
12
- Compressor
13
- } = _reactNative.NativeModules;
9
+
14
10
  const AUDIO_BITRATE = [256, 192, 160, 128, 96, 64, 32];
15
11
  exports.AUDIO_BITRATE = AUDIO_BITRATE;
16
12
  const INCORRECT_INPUT_PATH = 'Incorrect input path. Please provide a valid one';
@@ -22,84 +18,72 @@ const DEFAULT_COMPRESS_AUDIO_OPTIONS = {
22
18
  outputFilePath: ''
23
19
  };
24
20
  exports.DEFAULT_COMPRESS_AUDIO_OPTIONS = DEFAULT_COMPRESS_AUDIO_OPTIONS;
25
-
26
21
  const generateFilePath = extension => {
27
22
  return new Promise((resolve, reject) => {
28
- Compressor.generateFilePath(extension).then(result => resolve('file://' + result)).catch(error => reject(error));
23
+ _Main.Compressor.generateFilePath(extension).then(result => resolve('file://' + result)).catch(error => reject(error));
29
24
  });
30
25
  };
31
-
32
26
  exports.generateFilePath = generateFilePath;
33
-
34
- const getRealPath = (path, type = 'video') => {
35
- return Compressor.getRealPath(path, type);
27
+ const getRealPath = function (path) {
28
+ let type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'video';
29
+ return _Main.Compressor.getRealPath(path, type);
36
30
  };
37
-
38
31
  exports.getRealPath = getRealPath;
39
-
40
32
  const getVideoMetaData = path => {
41
- return Compressor.getVideoMetaData(path);
33
+ return _Main.Compressor.getVideoMetaData(path);
42
34
  };
43
-
44
35
  exports.getVideoMetaData = getVideoMetaData;
45
-
46
36
  const isValidUrl = url => /^(?:\w+:)?\/\/([^\s\.]+\.\S{2}|localhost[\:?\d]*)\S*$/.test(url);
47
-
48
37
  const getFullFilename = path => {
49
38
  if (typeof path === 'string') {
50
- let _path = path; // In case of remote media, check if the url would be valid one
39
+ let _path = path;
51
40
 
41
+ // In case of remote media, check if the url would be valid one
52
42
  if (path.includes('http') && !isValidUrl(path)) {
53
43
  return INCORRECT_INPUT_PATH;
54
- } // In case of url, check if it ends with "/" and do not consider it furthermore
55
-
44
+ }
56
45
 
46
+ // In case of url, check if it ends with "/" and do not consider it furthermore
57
47
  if (_path[_path.length - 1] === '/') _path = _path.substring(0, path.length - 1);
58
-
59
48
  const array = _path.split('/');
60
-
61
49
  return array.length > 1 ? array[array.length - 1] : INCORRECT_INPUT_PATH;
62
50
  }
63
-
64
51
  return INCORRECT_INPUT_PATH;
65
52
  };
66
-
67
53
  const isFileNameError = filename => {
68
54
  return filename === INCORRECT_INPUT_PATH;
69
55
  };
70
-
71
56
  const getFilename = path => {
72
57
  const fullFilename = getFullFilename(path);
73
-
74
- if (!isFileNameError(fullFilename)) {
58
+ if (fullFilename && !isFileNameError(fullFilename)) {
75
59
  const array = fullFilename.split('.');
76
60
  return array.length > 1 ? array.slice(0, -1).join('') : array.join('');
77
61
  }
78
-
79
62
  return fullFilename;
80
63
  };
81
-
82
64
  const isRemoteMedia = path => {
83
- return typeof path === 'string' ? path.split(':/')[0].includes('http') : null;
65
+ var _path$split;
66
+ return typeof path === 'string' ? path === null || path === void 0 || (_path$split = path.split(':/')) === null || _path$split === void 0 || (_path$split = _path$split[0]) === null || _path$split === void 0 ? void 0 : _path$split.includes('http') : null;
84
67
  };
85
-
86
- const getDetails = (mediaFullPath, extesnion = 'mp3') => {
68
+ const getDetails = function (mediaFullPath) {
69
+ let extesnion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'mp3';
87
70
  return new Promise(async (resolve, reject) => {
88
71
  try {
89
72
  // Since we used "-v error", a work around is to call first this command before the following
90
73
  const result = {};
91
-
92
74
  if (result !== 0) {
93
75
  throw new Error('Failed to execute command');
94
- } // get the output result of the command
95
- // example of output {"programs": [], "streams": [{"width": 640,"height": 360}], "format": {"size": "15804433"}}
96
-
76
+ }
97
77
 
78
+ // get the output result of the command
79
+ // example of output {"programs": [], "streams": [{"width": 640,"height": 360}], "format": {"size": "15804433"}}
98
80
  let mediaInfo = await {};
99
- mediaInfo = JSON.parse(mediaInfo); // execute second command
81
+ mediaInfo = JSON.parse(mediaInfo);
100
82
 
101
- const mediaInformation = await {}; // treat both results
83
+ // execute second command
84
+ const mediaInformation = await {};
102
85
 
86
+ // treat both results
103
87
  mediaInformation.filename = getFilename(mediaFullPath);
104
88
  mediaInformation.bitrate = mediaInformation.getMediaProperties().bit_rate;
105
89
  mediaInformation.extension = extesnion;
@@ -111,22 +95,19 @@ const getDetails = (mediaFullPath, extesnion = 'mp3') => {
111
95
  }
112
96
  });
113
97
  };
114
-
115
98
  exports.getDetails = getDetails;
116
-
117
99
  const checkUrlAndOptions = async (url, options) => {
118
100
  if (!url) {
119
101
  throw new Error('Compression url is empty, please provide a url for compression.');
120
102
  }
121
-
122
103
  const defaultResult = {
123
104
  outputFilePath: '',
124
105
  isCorrect: true,
125
106
  message: ''
126
- }; // Check if output file is correct
107
+ };
127
108
 
109
+ // Check if output file is correct
128
110
  let outputFilePath;
129
-
130
111
  try {
131
112
  // use default output file
132
113
  // or use new file from cache folder
@@ -137,7 +118,6 @@ const checkUrlAndOptions = async (url, options) => {
137
118
  outputFilePath = await generateFilePath('mp3');
138
119
  defaultResult.outputFilePath = outputFilePath;
139
120
  }
140
-
141
121
  if (outputFilePath === undefined || outputFilePath === null) {
142
122
  defaultResult.isCorrect = false;
143
123
  defaultResult.message = options.outputFilePath ? INCORRECT_OUTPUT_PATH : ERROR_OCCUR_WHILE_GENERATING_OUTPUT_FILE;
@@ -149,17 +129,18 @@ const checkUrlAndOptions = async (url, options) => {
149
129
  return defaultResult;
150
130
  }
151
131
  };
152
-
153
132
  exports.checkUrlAndOptions = checkUrlAndOptions;
154
-
133
+ const getFileSize = async filePath => {
134
+ return _Main.Compressor.getFileSize(filePath);
135
+ };
136
+ exports.getFileSize = getFileSize;
155
137
  const uuidv4 = () => {
156
138
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
157
139
  const r = parseFloat('0.' + Math.random().toString().replace('0.', '') + new Date().getTime()) * 16 | 0,
158
- // eslint-disable-next-line eqeqeq
159
- v = c == 'x' ? r : r & 0x3 | 0x8;
140
+ // eslint-disable-next-line eqeqeq
141
+ v = c == 'x' ? r : r & 0x3 | 0x8;
160
142
  return v.toString(16);
161
143
  });
162
144
  };
163
-
164
145
  exports.uuidv4 = uuidv4;
165
146
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["Compressor","NativeModules","AUDIO_BITRATE","INCORRECT_INPUT_PATH","INCORRECT_OUTPUT_PATH","ERROR_OCCUR_WHILE_GENERATING_OUTPUT_FILE","DEFAULT_COMPRESS_AUDIO_OPTIONS","bitrate","quality","outputFilePath","generateFilePath","extension","Promise","resolve","reject","then","result","catch","error","getRealPath","path","type","getVideoMetaData","isValidUrl","url","test","getFullFilename","_path","includes","length","substring","array","split","isFileNameError","filename","getFilename","fullFilename","slice","join","isRemoteMedia","getDetails","mediaFullPath","extesnion","Error","mediaInfo","JSON","parse","mediaInformation","getMediaProperties","bit_rate","size","Number","format","e","checkUrlAndOptions","options","defaultResult","isCorrect","message","undefined","uuidv4","replace","c","r","parseFloat","Math","random","toString","Date","getTime","v"],"mappings":"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","sourcesContent":["/* eslint-disable no-bitwise */\nimport { NativeModules } from 'react-native';\nconst { Compressor } = NativeModules;\nexport const AUDIO_BITRATE = [256, 192, 160, 128, 96, 64, 32];\ntype qualityType = 'low' | 'medium' | 'high';\nconst INCORRECT_INPUT_PATH = 'Incorrect input path. Please provide a valid one';\nconst INCORRECT_OUTPUT_PATH =\n 'Incorrect output path. Please provide a valid one';\nconst ERROR_OCCUR_WHILE_GENERATING_OUTPUT_FILE =\n 'An error occur while generating output file';\ntype audioCompresssionType = {\n bitrate?: number;\n quality: qualityType;\n outputFilePath?: string | undefined | null;\n};\n\nexport type defaultResultType = {\n outputFilePath: string | undefined | null;\n isCorrect: boolean;\n message: string;\n};\n\nexport const DEFAULT_COMPRESS_AUDIO_OPTIONS: audioCompresssionType = {\n bitrate: 96,\n quality: 'medium',\n outputFilePath: '',\n};\n\nexport type AudioType = {\n compress(value: string, options?: audioCompresssionType): Promise<string>;\n};\n\nexport const generateFilePath: any = (extension: string) => {\n return new Promise((resolve, reject) => {\n Compressor.generateFilePath(extension)\n .then((result: any) => resolve('file://' + result))\n .catch((error: any) => reject(error));\n });\n};\n\nexport const getRealPath: any = (\n path: string,\n type: 'video' | 'imaage' = 'video'\n) => {\n return Compressor.getRealPath(path, type);\n};\n\nexport const getVideoMetaData: any = (path: string) => {\n return Compressor.getVideoMetaData(path);\n};\n\nconst isValidUrl = (url: string) =>\n /^(?:\\w+:)?\\/\\/([^\\s\\.]+\\.\\S{2}|localhost[\\:?\\d]*)\\S*$/.test(url);\n\nconst getFullFilename = (path: string | null) => {\n if (typeof path === 'string') {\n let _path = path;\n\n // In case of remote media, check if the url would be valid one\n if (path.includes('http') && !isValidUrl(path)) {\n return INCORRECT_INPUT_PATH;\n }\n\n // In case of url, check if it ends with \"/\" and do not consider it furthermore\n if (_path[_path.length - 1] === '/')\n _path = _path.substring(0, path.length - 1);\n\n const array = _path.split('/');\n return array.length > 1 ? array[array.length - 1] : INCORRECT_INPUT_PATH;\n }\n return INCORRECT_INPUT_PATH;\n};\n\nconst isFileNameError = (filename: string) => {\n return filename === INCORRECT_INPUT_PATH;\n};\n\nconst getFilename = (path: string | null) => {\n const fullFilename = getFullFilename(path);\n if (!isFileNameError(fullFilename)) {\n const array = fullFilename.split('.');\n return array.length > 1 ? array.slice(0, -1).join('') : array.join('');\n }\n return fullFilename;\n};\n\nconst isRemoteMedia = (path: string | null) => {\n return typeof path === 'string' ? path.split(':/')[0].includes('http') : null;\n};\n\nexport const getDetails = (\n mediaFullPath: string,\n extesnion: 'mp3' | 'mp4' = 'mp3'\n): Promise<any | null> => {\n return new Promise(async (resolve, reject) => {\n try {\n // Since we used \"-v error\", a work around is to call first this command before the following\n const result: any = {};\n if (result !== 0) {\n throw new Error('Failed to execute command');\n }\n\n // get the output result of the command\n // example of output {\"programs\": [], \"streams\": [{\"width\": 640,\"height\": 360}], \"format\": {\"size\": \"15804433\"}}\n let mediaInfo: any = await {};\n mediaInfo = JSON.parse(mediaInfo);\n\n // execute second command\n const mediaInformation: any = await {};\n\n // treat both results\n mediaInformation.filename = getFilename(mediaFullPath);\n mediaInformation.bitrate = mediaInformation.getMediaProperties().bit_rate;\n mediaInformation.extension = extesnion;\n mediaInformation.isRemoteMedia = isRemoteMedia(mediaFullPath);\n mediaInformation.size = Number(mediaInfo.format.size);\n\n resolve(mediaInformation);\n } catch (e) {\n reject(e);\n }\n });\n};\n\nexport const checkUrlAndOptions = async (\n url: string,\n options: audioCompresssionType\n): Promise<defaultResultType> => {\n if (!url) {\n throw new Error(\n 'Compression url is empty, please provide a url for compression.'\n );\n }\n const defaultResult: defaultResultType = {\n outputFilePath: '',\n isCorrect: true,\n message: '',\n };\n\n // Check if output file is correct\n let outputFilePath: string | undefined | null;\n try {\n // use default output file\n // or use new file from cache folder\n if (options.outputFilePath) {\n outputFilePath = options.outputFilePath;\n defaultResult.outputFilePath = outputFilePath;\n } else {\n outputFilePath = await generateFilePath('mp3');\n defaultResult.outputFilePath = outputFilePath;\n }\n if (outputFilePath === undefined || outputFilePath === null) {\n defaultResult.isCorrect = false;\n defaultResult.message = options.outputFilePath\n ? INCORRECT_OUTPUT_PATH\n : ERROR_OCCUR_WHILE_GENERATING_OUTPUT_FILE;\n }\n } catch (e) {\n defaultResult.isCorrect = false;\n defaultResult.message = options.outputFilePath\n ? INCORRECT_OUTPUT_PATH\n : ERROR_OCCUR_WHILE_GENERATING_OUTPUT_FILE;\n } finally {\n return defaultResult;\n }\n};\n\nexport const uuidv4 = () => {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r =\n (parseFloat(\n '0.' +\n Math.random().toString().replace('0.', '') +\n new Date().getTime()\n ) *\n 16) |\n 0,\n // eslint-disable-next-line eqeqeq\n v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n};\n"]}
1
+ {"version":3,"names":["_Main","require","AUDIO_BITRATE","exports","INCORRECT_INPUT_PATH","INCORRECT_OUTPUT_PATH","ERROR_OCCUR_WHILE_GENERATING_OUTPUT_FILE","DEFAULT_COMPRESS_AUDIO_OPTIONS","bitrate","quality","outputFilePath","generateFilePath","extension","Promise","resolve","reject","Compressor","then","result","catch","error","getRealPath","path","type","arguments","length","undefined","getVideoMetaData","isValidUrl","url","test","getFullFilename","_path","includes","substring","array","split","isFileNameError","filename","getFilename","fullFilename","slice","join","isRemoteMedia","_path$split","getDetails","mediaFullPath","extesnion","Error","mediaInfo","JSON","parse","mediaInformation","getMediaProperties","bit_rate","size","Number","format","e","checkUrlAndOptions","options","defaultResult","isCorrect","message","getFileSize","filePath","uuidv4","replace","c","r","parseFloat","Math","random","toString","Date","getTime","v"],"sourceRoot":"../../../src","sources":["utils/index.tsx"],"mappings":"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"}
@@ -1,45 +1,47 @@
1
- import { NativeModules } from 'react-native';
1
+ import { Compressor } from '../Main';
2
2
  import { AUDIO_BITRATE, DEFAULT_COMPRESS_AUDIO_OPTIONS, checkUrlAndOptions } from '../utils';
3
- const NativeAudio = NativeModules.Compressor;
3
+ const NativeAudio = Compressor;
4
4
  const Audio = {
5
- compress: async (url, options = DEFAULT_COMPRESS_AUDIO_OPTIONS) => {
5
+ compress: async function (url) {
6
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_COMPRESS_AUDIO_OPTIONS;
6
7
  try {
7
8
  const checkUrlAndOptionsResult = await checkUrlAndOptions(url, options);
8
-
9
9
  if (!checkUrlAndOptionsResult.isCorrect) {
10
10
  throw checkUrlAndOptionsResult.message;
11
11
  } else {
12
12
  // Get resulting output file path
13
+
13
14
  // Get media details
14
15
  // const mediaDetails: any = await getDetails(url).catch(() => null);
15
16
  const mediaDetails = {
16
17
  bitrate: 0
17
- }; // Initialize bitrate
18
+ };
18
19
 
20
+ // Initialize bitrate
19
21
  let bitrate = DEFAULT_COMPRESS_AUDIO_OPTIONS.bitrate;
20
-
21
22
  if (mediaDetails && mediaDetails.bitrate) {
22
23
  // Check and return the appropriate bitrate according to quality expected
23
24
  for (let i = 0; i < AUDIO_BITRATE.length; i++) {
24
25
  // Check a particular bitrate to return its nearest lower according to quality
26
+ //@ts-ignore
25
27
  if (mediaDetails.bitrate > AUDIO_BITRATE[i]) {
26
28
  if (i + 2 < AUDIO_BITRATE.length) {
27
29
  if (options.quality === 'low') bitrate = AUDIO_BITRATE[i + 2];else if (options.quality === 'medium') bitrate = AUDIO_BITRATE[i + 1];else bitrate = AUDIO_BITRATE[i];
28
30
  } else if (i + 1 < AUDIO_BITRATE.length) {
29
31
  if (options.quality === 'low') bitrate = AUDIO_BITRATE[i + 1];else bitrate = AUDIO_BITRATE[i];
30
32
  } else bitrate = AUDIO_BITRATE[i];
31
-
32
33
  break;
33
- } // Check if the matching bitrate is the last in the array
34
-
34
+ }
35
35
 
36
- if (mediaDetails.bitrate <= AUDIO_BITRATE[AUDIO_BITRATE.length - 1]) {
36
+ // Check if the matching bitrate is the last in the array
37
+ if (
38
+ //@ts-ignore
39
+ mediaDetails.bitrate <= AUDIO_BITRATE[AUDIO_BITRATE.length - 1]) {
37
40
  bitrate = AUDIO_BITRATE[AUDIO_BITRATE.length - 1];
38
41
  break;
39
42
  }
40
43
  }
41
44
  }
42
-
43
45
  return NativeAudio.compress_audio(url, {
44
46
  bitrate,
45
47
  quality: options.quality
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["NativeModules","AUDIO_BITRATE","DEFAULT_COMPRESS_AUDIO_OPTIONS","checkUrlAndOptions","NativeAudio","Compressor","Audio","compress","url","options","checkUrlAndOptionsResult","isCorrect","message","mediaDetails","bitrate","i","length","quality","compress_audio","error"],"mappings":"AAAA,SAASA,aAAT,QAA8B,cAA9B;AACA,SACEC,aADF,EAGEC,8BAHF,EAKEC,kBALF,QAMO,UANP;AAOA,MAAMC,WAAW,GAAGJ,aAAa,CAACK,UAAlC;AAEA,MAAMC,KAAgB,GAAG;AACvBC,EAAAA,QAAQ,EAAE,OAAOC,GAAP,EAAYC,OAAO,GAAGP,8BAAtB,KAAyD;AACjE,QAAI;AACF,YAAMQ,wBAA2C,GAC/C,MAAMP,kBAAkB,CAACK,GAAD,EAAMC,OAAN,CAD1B;;AAEA,UAAI,CAACC,wBAAwB,CAACC,SAA9B,EAAyC;AACvC,cAAMD,wBAAwB,CAACE,OAA/B;AACD,OAFD,MAEO;AACL;AAEA;AACA;AACA,cAAMC,YAAiB,GAAG;AACxBC,UAAAA,OAAO,EAAE;AADe,SAA1B,CALK,CASL;;AACA,YAAIA,OAAY,GAAGZ,8BAA8B,CAACY,OAAlD;;AAEA,YAAID,YAAY,IAAIA,YAAY,CAACC,OAAjC,EAA0C;AACxC;AACA,eAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGd,aAAa,CAACe,MAAlC,EAA0CD,CAAC,EAA3C,EAA+C;AAC7C;AACA,gBAAIF,YAAY,CAACC,OAAb,GAAuBb,aAAa,CAACc,CAAD,CAAxC,EAA6C;AAC3C,kBAAIA,CAAC,GAAG,CAAJ,GAAQd,aAAa,CAACe,MAA1B,EAAkC;AAChC,oBAAIP,OAAO,CAACQ,OAAR,KAAoB,KAAxB,EAA+BH,OAAO,GAAGb,aAAa,CAACc,CAAC,GAAG,CAAL,CAAvB,CAA/B,KACK,IAAIN,OAAO,CAACQ,OAAR,KAAoB,QAAxB,EACHH,OAAO,GAAGb,aAAa,CAACc,CAAC,GAAG,CAAL,CAAvB,CADG,KAEAD,OAAO,GAAGb,aAAa,CAACc,CAAD,CAAvB;AACN,eALD,MAKO,IAAIA,CAAC,GAAG,CAAJ,GAAQd,aAAa,CAACe,MAA1B,EAAkC;AACvC,oBAAIP,OAAO,CAACQ,OAAR,KAAoB,KAAxB,EAA+BH,OAAO,GAAGb,aAAa,CAACc,CAAC,GAAG,CAAL,CAAvB,CAA/B,KACKD,OAAO,GAAGb,aAAa,CAACc,CAAD,CAAvB;AACN,eAHM,MAGAD,OAAO,GAAGb,aAAa,CAACc,CAAD,CAAvB;;AACP;AACD,aAb4C,CAe7C;;;AACA,gBACEF,YAAY,CAACC,OAAb,IAAwBb,aAAa,CAACA,aAAa,CAACe,MAAd,GAAuB,CAAxB,CADvC,EAEE;AACAF,cAAAA,OAAO,GAAGb,aAAa,CAACA,aAAa,CAACe,MAAd,GAAuB,CAAxB,CAAvB;AACA;AACD;AACF;AACF;;AAED,eAAOZ,WAAW,CAACc,cAAZ,CAA2BV,GAA3B,EAAgC;AACrCM,UAAAA,OADqC;AAErCG,UAAAA,OAAO,EAAER,OAAO,CAACQ;AAFoB,SAAhC,CAAP;AAID;AACF,KAjDD,CAiDE,OAAOE,KAAP,EAAmB;AACnB,YAAMA,KAAK,CAACP,OAAZ;AACD;AACF;AAtDsB,CAAzB;AAyDA,eAAeN,KAAf","sourcesContent":["import { NativeModules } from 'react-native';\nimport {\n AUDIO_BITRATE,\n AudioType,\n DEFAULT_COMPRESS_AUDIO_OPTIONS,\n defaultResultType,\n checkUrlAndOptions,\n} from '../utils';\nconst NativeAudio = NativeModules.Compressor;\n\nconst Audio: AudioType = {\n compress: async (url, options = DEFAULT_COMPRESS_AUDIO_OPTIONS) => {\n try {\n const checkUrlAndOptionsResult: defaultResultType =\n await checkUrlAndOptions(url, options);\n if (!checkUrlAndOptionsResult.isCorrect) {\n throw checkUrlAndOptionsResult.message;\n } else {\n // Get resulting output file path\n\n // Get media details\n // const mediaDetails: any = await getDetails(url).catch(() => null);\n const mediaDetails: any = {\n bitrate: 0,\n };\n\n // Initialize bitrate\n let bitrate: any = DEFAULT_COMPRESS_AUDIO_OPTIONS.bitrate;\n\n if (mediaDetails && mediaDetails.bitrate) {\n // Check and return the appropriate bitrate according to quality expected\n for (let i = 0; i < AUDIO_BITRATE.length; i++) {\n // Check a particular bitrate to return its nearest lower according to quality\n if (mediaDetails.bitrate > AUDIO_BITRATE[i]) {\n if (i + 2 < AUDIO_BITRATE.length) {\n if (options.quality === 'low') bitrate = AUDIO_BITRATE[i + 2];\n else if (options.quality === 'medium')\n bitrate = AUDIO_BITRATE[i + 1];\n else bitrate = AUDIO_BITRATE[i];\n } else if (i + 1 < AUDIO_BITRATE.length) {\n if (options.quality === 'low') bitrate = AUDIO_BITRATE[i + 1];\n else bitrate = AUDIO_BITRATE[i];\n } else bitrate = AUDIO_BITRATE[i];\n break;\n }\n\n // Check if the matching bitrate is the last in the array\n if (\n mediaDetails.bitrate <= AUDIO_BITRATE[AUDIO_BITRATE.length - 1]\n ) {\n bitrate = AUDIO_BITRATE[AUDIO_BITRATE.length - 1];\n break;\n }\n }\n }\n\n return NativeAudio.compress_audio(url, {\n bitrate,\n quality: options.quality,\n });\n }\n } catch (error: any) {\n throw error.message;\n }\n },\n};\n\nexport default Audio;\n"]}
1
+ {"version":3,"names":["Compressor","AUDIO_BITRATE","DEFAULT_COMPRESS_AUDIO_OPTIONS","checkUrlAndOptions","NativeAudio","Audio","compress","url","options","arguments","length","undefined","checkUrlAndOptionsResult","isCorrect","message","mediaDetails","bitrate","i","quality","compress_audio","error"],"sourceRoot":"../../../src","sources":["Audio/index.tsx"],"mappings":"AAAA,SAASA,UAAU,QAAQ,SAAS;AAEpC,SACEC,aAAa,EACbC,8BAA8B,EAC9BC,kBAAkB,QACb,UAAU;AAEjB,MAAMC,WAAW,GAAGJ,UAAU;AAE9B,MAAMK,KAAgB,GAAG;EACvBC,QAAQ,EAAE,eAAAA,CAAOC,GAAG,EAA+C;IAAA,IAA7CC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGP,8BAA8B;IAC5D,IAAI;MACF,MAAMU,wBAA2C,GAC/C,MAAMT,kBAAkB,CAACI,GAAG,EAAEC,OAAO,CAAC;MACxC,IAAI,CAACI,wBAAwB,CAACC,SAAS,EAAE;QACvC,MAAMD,wBAAwB,CAACE,OAAO;MACxC,CAAC,MAAM;QACL;;QAEA;QACA;QACA,MAAMC,YAAiB,GAAG;UACxBC,OAAO,EAAE;QACX,CAAC;;QAED;QACA,IAAIA,OAAY,GAAGd,8BAA8B,CAACc,OAAO;QAEzD,IAAID,YAAY,IAAIA,YAAY,CAACC,OAAO,EAAE;UACxC;UACA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhB,aAAa,CAACS,MAAM,EAAEO,CAAC,EAAE,EAAE;YAC7C;YACA;YACA,IAAIF,YAAY,CAACC,OAAO,GAAGf,aAAa,CAACgB,CAAC,CAAC,EAAE;cAC3C,IAAIA,CAAC,GAAG,CAAC,GAAGhB,aAAa,CAACS,MAAM,EAAE;gBAChC,IAAIF,OAAO,CAACU,OAAO,KAAK,KAAK,EAAEF,OAAO,GAAGf,aAAa,CAACgB,CAAC,GAAG,CAAC,CAAC,CAAC,KACzD,IAAIT,OAAO,CAACU,OAAO,KAAK,QAAQ,EACnCF,OAAO,GAAGf,aAAa,CAACgB,CAAC,GAAG,CAAC,CAAC,CAAC,KAC5BD,OAAO,GAAGf,aAAa,CAACgB,CAAC,CAAC;cACjC,CAAC,MAAM,IAAIA,CAAC,GAAG,CAAC,GAAGhB,aAAa,CAACS,MAAM,EAAE;gBACvC,IAAIF,OAAO,CAACU,OAAO,KAAK,KAAK,EAAEF,OAAO,GAAGf,aAAa,CAACgB,CAAC,GAAG,CAAC,CAAC,CAAC,KACzDD,OAAO,GAAGf,aAAa,CAACgB,CAAC,CAAC;cACjC,CAAC,MAAMD,OAAO,GAAGf,aAAa,CAACgB,CAAC,CAAC;cACjC;YACF;;YAEA;YACA;YACE;YACAF,YAAY,CAACC,OAAO,IAAIf,aAAa,CAACA,aAAa,CAACS,MAAM,GAAG,CAAC,CAAC,EAC/D;cACAM,OAAO,GAAGf,aAAa,CAACA,aAAa,CAACS,MAAM,GAAG,CAAC,CAAC;cACjD;YACF;UACF;QACF;QAEA,OAAON,WAAW,CAACe,cAAc,CAACZ,GAAG,EAAE;UACrCS,OAAO;UACPE,OAAO,EAAEV,OAAO,CAACU;QACnB,CAAC,CAAC;MACJ;IACF,CAAC,CAAC,OAAOE,KAAU,EAAE;MACnB,MAAMA,KAAK,CAACN,OAAO;IACrB;EACF;AACF,CAAC;AAED,eAAeT,KAAK"}
@@ -1,14 +1,35 @@
1
- import { NativeModules } from 'react-native';
1
+ import { Compressor } from '../Main';
2
+ import { uuidv4 } from '../utils';
2
3
  const base64UrlRegex = /^data:image\/.*;(?:charset=.{3,5};)?base64,/;
3
- const NativeImage = NativeModules.Compressor;
4
+ import { NativeEventEmitter } from 'react-native';
5
+ const ImageCompressEventEmitter = new NativeEventEmitter(Compressor);
6
+ const NativeImage = Compressor;
4
7
  const Image = {
5
- compress: (value, options) => {
8
+ compress: async function (value) {
9
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6
10
  if (!value) {
7
11
  throw new Error('Compression value is empty, please provide a value for compression.');
8
12
  }
9
-
10
- const cleanData = value.replace(base64UrlRegex, '');
11
- return NativeImage.image_compress(cleanData, options);
13
+ const uuid = uuidv4();
14
+ let subscription;
15
+ try {
16
+ if (options !== null && options !== void 0 && options.downloadProgress) {
17
+ //@ts-ignore
18
+ options.uuid = uuid;
19
+ subscription = ImageCompressEventEmitter.addListener('downloadProgress', event => {
20
+ if (event.uuid === uuid) {
21
+ options.downloadProgress && options.downloadProgress(event.data.progress);
22
+ }
23
+ });
24
+ }
25
+ const cleanData = value.replace(base64UrlRegex, '');
26
+ return await NativeImage.image_compress(cleanData, options);
27
+ } finally {
28
+ // @ts-ignore
29
+ if (subscription) {
30
+ subscription.remove();
31
+ }
32
+ }
12
33
  }
13
34
  };
14
35
  export default Image;
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["NativeModules","base64UrlRegex","NativeImage","Compressor","Image","compress","value","options","Error","cleanData","replace","image_compress"],"mappings":"AAAA,SAASA,aAAT,QAA8B,cAA9B;AACA,MAAMC,cAAc,GAAG,6CAAvB;AAyCA,MAAMC,WAAW,GAAGF,aAAa,CAACG,UAAlC;AAMA,MAAMC,KAAgB,GAAG;AACvBC,EAAAA,QAAQ,EAAE,CAACC,KAAD,EAAQC,OAAR,KAAoB;AAC5B,QAAI,CAACD,KAAL,EAAY;AACV,YAAM,IAAIE,KAAJ,CACJ,qEADI,CAAN;AAGD;;AACD,UAAMC,SAAS,GAAGH,KAAK,CAACI,OAAN,CAAcT,cAAd,EAA8B,EAA9B,CAAlB;AACA,WAAOC,WAAW,CAACS,cAAZ,CAA2BF,SAA3B,EAAsCF,OAAtC,CAAP;AACD;AATsB,CAAzB;AAYA,eAAeH,KAAf","sourcesContent":["import { NativeModules } from 'react-native';\nconst base64UrlRegex = /^data:image\\/.*;(?:charset=.{3,5};)?base64,/;\n\nexport type InputType = 'base64' | 'uri';\n\nexport type OutputType = 'jpg' | 'png';\n\nexport type ReturnableOutputType = 'uri' | 'base64';\n\nexport type compressionMethod = 'auto' | 'manual';\n\nexport type CompressorOptions = {\n /***\n * The maximum width boundary used when compressing a landscape image.\n */\n compressionMethod?: compressionMethod;\n /***\n * The maximum width boundary used when compressing a landscape image.\n */\n maxWidth?: number;\n /***\n * The maximum height boundary used when compressing a portrait image.\n */\n maxHeight?: number;\n /***\n * The compression factor used when compressing JPEG images. Won't be used in PNG.\n */\n quality?: number;\n /***\n * The type of data the input value contains.\n */\n input?: InputType;\n /***\n * The output image type.\n */\n output?: OutputType;\n /***\n * The output that will return to user.\n */\n returnableOutputType?: ReturnableOutputType;\n};\n\nconst NativeImage = NativeModules.Compressor;\n\ntype ImageType = {\n compress(value: string, options?: CompressorOptions): Promise<string>;\n};\n\nconst Image: ImageType = {\n compress: (value, options) => {\n if (!value) {\n throw new Error(\n 'Compression value is empty, please provide a value for compression.'\n );\n }\n const cleanData = value.replace(base64UrlRegex, '');\n return NativeImage.image_compress(cleanData, options);\n },\n};\n\nexport default Image;\n"]}
1
+ {"version":3,"names":["Compressor","uuidv4","base64UrlRegex","NativeEventEmitter","ImageCompressEventEmitter","NativeImage","Image","compress","value","options","arguments","length","undefined","Error","uuid","subscription","downloadProgress","addListener","event","data","progress","cleanData","replace","image_compress","remove"],"sourceRoot":"../../../src","sources":["Image/index.tsx"],"mappings":"AAAA,SAASA,UAAU,QAAQ,SAAS;AACpC,SAASC,MAAM,QAAQ,UAAU;AACjC,MAAMC,cAAc,GAAG,6CAA6C;AAEpE,SAASC,kBAAkB,QAAQ,cAAc;AA6CjD,MAAMC,yBAAyB,GAAG,IAAID,kBAAkB,CAACH,UAAU,CAAC;AAEpE,MAAMK,WAAW,GAAGL,UAAU;AAM9B,MAAMM,KAAgB,GAAG;EACvBC,QAAQ,EAAE,eAAAA,CAAOC,KAAK,EAAmB;IAAA,IAAjBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAClC,IAAI,CAACF,KAAK,EAAE;MACV,MAAM,IAAIK,KAAK,CACb,qEACF,CAAC;IACH;IAEA,MAAMC,IAAI,GAAGb,MAAM,CAAC,CAAC;IACrB,IAAIc,YAAqC;IACzC,IAAI;MACF,IAAIN,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEO,gBAAgB,EAAE;QAC7B;QACAP,OAAO,CAACK,IAAI,GAAGA,IAAI;QACnBC,YAAY,GAAGX,yBAAyB,CAACa,WAAW,CAClD,kBAAkB,EACjBC,KAAU,IAAK;UACd,IAAIA,KAAK,CAACJ,IAAI,KAAKA,IAAI,EAAE;YACvBL,OAAO,CAACO,gBAAgB,IACtBP,OAAO,CAACO,gBAAgB,CAACE,KAAK,CAACC,IAAI,CAACC,QAAQ,CAAC;UACjD;QACF,CACF,CAAC;MACH;MAEA,MAAMC,SAAS,GAAGb,KAAK,CAACc,OAAO,CAACpB,cAAc,EAAE,EAAE,CAAC;MACnD,OAAO,MAAMG,WAAW,CAACkB,cAAc,CAACF,SAAS,EAAEZ,OAAO,CAAC;IAC7D,CAAC,SAAS;MACR;MACA,IAAIM,YAAY,EAAE;QAChBA,YAAY,CAACS,MAAM,CAAC,CAAC;MACvB;IACF;EACF;AACF,CAAC;AAED,eAAelB,KAAK"}
@@ -0,0 +1,22 @@
1
+ import { NativeModules, Platform } from 'react-native';
2
+ const LINKING_ERROR = `The package 'react-native-compressor' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
3
+ ios: "- You have run 'pod install'\n",
4
+ default: ''
5
+ }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
6
+
7
+ // @ts-expect-error
8
+ const isTurboModuleEnabled = global.__turboModuleProxy != null;
9
+ const CompressorModule = isTurboModuleEnabled ? require('./Spec/NativeCompressor').default : NativeModules.Compressor;
10
+ const VideoCompressorModule = isTurboModuleEnabled ? require('./Spec/NativeVideoCompressor').default : NativeModules.VideoCompressor;
11
+ const Compressor = CompressorModule ? CompressorModule : new Proxy({}, {
12
+ get() {
13
+ throw new Error(LINKING_ERROR);
14
+ }
15
+ });
16
+ const VideoCompressor = VideoCompressorModule ? VideoCompressorModule : new Proxy({}, {
17
+ get() {
18
+ throw new Error(LINKING_ERROR);
19
+ }
20
+ });
21
+ export { Compressor, VideoCompressor };
22
+ //# sourceMappingURL=Main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","CompressorModule","require","Compressor","VideoCompressorModule","VideoCompressor","Proxy","get","Error"],"sourceRoot":"../../src","sources":["Main.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GAChB,kFAAiF,GAClFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,gBAAgB,GAAGH,oBAAoB,GACzCI,OAAO,CAAC,yBAAyB,CAAC,CAACL,OAAO,GAC1CL,aAAa,CAACW,UAAU;AAC5B,MAAMC,qBAAqB,GAAGN,oBAAoB,GAC9CI,OAAO,CAAC,8BAA8B,CAAC,CAACL,OAAO,GAC/CL,aAAa,CAACa,eAAe;AAEjC,MAAMF,UAAU,GAAGF,gBAAgB,GAC/BA,gBAAgB,GAChB,IAAIK,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACd,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,MAAMW,eAAe,GAAGD,qBAAqB,GACzCA,qBAAqB,GACrB,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACd,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,SAASS,UAAU,EAAEE,eAAe"}
@@ -0,0 +1,3 @@
1
+ import { TurboModuleRegistry } from 'react-native';
2
+ export default TurboModuleRegistry.getEnforcing('Compressor');
3
+ //# sourceMappingURL=NativeCompressor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["Spec/NativeCompressor.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAalD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { TurboModuleRegistry } from 'react-native';
2
+ export default TurboModuleRegistry.getEnforcing('VideoCompressor');
3
+ //# sourceMappingURL=NativeVideoCompressor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["Spec/NativeVideoCompressor.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAYlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,iBAAiB,CAAC"}
@@ -1,11 +1,11 @@
1
- import { NativeModules, NativeEventEmitter, Platform } from 'react-native';
1
+ import { NativeEventEmitter, Platform } from 'react-native';
2
+ import { VideoCompressor } from '../Main';
2
3
  import { uuidv4 } from '../utils';
3
- const VideoCompressEventEmitter = new NativeEventEmitter(NativeModules.VideoCompressor);
4
- const NativeVideoCompressor = NativeModules.VideoCompressor;
4
+ const VideoCompressEventEmitter = new NativeEventEmitter(VideoCompressor);
5
+ const NativeVideoCompressor = VideoCompressor;
5
6
  export const backgroundUpload = async (url, fileUrl, options, onProgress) => {
6
7
  const uuid = uuidv4();
7
8
  let subscription;
8
-
9
9
  try {
10
10
  if (onProgress) {
11
11
  subscription = VideoCompressEventEmitter.addListener('VideoCompressorProgress', event => {
@@ -14,11 +14,9 @@ export const backgroundUpload = async (url, fileUrl, options, onProgress) => {
14
14
  }
15
15
  });
16
16
  }
17
-
18
17
  if (Platform.OS === 'android' && fileUrl.includes('file://')) {
19
18
  fileUrl = fileUrl.replace('file://', '');
20
19
  }
21
-
22
20
  const result = await NativeVideoCompressor.upload(fileUrl, {
23
21
  uuid,
24
22
  method: options.httpMethod,
@@ -40,7 +38,7 @@ const Video = {
40
38
  compress: async (fileUrl, options, onProgress) => {
41
39
  const uuid = uuidv4();
42
40
  let subscription;
43
-
41
+ let subscription2;
44
42
  try {
45
43
  if (onProgress) {
46
44
  subscription = VideoCompressEventEmitter.addListener('videoCompressProgress', event => {
@@ -49,32 +47,34 @@ const Video = {
49
47
  }
50
48
  });
51
49
  }
52
-
50
+ if (options !== null && options !== void 0 && options.downloadProgress) {
51
+ //@ts-ignore
52
+ subscription2 = VideoCompressEventEmitter.addListener('downloadProgress', event => {
53
+ if (event.uuid === uuid) {
54
+ options.downloadProgress && options.downloadProgress(event.data.progress);
55
+ }
56
+ });
57
+ }
53
58
  const modifiedOptions = {
54
59
  uuid
55
60
  };
56
61
  if (options !== null && options !== void 0 && options.bitrate) modifiedOptions.bitrate = options === null || options === void 0 ? void 0 : options.bitrate;
57
-
58
62
  if (options !== null && options !== void 0 && options.compressionMethod) {
59
63
  modifiedOptions.compressionMethod = options === null || options === void 0 ? void 0 : options.compressionMethod;
60
64
  } else {
61
- modifiedOptions.compressionMethod = 'manual';
65
+ modifiedOptions.compressionMethod = 'auto';
62
66
  }
63
-
64
67
  if (options !== null && options !== void 0 && options.maxSize) {
65
68
  modifiedOptions.maxSize = options === null || options === void 0 ? void 0 : options.maxSize;
66
69
  } else {
67
70
  modifiedOptions.maxSize = 640;
68
71
  }
69
-
70
72
  if ((options === null || options === void 0 ? void 0 : options.minimumFileSizeForCompress) !== undefined) {
71
73
  modifiedOptions.minimumFileSizeForCompress = options === null || options === void 0 ? void 0 : options.minimumFileSizeForCompress;
72
74
  }
73
-
74
75
  if (options !== null && options !== void 0 && options.getCancellationId) {
75
76
  options === null || options === void 0 ? void 0 : options.getCancellationId(uuid);
76
77
  }
77
-
78
78
  const result = await NativeVideoCompressor.compress(fileUrl, modifiedOptions);
79
79
  return result;
80
80
  } finally {
@@ -82,30 +82,29 @@ const Video = {
82
82
  if (subscription) {
83
83
  subscription.remove();
84
84
  }
85
+ //@ts-ignore
86
+ if (subscription2) {
87
+ subscription2.remove();
88
+ }
85
89
  }
86
90
  },
87
91
  backgroundUpload,
88
92
  cancelCompression,
89
-
90
93
  activateBackgroundTask(onExpired) {
91
94
  if (onExpired) {
92
95
  const subscription = VideoCompressEventEmitter.addListener('backgroundTaskExpired', event => {
93
96
  onExpired(event);
94
-
95
97
  if (subscription) {
96
98
  subscription.remove();
97
99
  }
98
100
  });
99
101
  }
100
-
101
102
  return NativeVideoCompressor.activateBackgroundTask({});
102
103
  },
103
-
104
104
  deactivateBackgroundTask() {
105
105
  VideoCompressEventEmitter.removeAllListeners('backgroundTaskExpired');
106
106
  return NativeVideoCompressor.deactivateBackgroundTask({});
107
107
  }
108
-
109
108
  };
110
109
  export default Video;
111
110
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["NativeModules","NativeEventEmitter","Platform","uuidv4","VideoCompressEventEmitter","VideoCompressor","NativeVideoCompressor","backgroundUpload","url","fileUrl","options","onProgress","uuid","subscription","addListener","event","data","written","total","OS","includes","replace","result","upload","method","httpMethod","headers","remove","cancelCompression","cancellationId","Video","compress","progress","modifiedOptions","bitrate","compressionMethod","maxSize","minimumFileSizeForCompress","undefined","getCancellationId","activateBackgroundTask","onExpired","deactivateBackgroundTask","removeAllListeners"],"mappings":"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","sourcesContent":["import {\n NativeModules,\n NativeEventEmitter,\n Platform,\n NativeEventSubscription,\n} from 'react-native';\nimport { uuidv4 } from '../utils';\n\nexport declare enum FileSystemUploadType {\n BINARY_CONTENT = 0,\n MULTIPART = 1,\n}\n\nexport declare type FileSystemAcceptedUploadHttpMethod =\n | 'POST'\n | 'PUT'\n | 'PATCH';\nexport type compressionMethod = 'auto' | 'manual';\ntype videoCompresssionType = {\n bitrate?: number;\n maxSize?: number;\n compressionMethod?: compressionMethod;\n minimumFileSizeForCompress?: number;\n getCancellationId?: (cancellationId: string) => void;\n};\n\nexport declare enum FileSystemSessionType {\n BACKGROUND = 0,\n FOREGROUND = 1,\n}\n\nexport declare type HTTPResponse = {\n status: number;\n headers: Record<string, string>;\n body: string;\n};\n\nexport declare type FileSystemUploadOptions = (\n | {\n uploadType?: FileSystemUploadType.BINARY_CONTENT;\n }\n | {\n uploadType: FileSystemUploadType.MULTIPART;\n fieldName?: string;\n mimeType?: string;\n parameters?: Record<string, string>;\n }\n) & {\n headers?: Record<string, string>;\n httpMethod?: FileSystemAcceptedUploadHttpMethod;\n sessionType?: FileSystemSessionType;\n};\n\nexport type VideoCompressorType = {\n compress(\n fileUrl: string,\n options?: videoCompresssionType,\n onProgress?: (progress: number) => void\n ): Promise<string>;\n cancelCompression(cancellationId: string): void;\n backgroundUpload(\n url: string,\n fileUrl: string,\n options: FileSystemUploadOptions,\n onProgress?: (writtem: number, total: number) => void\n ): Promise<any>;\n activateBackgroundTask(onExpired?: (data: any) => void): Promise<any>;\n deactivateBackgroundTask(): Promise<any>;\n};\n\nconst VideoCompressEventEmitter = new NativeEventEmitter(\n NativeModules.VideoCompressor\n);\n\nconst NativeVideoCompressor = NativeModules.VideoCompressor;\n\nexport const backgroundUpload = async (\n url: string,\n fileUrl: string,\n options: FileSystemUploadOptions,\n onProgress?: (writtem: number, total: number) => void\n): Promise<any> => {\n const uuid = uuidv4();\n let subscription: NativeEventSubscription;\n try {\n if (onProgress) {\n subscription = VideoCompressEventEmitter.addListener(\n 'VideoCompressorProgress',\n (event: any) => {\n if (event.uuid === uuid) {\n onProgress(event.data.written, event.data.total);\n }\n }\n );\n }\n if (Platform.OS === 'android' && fileUrl.includes('file://')) {\n fileUrl = fileUrl.replace('file://', '');\n }\n const result = await NativeVideoCompressor.upload(fileUrl, {\n uuid,\n method: options.httpMethod,\n headers: options.headers,\n url,\n });\n return result;\n } finally {\n // @ts-ignore\n if (subscription) {\n subscription.remove();\n }\n }\n};\n\nexport const cancelCompression = (cancellationId: string) => {\n return NativeVideoCompressor.cancelCompression(cancellationId);\n};\n\nconst Video: VideoCompressorType = {\n compress: async (\n fileUrl: string,\n options?: videoCompresssionType,\n onProgress?: (progress: number) => void\n ) => {\n const uuid = uuidv4();\n let subscription: NativeEventSubscription;\n try {\n if (onProgress) {\n subscription = VideoCompressEventEmitter.addListener(\n 'videoCompressProgress',\n (event: any) => {\n if (event.uuid === uuid) {\n onProgress(event.data.progress);\n }\n }\n );\n }\n const modifiedOptions: {\n uuid: string;\n bitrate?: number;\n compressionMethod?: compressionMethod;\n maxSize?: number;\n minimumFileSizeForCompress?: number;\n } = { uuid };\n if (options?.bitrate) modifiedOptions.bitrate = options?.bitrate;\n if (options?.compressionMethod) {\n modifiedOptions.compressionMethod = options?.compressionMethod;\n } else {\n modifiedOptions.compressionMethod = 'manual';\n }\n if (options?.maxSize) {\n modifiedOptions.maxSize = options?.maxSize;\n } else {\n modifiedOptions.maxSize = 640;\n }\n if (options?.minimumFileSizeForCompress !== undefined) {\n modifiedOptions.minimumFileSizeForCompress =\n options?.minimumFileSizeForCompress;\n }\n if (options?.getCancellationId) {\n options?.getCancellationId(uuid);\n }\n const result = await NativeVideoCompressor.compress(\n fileUrl,\n modifiedOptions\n );\n return result;\n } finally {\n // @ts-ignore\n if (subscription) {\n subscription.remove();\n }\n }\n },\n backgroundUpload,\n cancelCompression,\n activateBackgroundTask(onExpired?) {\n if (onExpired) {\n const subscription: NativeEventSubscription =\n VideoCompressEventEmitter.addListener(\n 'backgroundTaskExpired',\n (event: any) => {\n onExpired(event);\n if (subscription) {\n subscription.remove();\n }\n }\n );\n }\n return NativeVideoCompressor.activateBackgroundTask({});\n },\n deactivateBackgroundTask() {\n VideoCompressEventEmitter.removeAllListeners('backgroundTaskExpired');\n return NativeVideoCompressor.deactivateBackgroundTask({});\n },\n} as VideoCompressorType;\n\nexport default Video;\n"]}
1
+ {"version":3,"names":["NativeEventEmitter","Platform","VideoCompressor","uuidv4","VideoCompressEventEmitter","NativeVideoCompressor","backgroundUpload","url","fileUrl","options","onProgress","uuid","subscription","addListener","event","data","written","total","OS","includes","replace","result","upload","method","httpMethod","headers","remove","cancelCompression","cancellationId","Video","compress","subscription2","progress","downloadProgress","modifiedOptions","bitrate","compressionMethod","maxSize","minimumFileSizeForCompress","undefined","getCancellationId","activateBackgroundTask","onExpired","deactivateBackgroundTask","removeAllListeners"],"sourceRoot":"../../../src","sources":["Video/index.tsx"],"mappings":"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"}
@@ -1,8 +1,6 @@
1
+ //@ts-ignore
1
2
  import { createRunOncePlugin } from '@expo/config-plugins';
2
-
3
3
  const pkg = require('../../../package.json');
4
-
5
4
  const withCompressor = config => config;
6
-
7
5
  export default createRunOncePlugin(withCompressor, pkg.name, pkg.version);
8
6
  //# sourceMappingURL=compressor.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["compressor.ts"],"names":["createRunOncePlugin","pkg","require","withCompressor","config","name","version"],"mappings":"AAAA,SAAuBA,mBAAvB,QAAkD,sBAAlD;;AACA,MAAMC,GAAG,GAAGC,OAAO,CAAC,uBAAD,CAAnB;;AAIA,MAAMC,cAAmC,GAAIC,MAAD,IAAYA,MAAxD;;AAEA,eAAeJ,mBAAmB,CAACG,cAAD,EAAiBF,GAAG,CAACI,IAArB,EAA2BJ,GAAG,CAACK,OAA/B,CAAlC","sourcesContent":["import { ConfigPlugin, createRunOncePlugin } from '@expo/config-plugins';\nconst pkg = require('../../../package.json');\n\ntype Props = {};\n\nconst withCompressor: ConfigPlugin<Props> = (config) => config;\n\nexport default createRunOncePlugin(withCompressor, pkg.name, pkg.version);\n"]}
1
+ {"version":3,"names":["createRunOncePlugin","pkg","require","withCompressor","config","name","version"],"sourceRoot":"../../../src","sources":["expo-plugin/compressor.ts"],"mappings":"AAAA;AACA,SAAuBA,mBAAmB,QAAQ,sBAAsB;AACxE,MAAMC,GAAG,GAAGC,OAAO,CAAC,uBAAuB,CAAC;AAI5C,MAAMC,cAAmC,GAAIC,MAAU,IAAKA,MAAM;AAElE,eAAeJ,mBAAmB,CAACG,cAAc,EAAEF,GAAG,CAACI,IAAI,EAAEJ,GAAG,CAACK,OAAO,CAAC"}
@@ -1,9 +1,11 @@
1
- import Video, { VideoCompressorType, backgroundUpload } from './Video';
1
+ import Video, { backgroundUpload } from './Video';
2
2
  import Audio from './Audio';
3
3
  import Image from './Image';
4
- import { getDetails, uuidv4, generateFilePath, getRealPath, getVideoMetaData } from './utils';
5
- export { Video, Audio, Image, backgroundUpload //type
6
- , VideoCompressorType, getDetails, uuidv4, generateFilePath, getRealPath, getVideoMetaData };
4
+ import { getDetails, uuidv4, generateFilePath, getRealPath, getVideoMetaData, getFileSize } from './utils';
5
+ export { Video, Audio, Image, backgroundUpload,
6
+ //type
7
+
8
+ getDetails, uuidv4, generateFilePath, getRealPath, getVideoMetaData, getFileSize };
7
9
  export default {
8
10
  Video,
9
11
  Audio,
@@ -13,6 +15,7 @@ export default {
13
15
  uuidv4,
14
16
  generateFilePath,
15
17
  getRealPath,
16
- getVideoMetaData
18
+ getVideoMetaData,
19
+ getFileSize
17
20
  };
18
21
  //# sourceMappingURL=index.js.map