react-native-compressor 1.6.4 → 1.7.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 (181) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +5 -11
  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 +88 -33
  8. package/android/src/main/java/com/reactnativecompressor/CompressorPackage.java +47 -19
  9. package/android/src/main/java/com/reactnativecompressor/Image/utils/ImageCompressorOptions.java +1 -1
  10. package/android/src/main/java/com/reactnativecompressor/Utils/Utils.java +1 -1
  11. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressorHelper.java +7 -4
  12. package/android/src/main/java/com/reactnativecompressor/Video/VideoModule.java +8 -6
  13. package/android/src/newarch/CompressorSpec.java +9 -0
  14. package/android/src/newarch/VideoCompressorSpec.java +9 -0
  15. package/android/src/oldarch/CompressorSpec.java +28 -0
  16. package/android/src/oldarch/VideoCompressorSpec.java +26 -0
  17. package/ios/Compressor.h +7 -0
  18. package/ios/Compressor.mm +395 -0
  19. package/ios/Compressor.xcodeproj/project.pbxproj +6 -36
  20. package/ios/Video/VideoCompressor.swift +2 -2
  21. package/lib/commonjs/Audio/index.js +13 -14
  22. package/lib/commonjs/Audio/index.js.map +1 -1
  23. package/lib/commonjs/Image/index.js +2 -5
  24. package/lib/commonjs/Image/index.js.map +1 -1
  25. package/lib/commonjs/Main.js +29 -0
  26. package/lib/commonjs/Main.js.map +1 -0
  27. package/lib/commonjs/Spec/NativeCompressor.js +10 -0
  28. package/lib/commonjs/Spec/NativeCompressor.js.map +1 -0
  29. package/lib/commonjs/Spec/NativeVideoCompressor.js +10 -0
  30. package/lib/commonjs/Spec/NativeVideoCompressor.js.map +1 -0
  31. package/lib/commonjs/Video/index.js +3 -24
  32. package/lib/commonjs/Video/index.js.map +1 -1
  33. package/lib/commonjs/expo-plugin/compressor.js +1 -4
  34. package/lib/commonjs/expo-plugin/compressor.js.map +1 -1
  35. package/lib/commonjs/index.js +21 -28
  36. package/lib/commonjs/index.js.map +1 -1
  37. package/lib/commonjs/utils/index.js +32 -51
  38. package/lib/commonjs/utils/index.js.map +1 -1
  39. package/lib/module/Audio/index.js +13 -11
  40. package/lib/module/Audio/index.js.map +1 -1
  41. package/lib/module/Image/index.js +2 -3
  42. package/lib/module/Image/index.js.map +1 -1
  43. package/lib/module/Main.js +22 -0
  44. package/lib/module/Main.js.map +1 -0
  45. package/lib/module/Spec/NativeCompressor.js +3 -0
  46. package/lib/module/Spec/NativeCompressor.js.map +1 -0
  47. package/lib/module/Spec/NativeVideoCompressor.js +3 -0
  48. package/lib/module/Spec/NativeVideoCompressor.js.map +1 -0
  49. package/lib/module/Video/index.js +4 -18
  50. package/lib/module/Video/index.js.map +1 -1
  51. package/lib/module/expo-plugin/compressor.js +1 -3
  52. package/lib/module/expo-plugin/compressor.js.map +1 -1
  53. package/lib/module/index.js +8 -5
  54. package/lib/module/index.js.map +1 -1
  55. package/lib/module/utils/index.js +26 -34
  56. package/lib/module/utils/index.js.map +1 -1
  57. package/lib/typescript/Audio/index.d.ts +2 -1
  58. package/lib/typescript/Audio/index.d.ts.map +1 -0
  59. package/lib/typescript/Image/index.d.ts +7 -6
  60. package/lib/typescript/Image/index.d.ts.map +1 -0
  61. package/lib/typescript/Main.d.ts +4 -0
  62. package/lib/typescript/Main.d.ts.map +1 -0
  63. package/lib/typescript/Spec/NativeCompressor.d.ts +12 -0
  64. package/lib/typescript/Spec/NativeCompressor.d.ts.map +1 -0
  65. package/lib/typescript/Spec/NativeVideoCompressor.d.ts +13 -0
  66. package/lib/typescript/Spec/NativeVideoCompressor.d.ts.map +1 -0
  67. package/lib/typescript/Video/index.d.ts +4 -3
  68. package/lib/typescript/Video/index.d.ts.map +1 -0
  69. package/lib/typescript/expo-plugin/compressor.d.ts +2 -3
  70. package/lib/typescript/expo-plugin/compressor.d.ts.map +1 -0
  71. package/lib/typescript/index.d.ts +7 -3
  72. package/lib/typescript/index.d.ts.map +1 -0
  73. package/lib/typescript/utils/index.d.ts +6 -4
  74. package/lib/typescript/utils/index.d.ts.map +1 -0
  75. package/package.json +59 -37
  76. package/react-native-compressor.podspec +24 -1
  77. package/src/Audio/index.tsx +6 -4
  78. package/src/Image/index.tsx +2 -2
  79. package/src/Main.tsx +41 -0
  80. package/src/Spec/NativeCompressor.ts +13 -0
  81. package/src/Spec/NativeVideoCompressor.ts +14 -0
  82. package/src/Video/index.tsx +5 -10
  83. package/src/expo-plugin/compressor.ts +2 -1
  84. package/src/index.tsx +7 -2
  85. package/src/utils/index.tsx +11 -5
  86. package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
  87. package/android/.gradle/6.9/fileChanges/last-build.bin +0 -0
  88. package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
  89. package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
  90. package/android/.gradle/6.9/gc.properties +0 -0
  91. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  92. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  93. package/android/.gradle/checksums/checksums.lock +0 -0
  94. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  95. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  96. package/android/.gradle/vcs-1/gc.properties +0 -0
  97. package/android/.idea/caches/build_file_checksums.ser +0 -0
  98. package/android/.idea/compiler.xml +0 -6
  99. package/android/.idea/gradle.xml +0 -20
  100. package/android/.idea/jarRepositories.xml +0 -45
  101. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0.xml +0 -13
  102. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_0_2_aar.xml +0 -24
  103. package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_0_0.xml +0 -11
  104. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml +0 -19
  105. package/android/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml +0 -19
  106. package/android/.idea/libraries/Gradle__androidx_autofill_autofill_1_1_0_aar.xml +0 -16
  107. package/android/.idea/libraries/Gradle__androidx_collection_collection_1_0_0.xml +0 -11
  108. package/android/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml +0 -24
  109. package/android/.idea/libraries/Gradle__androidx_core_core_1_1_0_aar.xml +0 -16
  110. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +0 -19
  111. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +0 -19
  112. package/android/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml +0 -19
  113. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +0 -24
  114. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_0_0_aar.xml +0 -24
  115. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +0 -19
  116. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml +0 -19
  117. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml +0 -19
  118. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_0_0.xml +0 -11
  119. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +0 -19
  120. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml +0 -19
  121. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_0_0_aar.xml +0 -19
  122. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_0_0_aar.xml +0 -19
  123. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +0 -19
  124. package/android/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml +0 -19
  125. package/android/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml +0 -24
  126. package/android/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml +0 -19
  127. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +0 -24
  128. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_0_1_aar.xml +0 -19
  129. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_0_0_aar.xml +0 -19
  130. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml +0 -13
  131. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +0 -19
  132. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_2_2.xml +0 -13
  133. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_5_0_aar.xml +0 -15
  134. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_5_0_aar.xml +0 -18
  135. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_5_0_aar.xml +0 -18
  136. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_5_0_aar.xml +0 -18
  137. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_5_0_aar.xml +0 -18
  138. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_native_2_5_0_aar.xml +0 -15
  139. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_5_0_aar.xml +0 -15
  140. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_ashmem_2_5_0_aar.xml +0 -15
  141. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_java_2_5_0_aar.xml +0 -15
  142. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_native_2_5_0_aar.xml +0 -15
  143. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_5_0_aar.xml +0 -15
  144. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_5_0_aar.xml +0 -15
  145. package/android/.idea/libraries/Gradle__com_facebook_fresco_ui_common_2_5_0_aar.xml +0 -15
  146. package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_18_0.xml +0 -13
  147. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_66_1_aar.xml +0 -14
  148. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_10_1.xml +0 -13
  149. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_1.xml +0 -13
  150. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_1_aar.xml +0 -15
  151. package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_19_0.xml +0 -13
  152. package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +0 -13
  153. package/android/.idea/libraries/Gradle__com_googlecode_mp4parser_isoparser_1_0_6.xml +0 -13
  154. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_4_9_1.xml +0 -13
  155. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_4_9_1.xml +0 -13
  156. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_9_0.xml +0 -13
  157. package/android/.idea/libraries/Gradle__io_github_lizhangqu_coreprogress_1_0_2_aar.xml +0 -18
  158. package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +0 -13
  159. package/android/.idea/libraries/Gradle__org_aspectj_aspectjrt_1_8_2.xml +0 -13
  160. package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +0 -13
  161. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_annotations_jvm_1_3_72.xml +0 -13
  162. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_4_10.xml +0 -13
  163. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_4_10.xml +0 -13
  164. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_4_10.xml +0 -13
  165. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_4_10.xml +0 -13
  166. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_4_0.xml +0 -13
  167. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_4_0.xml +0 -13
  168. package/android/.idea/misc.xml +0 -9
  169. package/android/.idea/modules/android.iml +0 -138
  170. package/android/.idea/modules.xml +0 -8
  171. package/android/.idea/vcs.xml +0 -6
  172. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  173. package/android/gradle/wrapper/gradle-wrapper.properties +0 -5
  174. package/android/gradlew +0 -183
  175. package/android/gradlew.bat +0 -100
  176. package/android/local.properties +0 -8
  177. package/ios/Compressor.m +0 -351
  178. package/ios/Compressor.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  179. package/ios/Compressor.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  180. package/ios/Compressor.xcodeproj/xcshareddata/xcschemes/Compressor.xcscheme +0 -67
  181. package/ios/Compressor.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist +0 -22
@@ -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,12 +1,11 @@
1
- import { NativeModules } from 'react-native';
1
+ import { Compressor } from '../Main';
2
2
  const base64UrlRegex = /^data:image\/.*;(?:charset=.{3,5};)?base64,/;
3
- const NativeImage = NativeModules.Compressor;
3
+ const NativeImage = Compressor;
4
4
  const Image = {
5
5
  compress: (value, options) => {
6
6
  if (!value) {
7
7
  throw new Error('Compression value is empty, please provide a value for compression.');
8
8
  }
9
-
10
9
  const cleanData = value.replace(base64UrlRegex, '');
11
10
  return NativeImage.image_compress(cleanData, options);
12
11
  }
@@ -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","base64UrlRegex","NativeImage","Image","compress","value","options","Error","cleanData","replace","image_compress"],"sourceRoot":"../../../src","sources":["Image/index.tsx"],"mappings":"AAAA,SAASA,UAAU,QAAQ,SAAS;AACpC,MAAMC,cAAc,GAAG,6CAA6C;AAyCpE,MAAMC,WAAW,GAAGF,UAAU;AAM9B,MAAMG,KAAgB,GAAG;EACvBC,QAAQ,EAAEA,CAACC,KAAK,EAAEC,OAAO,KAAK;IAC5B,IAAI,CAACD,KAAK,EAAE;MACV,MAAM,IAAIE,KAAK,CACb,qEACF,CAAC;IACH;IACA,MAAMC,SAAS,GAAGH,KAAK,CAACI,OAAO,CAACR,cAAc,EAAE,EAAE,CAAC;IACnD,OAAOC,WAAW,CAACQ,cAAc,CAACF,SAAS,EAAEF,OAAO,CAAC;EACvD;AACF,CAAC;AAED,eAAeH,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;AAWlD,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,6 @@ const Video = {
40
38
  compress: async (fileUrl, options, onProgress) => {
41
39
  const uuid = uuidv4();
42
40
  let subscription;
43
-
44
41
  try {
45
42
  if (onProgress) {
46
43
  subscription = VideoCompressEventEmitter.addListener('videoCompressProgress', event => {
@@ -49,32 +46,26 @@ const Video = {
49
46
  }
50
47
  });
51
48
  }
52
-
53
49
  const modifiedOptions = {
54
50
  uuid
55
51
  };
56
52
  if (options !== null && options !== void 0 && options.bitrate) modifiedOptions.bitrate = options === null || options === void 0 ? void 0 : options.bitrate;
57
-
58
53
  if (options !== null && options !== void 0 && options.compressionMethod) {
59
54
  modifiedOptions.compressionMethod = options === null || options === void 0 ? void 0 : options.compressionMethod;
60
55
  } else {
61
56
  modifiedOptions.compressionMethod = 'manual';
62
57
  }
63
-
64
58
  if (options !== null && options !== void 0 && options.maxSize) {
65
59
  modifiedOptions.maxSize = options === null || options === void 0 ? void 0 : options.maxSize;
66
60
  } else {
67
61
  modifiedOptions.maxSize = 640;
68
62
  }
69
-
70
63
  if ((options === null || options === void 0 ? void 0 : options.minimumFileSizeForCompress) !== undefined) {
71
64
  modifiedOptions.minimumFileSizeForCompress = options === null || options === void 0 ? void 0 : options.minimumFileSizeForCompress;
72
65
  }
73
-
74
66
  if (options !== null && options !== void 0 && options.getCancellationId) {
75
67
  options === null || options === void 0 ? void 0 : options.getCancellationId(uuid);
76
68
  }
77
-
78
69
  const result = await NativeVideoCompressor.compress(fileUrl, modifiedOptions);
79
70
  return result;
80
71
  } finally {
@@ -86,26 +77,21 @@ const Video = {
86
77
  },
87
78
  backgroundUpload,
88
79
  cancelCompression,
89
-
90
80
  activateBackgroundTask(onExpired) {
91
81
  if (onExpired) {
92
82
  const subscription = VideoCompressEventEmitter.addListener('backgroundTaskExpired', event => {
93
83
  onExpired(event);
94
-
95
84
  if (subscription) {
96
85
  subscription.remove();
97
86
  }
98
87
  });
99
88
  }
100
-
101
89
  return NativeVideoCompressor.activateBackgroundTask({});
102
90
  },
103
-
104
91
  deactivateBackgroundTask() {
105
92
  VideoCompressEventEmitter.removeAllListeners('backgroundTaskExpired');
106
93
  return NativeVideoCompressor.deactivateBackgroundTask({});
107
94
  }
108
-
109
95
  };
110
96
  export default Video;
111
97
  //# 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","progress","modifiedOptions","bitrate","compressionMethod","maxSize","minimumFileSizeForCompress","undefined","getCancellationId","activateBackgroundTask","onExpired","deactivateBackgroundTask","removeAllListeners"],"sourceRoot":"../../../src","sources":["Video/index.tsx"],"mappings":"AAAA,SAASA,kBAAkB,EAAEC,QAAQ,QAAQ,cAAc;AAE3D,SAASC,eAAe,QAAQ,SAAS;AACzC,SAASC,MAAM,QAAQ,UAAU;AAgEjC,MAAMC,yBAAyB,GAAG,IAAIJ,kBAAkB,CAACE,eAAe,CAAC;AAEzE,MAAMG,qBAAqB,GAAGH,eAAe;AAE7C,OAAO,MAAMI,gBAAgB,GAAG,MAAAA,CAC9BC,GAAW,EACXC,OAAe,EACfC,OAAgC,EAChCC,UAAqD,KACpC;EACjB,MAAMC,IAAI,GAAGR,MAAM,CAAC,CAAC;EACrB,IAAIS,YAAqC;EACzC,IAAI;IACF,IAAIF,UAAU,EAAE;MACdE,YAAY,GAAGR,yBAAyB,CAACS,WAAW,CAClD,yBAAyB,EACxBC,KAAU,IAAK;QACd,IAAIA,KAAK,CAACH,IAAI,KAAKA,IAAI,EAAE;UACvBD,UAAU,CAACI,KAAK,CAACC,IAAI,CAACC,OAAO,EAAEF,KAAK,CAACC,IAAI,CAACE,KAAK,CAAC;QAClD;MACF,CACF,CAAC;IACH;IACA,IAAIhB,QAAQ,CAACiB,EAAE,KAAK,SAAS,IAAIV,OAAO,CAACW,QAAQ,CAAC,SAAS,CAAC,EAAE;MAC5DX,OAAO,GAAGA,OAAO,CAACY,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IAC1C;IACA,MAAMC,MAAM,GAAG,MAAMhB,qBAAqB,CAACiB,MAAM,CAACd,OAAO,EAAE;MACzDG,IAAI;MACJY,MAAM,EAAEd,OAAO,CAACe,UAAU;MAC1BC,OAAO,EAAEhB,OAAO,CAACgB,OAAO;MACxBlB;IACF,CAAC,CAAC;IACF,OAAOc,MAAM;EACf,CAAC,SAAS;IACR;IACA,IAAIT,YAAY,EAAE;MAChBA,YAAY,CAACc,MAAM,CAAC,CAAC;IACvB;EACF;AACF,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAAIC,cAAsB,IAAK;EAC3D,OAAOvB,qBAAqB,CAACsB,iBAAiB,CAACC,cAAc,CAAC;AAChE,CAAC;AAED,MAAMC,KAA0B,GAAG;EACjCC,QAAQ,EAAE,MAAAA,CACRtB,OAAe,EACfC,OAA+B,EAC/BC,UAAuC,KACpC;IACH,MAAMC,IAAI,GAAGR,MAAM,CAAC,CAAC;IACrB,IAAIS,YAAqC;IACzC,IAAI;MACF,IAAIF,UAAU,EAAE;QACdE,YAAY,GAAGR,yBAAyB,CAACS,WAAW,CAClD,uBAAuB,EACtBC,KAAU,IAAK;UACd,IAAIA,KAAK,CAACH,IAAI,KAAKA,IAAI,EAAE;YACvBD,UAAU,CAACI,KAAK,CAACC,IAAI,CAACgB,QAAQ,CAAC;UACjC;QACF,CACF,CAAC;MACH;MACA,MAAMC,eAML,GAAG;QAAErB;MAAK,CAAC;MACZ,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEwB,OAAO,EAAED,eAAe,CAACC,OAAO,GAAGxB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEwB,OAAO;MAChE,IAAIxB,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEyB,iBAAiB,EAAE;QAC9BF,eAAe,CAACE,iBAAiB,GAAGzB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEyB,iBAAiB;MAChE,CAAC,MAAM;QACLF,eAAe,CAACE,iBAAiB,GAAG,QAAQ;MAC9C;MACA,IAAIzB,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE0B,OAAO,EAAE;QACpBH,eAAe,CAACG,OAAO,GAAG1B,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE0B,OAAO;MAC5C,CAAC,MAAM;QACLH,eAAe,CAACG,OAAO,GAAG,GAAG;MAC/B;MACA,IAAI,CAAA1B,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE2B,0BAA0B,MAAKC,SAAS,EAAE;QACrDL,eAAe,CAACI,0BAA0B,GACxC3B,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE2B,0BAA0B;MACvC;MACA,IAAI3B,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE6B,iBAAiB,EAAE;QAC9B7B,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE6B,iBAAiB,CAAC3B,IAAI,CAAC;MAClC;MACA,MAAMU,MAAM,GAAG,MAAMhB,qBAAqB,CAACyB,QAAQ,CACjDtB,OAAO,EACPwB,eACF,CAAC;MACD,OAAOX,MAAM;IACf,CAAC,SAAS;MACR;MACA,IAAIT,YAAY,EAAE;QAChBA,YAAY,CAACc,MAAM,CAAC,CAAC;MACvB;IACF;EACF,CAAC;EACDpB,gBAAgB;EAChBqB,iBAAiB;EACjBY,sBAAsBA,CAACC,SAAU,EAAE;IACjC,IAAIA,SAAS,EAAE;MACb,MAAM5B,YAAqC,GACzCR,yBAAyB,CAACS,WAAW,CACnC,uBAAuB,EACtBC,KAAU,IAAK;QACd0B,SAAS,CAAC1B,KAAK,CAAC;QAChB,IAAIF,YAAY,EAAE;UAChBA,YAAY,CAACc,MAAM,CAAC,CAAC;QACvB;MACF,CACF,CAAC;IACL;IACA,OAAOrB,qBAAqB,CAACkC,sBAAsB,CAAC,CAAC,CAAC,CAAC;EACzD,CAAC;EACDE,wBAAwBA,CAAA,EAAG;IACzBrC,yBAAyB,CAACsC,kBAAkB,CAAC,uBAAuB,CAAC;IACrE,OAAOrC,qBAAqB,CAACoC,wBAAwB,CAAC,CAAC,CAAC,CAAC;EAC3D;AACF,CAAwB;AAExB,eAAeZ,KAAK"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["Video","VideoCompressorType","backgroundUpload","Audio","Image","getDetails","uuidv4","generateFilePath","getRealPath","getVideoMetaData"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,mBAAhB,EAAqCC,gBAArC,QAA6D,SAA7D;AACA,OAAOC,KAAP,MAAkB,SAAlB;AACA,OAAOC,KAAP,MAAkB,SAAlB;AACA,SACEC,UADF,EAEEC,MAFF,EAGEC,gBAHF,EAIEC,WAJF,EAKEC,gBALF,QAMO,SANP;AAQA,SACET,KADF,EAEEG,KAFF,EAGEC,KAHF,EAIEF,gBAJF,CAKE;AALF,EAMED,mBANF,EAOEI,UAPF,EAQEC,MARF,EASEC,gBATF,EAUEC,WAVF,EAWEC,gBAXF;AAaA,eAAe;AACbT,EAAAA,KADa;AAEbG,EAAAA,KAFa;AAGbC,EAAAA,KAHa;AAIbF,EAAAA,gBAJa;AAKbG,EAAAA,UALa;AAMbC,EAAAA,MANa;AAObC,EAAAA,gBAPa;AAQbC,EAAAA,WARa;AASbC,EAAAA;AATa,CAAf","sourcesContent":["import Video, { VideoCompressorType, backgroundUpload } from './Video';\nimport Audio from './Audio';\nimport Image from './Image';\nimport {\n getDetails,\n uuidv4,\n generateFilePath,\n getRealPath,\n getVideoMetaData,\n} from './utils';\n\nexport {\n Video,\n Audio,\n Image,\n backgroundUpload,\n //type\n VideoCompressorType,\n getDetails,\n uuidv4,\n generateFilePath,\n getRealPath,\n getVideoMetaData,\n};\nexport default {\n Video,\n Audio,\n Image,\n backgroundUpload,\n getDetails,\n uuidv4,\n generateFilePath,\n getRealPath,\n getVideoMetaData,\n};\n"]}
1
+ {"version":3,"names":["Video","backgroundUpload","Audio","Image","getDetails","uuidv4","generateFilePath","getRealPath","getVideoMetaData","getFileSize"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,gBAAgB,QAAQ,SAAS;AAEjD,OAAOC,KAAK,MAAM,SAAS;AAC3B,OAAOC,KAAK,MAAM,SAAS;AAC3B,SACEC,UAAU,EACVC,MAAM,EACNC,gBAAgB,EAChBC,WAAW,EACXC,gBAAgB,EAChBC,WAAW,QACN,SAAS;AAEhB,SACET,KAAK,EACLE,KAAK,EACLC,KAAK,EACLF,gBAAgB;AAChB;;AAEAG,UAAU,EACVC,MAAM,EACNC,gBAAgB,EAChBC,WAAW,EACXC,gBAAgB,EAChBC,WAAW;AAGb,eAAe;EACbT,KAAK;EACLE,KAAK;EACLC,KAAK;EACLF,gBAAgB;EAChBG,UAAU;EACVC,MAAM;EACNC,gBAAgB;EAChBC,WAAW;EACXC,gBAAgB;EAChBC;AACF,CAAC"}
@@ -1,8 +1,5 @@
1
1
  /* eslint-disable no-bitwise */
2
- import { NativeModules } from 'react-native';
3
- const {
4
- Compressor
5
- } = NativeModules;
2
+ import { Compressor } from '../Main';
6
3
  export const AUDIO_BITRATE = [256, 192, 160, 128, 96, 64, 32];
7
4
  const INCORRECT_INPUT_PATH = 'Incorrect input path. Please provide a valid one';
8
5
  const INCORRECT_OUTPUT_PATH = 'Incorrect output path. Please provide a valid one';
@@ -17,70 +14,64 @@ export const generateFilePath = extension => {
17
14
  Compressor.generateFilePath(extension).then(result => resolve('file://' + result)).catch(error => reject(error));
18
15
  });
19
16
  };
20
- export const getRealPath = (path, type = 'video') => {
17
+ export const getRealPath = function (path) {
18
+ let type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'video';
21
19
  return Compressor.getRealPath(path, type);
22
20
  };
23
21
  export const getVideoMetaData = path => {
24
22
  return Compressor.getVideoMetaData(path);
25
23
  };
26
-
27
24
  const isValidUrl = url => /^(?:\w+:)?\/\/([^\s\.]+\.\S{2}|localhost[\:?\d]*)\S*$/.test(url);
28
-
29
25
  const getFullFilename = path => {
30
26
  if (typeof path === 'string') {
31
- let _path = path; // In case of remote media, check if the url would be valid one
27
+ let _path = path;
32
28
 
29
+ // In case of remote media, check if the url would be valid one
33
30
  if (path.includes('http') && !isValidUrl(path)) {
34
31
  return INCORRECT_INPUT_PATH;
35
- } // In case of url, check if it ends with "/" and do not consider it furthermore
36
-
32
+ }
37
33
 
34
+ // In case of url, check if it ends with "/" and do not consider it furthermore
38
35
  if (_path[_path.length - 1] === '/') _path = _path.substring(0, path.length - 1);
39
-
40
36
  const array = _path.split('/');
41
-
42
37
  return array.length > 1 ? array[array.length - 1] : INCORRECT_INPUT_PATH;
43
38
  }
44
-
45
39
  return INCORRECT_INPUT_PATH;
46
40
  };
47
-
48
41
  const isFileNameError = filename => {
49
42
  return filename === INCORRECT_INPUT_PATH;
50
43
  };
51
-
52
44
  const getFilename = path => {
53
45
  const fullFilename = getFullFilename(path);
54
-
55
- if (!isFileNameError(fullFilename)) {
46
+ if (fullFilename && !isFileNameError(fullFilename)) {
56
47
  const array = fullFilename.split('.');
57
48
  return array.length > 1 ? array.slice(0, -1).join('') : array.join('');
58
49
  }
59
-
60
50
  return fullFilename;
61
51
  };
62
-
63
52
  const isRemoteMedia = path => {
64
- return typeof path === 'string' ? path.split(':/')[0].includes('http') : null;
53
+ var _path$split;
54
+ 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;
65
55
  };
66
-
67
- export const getDetails = (mediaFullPath, extesnion = 'mp3') => {
56
+ export const getDetails = function (mediaFullPath) {
57
+ let extesnion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'mp3';
68
58
  return new Promise(async (resolve, reject) => {
69
59
  try {
70
60
  // Since we used "-v error", a work around is to call first this command before the following
71
61
  const result = {};
72
-
73
62
  if (result !== 0) {
74
63
  throw new Error('Failed to execute command');
75
- } // get the output result of the command
76
- // example of output {"programs": [], "streams": [{"width": 640,"height": 360}], "format": {"size": "15804433"}}
77
-
64
+ }
78
65
 
66
+ // get the output result of the command
67
+ // example of output {"programs": [], "streams": [{"width": 640,"height": 360}], "format": {"size": "15804433"}}
79
68
  let mediaInfo = await {};
80
- mediaInfo = JSON.parse(mediaInfo); // execute second command
69
+ mediaInfo = JSON.parse(mediaInfo);
81
70
 
82
- const mediaInformation = await {}; // treat both results
71
+ // execute second command
72
+ const mediaInformation = await {};
83
73
 
74
+ // treat both results
84
75
  mediaInformation.filename = getFilename(mediaFullPath);
85
76
  mediaInformation.bitrate = mediaInformation.getMediaProperties().bit_rate;
86
77
  mediaInformation.extension = extesnion;
@@ -96,15 +87,14 @@ export const checkUrlAndOptions = async (url, options) => {
96
87
  if (!url) {
97
88
  throw new Error('Compression url is empty, please provide a url for compression.');
98
89
  }
99
-
100
90
  const defaultResult = {
101
91
  outputFilePath: '',
102
92
  isCorrect: true,
103
93
  message: ''
104
- }; // Check if output file is correct
94
+ };
105
95
 
96
+ // Check if output file is correct
106
97
  let outputFilePath;
107
-
108
98
  try {
109
99
  // use default output file
110
100
  // or use new file from cache folder
@@ -115,7 +105,6 @@ export const checkUrlAndOptions = async (url, options) => {
115
105
  outputFilePath = await generateFilePath('mp3');
116
106
  defaultResult.outputFilePath = outputFilePath;
117
107
  }
118
-
119
108
  if (outputFilePath === undefined || outputFilePath === null) {
120
109
  defaultResult.isCorrect = false;
121
110
  defaultResult.message = options.outputFilePath ? INCORRECT_OUTPUT_PATH : ERROR_OCCUR_WHILE_GENERATING_OUTPUT_FILE;
@@ -127,11 +116,14 @@ export const checkUrlAndOptions = async (url, options) => {
127
116
  return defaultResult;
128
117
  }
129
118
  };
119
+ export const getFileSize = async filePath => {
120
+ return Compressor.getFileSize(filePath);
121
+ };
130
122
  export const uuidv4 = () => {
131
123
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
132
124
  const r = parseFloat('0.' + Math.random().toString().replace('0.', '') + new Date().getTime()) * 16 | 0,
133
- // eslint-disable-next-line eqeqeq
134
- v = c == 'x' ? r : r & 0x3 | 0x8;
125
+ // eslint-disable-next-line eqeqeq
126
+ v = c == 'x' ? r : r & 0x3 | 0x8;
135
127
  return v.toString(16);
136
128
  });
137
129
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["NativeModules","Compressor","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":["Compressor","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","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,3 +1,4 @@
1
- import { AudioType } from '../utils';
1
+ import type { AudioType } from '../utils';
2
2
  declare const Audio: AudioType;
3
3
  export default Audio;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Audio/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,UAAU,CAAC;AAG7D,QAAA,MAAM,KAAK,EAAE,SAyDZ,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -1,8 +1,8 @@
1
- export declare type InputType = 'base64' | 'uri';
2
- export declare type OutputType = 'jpg' | 'png';
3
- export declare type ReturnableOutputType = 'uri' | 'base64';
4
- export declare type compressionMethod = 'auto' | 'manual';
5
- export declare type CompressorOptions = {
1
+ export type InputType = 'base64' | 'uri';
2
+ export type OutputType = 'jpg' | 'png';
3
+ export type ReturnableOutputType = 'uri' | 'base64';
4
+ export type compressionMethod = 'auto' | 'manual';
5
+ export type CompressorOptions = {
6
6
  /***
7
7
  * The maximum width boundary used when compressing a landscape image.
8
8
  */
@@ -32,8 +32,9 @@ export declare type CompressorOptions = {
32
32
  */
33
33
  returnableOutputType?: ReturnableOutputType;
34
34
  };
35
- declare type ImageType = {
35
+ type ImageType = {
36
36
  compress(value: string, options?: CompressorOptions): Promise<string>;
37
37
  };
38
38
  declare const Image: ImageType;
39
39
  export default Image;
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Image/index.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEzC,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC;AAEvC,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAElD,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;OAEG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C,CAAC;AAIF,KAAK,SAAS,GAAG;IACf,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvE,CAAC;AAEF,QAAA,MAAM,KAAK,EAAE,SAUZ,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare const Compressor: any;
2
+ declare const VideoCompressor: any;
3
+ export { Compressor, VideoCompressor };
4
+ //# sourceMappingURL=Main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Main.d.ts","sourceRoot":"","sources":["../../src/Main.tsx"],"names":[],"mappings":"AAkBA,QAAA,MAAM,UAAU,KASX,CAAC;AAEN,QAAA,MAAM,eAAe,KAShB,CAAC;AAEN,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { TurboModule } from 'react-native';
2
+ export interface Spec extends TurboModule {
3
+ image_compress(imagePath: string, optionMap: Object): Promise<string>;
4
+ compress_audio(fileUrl: string, optionMap: Object): Promise<string>;
5
+ generateFilePath(extension: string): Promise<string>;
6
+ getRealPath(path: string, type: string): Promise<string>;
7
+ getVideoMetaData(filePath: string): Promise<string>;
8
+ getFileSize(filePath: string): Promise<string>;
9
+ }
10
+ declare const _default: Spec;
11
+ export default _default;
12
+ //# sourceMappingURL=NativeCompressor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeCompressor.d.ts","sourceRoot":"","sources":["../../../src/Spec/NativeCompressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChD;;AAED,wBAAoE"}