react-native-compressor 1.6.3 → 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 +15 -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 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["base64UrlRegex","NativeImage","NativeModules","Compressor","Image","compress","value","options","Error","cleanData","replace","image_compress"],"mappings":";;;;;;;AAAA;;AACA,MAAMA,cAAc,GAAG,6CAAvB;AAyCA,MAAMC,WAAW,GAAGC,2BAAcC,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,CAAcV,cAAd,EAA8B,EAA9B,CAAlB;AACA,WAAOC,WAAW,CAACU,cAAZ,CAA2BF,SAA3B,EAAsCF,OAAtC,CAAP;AACD;AATsB,CAAzB;eAYeH,K","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":["_Main","require","base64UrlRegex","NativeImage","Compressor","Image","compress","value","options","Error","cleanData","replace","image_compress","_default","exports","default"],"sourceRoot":"../../../src","sources":["Image/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,MAAMC,cAAc,GAAG,6CAA6C;AAyCpE,MAAMC,WAAW,GAAGC,gBAAU;AAM9B,MAAMC,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,CAACT,cAAc,EAAE,EAAE,CAAC;IACnD,OAAOC,WAAW,CAACS,cAAc,CAACF,SAAS,EAAEF,OAAO,CAAC;EACvD;AACF,CAAC;AAAC,IAAAK,QAAA,GAEaR,KAAK;AAAAS,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.VideoCompressor = exports.Compressor = void 0;
7
+ var _reactNative = require("react-native");
8
+ const LINKING_ERROR = `The package 'react-native-compressor' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
9
+ ios: "- You have run 'pod install'\n",
10
+ default: ''
11
+ }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
12
+
13
+ // @ts-expect-error
14
+ const isTurboModuleEnabled = global.__turboModuleProxy != null;
15
+ const CompressorModule = isTurboModuleEnabled ? require('./Spec/NativeCompressor').default : _reactNative.NativeModules.Compressor;
16
+ const VideoCompressorModule = isTurboModuleEnabled ? require('./Spec/NativeVideoCompressor').default : _reactNative.NativeModules.VideoCompressor;
17
+ const Compressor = CompressorModule ? CompressorModule : new Proxy({}, {
18
+ get() {
19
+ throw new Error(LINKING_ERROR);
20
+ }
21
+ });
22
+ exports.Compressor = Compressor;
23
+ const VideoCompressor = VideoCompressorModule ? VideoCompressorModule : new Proxy({}, {
24
+ get() {
25
+ throw new Error(LINKING_ERROR);
26
+ }
27
+ });
28
+ exports.VideoCompressor = VideoCompressor;
29
+ //# sourceMappingURL=Main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","CompressorModule","NativeModules","Compressor","VideoCompressorModule","VideoCompressor","Proxy","get","Error","exports"],"sourceRoot":"../../src","sources":["Main.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GAChB,kFAAiF,GAClFC,qBAAQ,CAACC,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,GACzCN,OAAO,CAAC,yBAAyB,CAAC,CAACK,OAAO,GAC1CK,0BAAa,CAACC,UAAU;AAC5B,MAAMC,qBAAqB,GAAGN,oBAAoB,GAC9CN,OAAO,CAAC,8BAA8B,CAAC,CAACK,OAAO,GAC/CK,0BAAa,CAACG,eAAe;AAEjC,MAAMF,UAAU,GAAGF,gBAAgB,GAC/BA,gBAAgB,GAChB,IAAIK,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACf,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAACgB,OAAA,CAAAN,UAAA,GAAAA,UAAA;AAEN,MAAME,eAAe,GAAGD,qBAAqB,GACzCA,qBAAqB,GACrB,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACf,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAACgB,OAAA,CAAAJ,eAAA,GAAAA,eAAA"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _default = _reactNative.TurboModuleRegistry.getEnforcing('Compressor');
9
+ exports.default = _default;
10
+ //# sourceMappingURL=NativeCompressor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","TurboModuleRegistry","getEnforcing","exports","default"],"sourceRoot":"../../../src","sources":["Spec/NativeCompressor.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAWpCC,gCAAmB,CAACC,YAAY,CAAO,YAAY,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAJ,QAAA"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _default = _reactNative.TurboModuleRegistry.getEnforcing('VideoCompressor');
9
+ exports.default = _default;
10
+ //# sourceMappingURL=NativeVideoCompressor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","TurboModuleRegistry","getEnforcing","exports","default"],"sourceRoot":"../../../src","sources":["Spec/NativeVideoCompressor.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAYpCC,gCAAmB,CAACC,YAAY,CAAO,iBAAiB,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAJ,QAAA"}
@@ -4,18 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.cancelCompression = exports.backgroundUpload = void 0;
7
-
8
7
  var _reactNative = require("react-native");
9
-
8
+ var _Main = require("../Main");
10
9
  var _utils = require("../utils");
11
-
12
- const VideoCompressEventEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.VideoCompressor);
13
- const NativeVideoCompressor = _reactNative.NativeModules.VideoCompressor;
14
-
10
+ const VideoCompressEventEmitter = new _reactNative.NativeEventEmitter(_Main.VideoCompressor);
11
+ const NativeVideoCompressor = _Main.VideoCompressor;
15
12
  const backgroundUpload = async (url, fileUrl, options, onProgress) => {
16
13
  const uuid = (0, _utils.uuidv4)();
17
14
  let subscription;
18
-
19
15
  try {
20
16
  if (onProgress) {
21
17
  subscription = VideoCompressEventEmitter.addListener('VideoCompressorProgress', event => {
@@ -24,11 +20,9 @@ const backgroundUpload = async (url, fileUrl, options, onProgress) => {
24
20
  }
25
21
  });
26
22
  }
27
-
28
23
  if (_reactNative.Platform.OS === 'android' && fileUrl.includes('file://')) {
29
24
  fileUrl = fileUrl.replace('file://', '');
30
25
  }
31
-
32
26
  const result = await NativeVideoCompressor.upload(fileUrl, {
33
27
  uuid,
34
28
  method: options.httpMethod,
@@ -43,19 +37,15 @@ const backgroundUpload = async (url, fileUrl, options, onProgress) => {
43
37
  }
44
38
  }
45
39
  };
46
-
47
40
  exports.backgroundUpload = backgroundUpload;
48
-
49
41
  const cancelCompression = cancellationId => {
50
42
  return NativeVideoCompressor.cancelCompression(cancellationId);
51
43
  };
52
-
53
44
  exports.cancelCompression = cancelCompression;
54
45
  const Video = {
55
46
  compress: async (fileUrl, options, onProgress) => {
56
47
  const uuid = (0, _utils.uuidv4)();
57
48
  let subscription;
58
-
59
49
  try {
60
50
  if (onProgress) {
61
51
  subscription = VideoCompressEventEmitter.addListener('videoCompressProgress', event => {
@@ -64,32 +54,26 @@ const Video = {
64
54
  }
65
55
  });
66
56
  }
67
-
68
57
  const modifiedOptions = {
69
58
  uuid
70
59
  };
71
60
  if (options !== null && options !== void 0 && options.bitrate) modifiedOptions.bitrate = options === null || options === void 0 ? void 0 : options.bitrate;
72
-
73
61
  if (options !== null && options !== void 0 && options.compressionMethod) {
74
62
  modifiedOptions.compressionMethod = options === null || options === void 0 ? void 0 : options.compressionMethod;
75
63
  } else {
76
64
  modifiedOptions.compressionMethod = 'manual';
77
65
  }
78
-
79
66
  if (options !== null && options !== void 0 && options.maxSize) {
80
67
  modifiedOptions.maxSize = options === null || options === void 0 ? void 0 : options.maxSize;
81
68
  } else {
82
69
  modifiedOptions.maxSize = 640;
83
70
  }
84
-
85
71
  if ((options === null || options === void 0 ? void 0 : options.minimumFileSizeForCompress) !== undefined) {
86
72
  modifiedOptions.minimumFileSizeForCompress = options === null || options === void 0 ? void 0 : options.minimumFileSizeForCompress;
87
73
  }
88
-
89
74
  if (options !== null && options !== void 0 && options.getCancellationId) {
90
75
  options === null || options === void 0 ? void 0 : options.getCancellationId(uuid);
91
76
  }
92
-
93
77
  const result = await NativeVideoCompressor.compress(fileUrl, modifiedOptions);
94
78
  return result;
95
79
  } finally {
@@ -101,26 +85,21 @@ const Video = {
101
85
  },
102
86
  backgroundUpload,
103
87
  cancelCompression,
104
-
105
88
  activateBackgroundTask(onExpired) {
106
89
  if (onExpired) {
107
90
  const subscription = VideoCompressEventEmitter.addListener('backgroundTaskExpired', event => {
108
91
  onExpired(event);
109
-
110
92
  if (subscription) {
111
93
  subscription.remove();
112
94
  }
113
95
  });
114
96
  }
115
-
116
97
  return NativeVideoCompressor.activateBackgroundTask({});
117
98
  },
118
-
119
99
  deactivateBackgroundTask() {
120
100
  VideoCompressEventEmitter.removeAllListeners('backgroundTaskExpired');
121
101
  return NativeVideoCompressor.deactivateBackgroundTask({});
122
102
  }
123
-
124
103
  };
125
104
  var _default = Video;
126
105
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["VideoCompressEventEmitter","NativeEventEmitter","NativeModules","VideoCompressor","NativeVideoCompressor","backgroundUpload","url","fileUrl","options","onProgress","uuid","subscription","addListener","event","data","written","total","Platform","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":["_reactNative","require","_Main","_utils","VideoCompressEventEmitter","NativeEventEmitter","VideoCompressor","NativeVideoCompressor","backgroundUpload","url","fileUrl","options","onProgress","uuid","uuidv4","subscription","addListener","event","data","written","total","Platform","OS","includes","replace","result","upload","method","httpMethod","headers","remove","exports","cancelCompression","cancellationId","Video","compress","progress","modifiedOptions","bitrate","compressionMethod","maxSize","minimumFileSizeForCompress","undefined","getCancellationId","activateBackgroundTask","onExpired","deactivateBackgroundTask","removeAllListeners","_default","default"],"sourceRoot":"../../../src","sources":["Video/index.tsx"],"mappings":"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"}
@@ -4,14 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _configPlugins = require("@expo/config-plugins");
8
+ //@ts-ignore
9
9
 
10
10
  const pkg = require('../../../package.json');
11
-
12
11
  const withCompressor = config => config;
13
-
14
12
  var _default = (0, _configPlugins.createRunOncePlugin)(withCompressor, pkg.name, pkg.version);
15
-
16
13
  exports.default = _default;
17
14
  //# sourceMappingURL=compressor.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["compressor.ts"],"names":["pkg","require","withCompressor","config","name","version"],"mappings":";;;;;;;AAAA;;AACA,MAAMA,GAAG,GAAGC,OAAO,CAAC,uBAAD,CAAnB;;AAIA,MAAMC,cAAmC,GAAIC,MAAD,IAAYA,MAAxD;;eAEe,wCAAoBD,cAApB,EAAoCF,GAAG,CAACI,IAAxC,EAA8CJ,GAAG,CAACK,OAAlD,C","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":["_configPlugins","require","pkg","withCompressor","config","_default","createRunOncePlugin","name","version","exports","default"],"sourceRoot":"../../../src","sources":["expo-plugin/compressor.ts"],"mappings":";;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AADA;;AAEA,MAAMC,GAAG,GAAGD,OAAO,CAAC,uBAAuB,CAAC;AAI5C,MAAME,cAAmC,GAAIC,MAAU,IAAKA,MAAM;AAAC,IAAAC,QAAA,GAEpD,IAAAC,kCAAmB,EAACH,cAAc,EAAED,GAAG,CAACK,IAAI,EAAEL,GAAG,CAACM,OAAO,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAL,QAAA"}
@@ -3,34 +3,35 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "Video", {
6
+ Object.defineProperty(exports, "Audio", {
7
7
  enumerable: true,
8
8
  get: function () {
9
- return _Video.default;
9
+ return _Audio.default;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "VideoCompressorType", {
12
+ Object.defineProperty(exports, "Image", {
13
13
  enumerable: true,
14
14
  get: function () {
15
- return _Video.VideoCompressorType;
15
+ return _Image.default;
16
16
  }
17
17
  });
18
- Object.defineProperty(exports, "backgroundUpload", {
18
+ Object.defineProperty(exports, "Video", {
19
19
  enumerable: true,
20
20
  get: function () {
21
- return _Video.backgroundUpload;
21
+ return _Video.default;
22
22
  }
23
23
  });
24
- Object.defineProperty(exports, "Audio", {
24
+ Object.defineProperty(exports, "backgroundUpload", {
25
25
  enumerable: true,
26
26
  get: function () {
27
- return _Audio.default;
27
+ return _Video.backgroundUpload;
28
28
  }
29
29
  });
30
- Object.defineProperty(exports, "Image", {
30
+ exports.default = void 0;
31
+ Object.defineProperty(exports, "generateFilePath", {
31
32
  enumerable: true,
32
33
  get: function () {
33
- return _Image.default;
34
+ return _utils.generateFilePath;
34
35
  }
35
36
  });
36
37
  Object.defineProperty(exports, "getDetails", {
@@ -39,16 +40,10 @@ Object.defineProperty(exports, "getDetails", {
39
40
  return _utils.getDetails;
40
41
  }
41
42
  });
42
- Object.defineProperty(exports, "uuidv4", {
43
- enumerable: true,
44
- get: function () {
45
- return _utils.uuidv4;
46
- }
47
- });
48
- Object.defineProperty(exports, "generateFilePath", {
43
+ Object.defineProperty(exports, "getFileSize", {
49
44
  enumerable: true,
50
45
  get: function () {
51
- return _utils.generateFilePath;
46
+ return _utils.getFileSize;
52
47
  }
53
48
  });
54
49
  Object.defineProperty(exports, "getRealPath", {
@@ -63,22 +58,19 @@ Object.defineProperty(exports, "getVideoMetaData", {
63
58
  return _utils.getVideoMetaData;
64
59
  }
65
60
  });
66
- exports.default = void 0;
67
-
61
+ Object.defineProperty(exports, "uuidv4", {
62
+ enumerable: true,
63
+ get: function () {
64
+ return _utils.uuidv4;
65
+ }
66
+ });
68
67
  var _Video = _interopRequireWildcard(require("./Video"));
69
-
70
68
  var _Audio = _interopRequireDefault(require("./Audio"));
71
-
72
69
  var _Image = _interopRequireDefault(require("./Image"));
73
-
74
70
  var _utils = require("./utils");
75
-
76
71
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
77
-
78
72
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
79
-
80
73
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
81
-
82
74
  var _default = {
83
75
  Video: _Video.default,
84
76
  Audio: _Audio.default,
@@ -88,7 +80,8 @@ var _default = {
88
80
  uuidv4: _utils.uuidv4,
89
81
  generateFilePath: _utils.generateFilePath,
90
82
  getRealPath: _utils.getRealPath,
91
- getVideoMetaData: _utils.getVideoMetaData
83
+ getVideoMetaData: _utils.getVideoMetaData,
84
+ getFileSize: _utils.getFileSize
92
85
  };
93
86
  exports.default = _default;
94
87
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["Video","Audio","Image","backgroundUpload","getDetails","uuidv4","generateFilePath","getRealPath","getVideoMetaData"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;eAqBe;AACbA,EAAAA,KAAK,EAALA,cADa;AAEbC,EAAAA,KAAK,EAALA,cAFa;AAGbC,EAAAA,KAAK,EAALA,cAHa;AAIbC,EAAAA,gBAAgB,EAAhBA,uBAJa;AAKbC,EAAAA,UAAU,EAAVA,iBALa;AAMbC,EAAAA,MAAM,EAANA,aANa;AAObC,EAAAA,gBAAgB,EAAhBA,uBAPa;AAQbC,EAAAA,WAAW,EAAXA,kBARa;AASbC,EAAAA,gBAAgB,EAAhBA;AATa,C","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","_interopRequireWildcard","require","_Audio","_interopRequireDefault","_Image","_utils","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_default","Video","Audio","Image","backgroundUpload","getDetails","uuidv4","generateFilePath","getRealPath","getVideoMetaData","getFileSize","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAOiB,SAAAE,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAV,wBAAAM,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,IAAAW,QAAA,GAiBF;EACbC,KAAK,EAALA,cAAK;EACLC,KAAK,EAALA,cAAK;EACLC,KAAK,EAALA,cAAK;EACLC,gBAAgB,EAAhBA,uBAAgB;EAChBC,UAAU,EAAVA,iBAAU;EACVC,MAAM,EAANA,aAAM;EACNC,gBAAgB,EAAhBA,uBAAgB;EAChBC,WAAW,EAAXA,kBAAW;EACXC,gBAAgB,EAAhBA,uBAAgB;EAChBC,WAAW,EAAXA;AACF,CAAC;AAAAC,OAAA,CAAA/B,OAAA,GAAAoB,QAAA"}
@@ -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":";;;;;;;AACA;;AADA;AAEA,MAAM;AAAEA,EAAAA;AAAF,IAAiBC,0BAAvB;AACO,MAAMC,aAAa,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,EAArB,EAAyB,EAAzB,EAA6B,EAA7B,CAAtB;;AAEP,MAAMC,oBAAoB,GAAG,kDAA7B;AACA,MAAMC,qBAAqB,GACzB,mDADF;AAEA,MAAMC,wCAAwC,GAC5C,6CADF;AAcO,MAAMC,8BAAqD,GAAG;AACnEC,EAAAA,OAAO,EAAE,EAD0D;AAEnEC,EAAAA,OAAO,EAAE,QAF0D;AAGnEC,EAAAA,cAAc,EAAE;AAHmD,CAA9D;;;AAUA,MAAMC,gBAAqB,GAAIC,SAAD,IAAuB;AAC1D,SAAO,IAAIC,OAAJ,CAAY,CAACC,OAAD,EAAUC,MAAV,KAAqB;AACtCd,IAAAA,UAAU,CAACU,gBAAX,CAA4BC,SAA5B,EACGI,IADH,CACSC,MAAD,IAAiBH,OAAO,CAAC,YAAYG,MAAb,CADhC,EAEGC,KAFH,CAEUC,KAAD,IAAgBJ,MAAM,CAACI,KAAD,CAF/B;AAGD,GAJM,CAAP;AAKD,CANM;;;;AAQA,MAAMC,WAAgB,GAAG,CAC9BC,IAD8B,EAE9BC,IAAwB,GAAG,OAFG,KAG3B;AACH,SAAOrB,UAAU,CAACmB,WAAX,CAAuBC,IAAvB,EAA6BC,IAA7B,CAAP;AACD,CALM;;;;AAOA,MAAMC,gBAAqB,GAAIF,IAAD,IAAkB;AACrD,SAAOpB,UAAU,CAACsB,gBAAX,CAA4BF,IAA5B,CAAP;AACD,CAFM;;;;AAIP,MAAMG,UAAU,GAAIC,GAAD,IACjB,wDAAwDC,IAAxD,CAA6DD,GAA7D,CADF;;AAGA,MAAME,eAAe,GAAIN,IAAD,IAAyB;AAC/C,MAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC5B,QAAIO,KAAK,GAAGP,IAAZ,CAD4B,CAG5B;;AACA,QAAIA,IAAI,CAACQ,QAAL,CAAc,MAAd,KAAyB,CAACL,UAAU,CAACH,IAAD,CAAxC,EAAgD;AAC9C,aAAOjB,oBAAP;AACD,KAN2B,CAQ5B;;;AACA,QAAIwB,KAAK,CAACA,KAAK,CAACE,MAAN,GAAe,CAAhB,CAAL,KAA4B,GAAhC,EACEF,KAAK,GAAGA,KAAK,CAACG,SAAN,CAAgB,CAAhB,EAAmBV,IAAI,CAACS,MAAL,GAAc,CAAjC,CAAR;;AAEF,UAAME,KAAK,GAAGJ,KAAK,CAACK,KAAN,CAAY,GAAZ,CAAd;;AACA,WAAOD,KAAK,CAACF,MAAN,GAAe,CAAf,GAAmBE,KAAK,CAACA,KAAK,CAACF,MAAN,GAAe,CAAhB,CAAxB,GAA6C1B,oBAApD;AACD;;AACD,SAAOA,oBAAP;AACD,CAjBD;;AAmBA,MAAM8B,eAAe,GAAIC,QAAD,IAAsB;AAC5C,SAAOA,QAAQ,KAAK/B,oBAApB;AACD,CAFD;;AAIA,MAAMgC,WAAW,GAAIf,IAAD,IAAyB;AAC3C,QAAMgB,YAAY,GAAGV,eAAe,CAACN,IAAD,CAApC;;AACA,MAAI,CAACa,eAAe,CAACG,YAAD,CAApB,EAAoC;AAClC,UAAML,KAAK,GAAGK,YAAY,CAACJ,KAAb,CAAmB,GAAnB,CAAd;AACA,WAAOD,KAAK,CAACF,MAAN,GAAe,CAAf,GAAmBE,KAAK,CAACM,KAAN,CAAY,CAAZ,EAAe,CAAC,CAAhB,EAAmBC,IAAnB,CAAwB,EAAxB,CAAnB,GAAiDP,KAAK,CAACO,IAAN,CAAW,EAAX,CAAxD;AACD;;AACD,SAAOF,YAAP;AACD,CAPD;;AASA,MAAMG,aAAa,GAAInB,IAAD,IAAyB;AAC7C,SAAO,OAAOA,IAAP,KAAgB,QAAhB,GAA2BA,IAAI,CAACY,KAAL,CAAW,IAAX,EAAiB,CAAjB,EAAoBJ,QAApB,CAA6B,MAA7B,CAA3B,GAAkE,IAAzE;AACD,CAFD;;AAIO,MAAMY,UAAU,GAAG,CACxBC,aADwB,EAExBC,SAAwB,GAAG,KAFH,KAGA;AACxB,SAAO,IAAI9B,OAAJ,CAAY,OAAOC,OAAP,EAAgBC,MAAhB,KAA2B;AAC5C,QAAI;AACF;AACA,YAAME,MAAW,GAAG,EAApB;;AACA,UAAIA,MAAM,KAAK,CAAf,EAAkB;AAChB,cAAM,IAAI2B,KAAJ,CAAU,2BAAV,CAAN;AACD,OALC,CAOF;AACA;;;AACA,UAAIC,SAAc,GAAG,MAAM,EAA3B;AACAA,MAAAA,SAAS,GAAGC,IAAI,CAACC,KAAL,CAAWF,SAAX,CAAZ,CAVE,CAYF;;AACA,YAAMG,gBAAqB,GAAG,MAAM,EAApC,CAbE,CAeF;;AACAA,MAAAA,gBAAgB,CAACb,QAAjB,GAA4BC,WAAW,CAACM,aAAD,CAAvC;AACAM,MAAAA,gBAAgB,CAACxC,OAAjB,GAA2BwC,gBAAgB,CAACC,kBAAjB,GAAsCC,QAAjE;AACAF,MAAAA,gBAAgB,CAACpC,SAAjB,GAA6B+B,SAA7B;AACAK,MAAAA,gBAAgB,CAACR,aAAjB,GAAiCA,aAAa,CAACE,aAAD,CAA9C;AACAM,MAAAA,gBAAgB,CAACG,IAAjB,GAAwBC,MAAM,CAACP,SAAS,CAACQ,MAAV,CAAiBF,IAAlB,CAA9B;AAEArC,MAAAA,OAAO,CAACkC,gBAAD,CAAP;AACD,KAvBD,CAuBE,OAAOM,CAAP,EAAU;AACVvC,MAAAA,MAAM,CAACuC,CAAD,CAAN;AACD;AACF,GA3BM,CAAP;AA4BD,CAhCM;;;;AAkCA,MAAMC,kBAAkB,GAAG,OAChC9B,GADgC,EAEhC+B,OAFgC,KAGD;AAC/B,MAAI,CAAC/B,GAAL,EAAU;AACR,UAAM,IAAImB,KAAJ,CACJ,iEADI,CAAN;AAGD;;AACD,QAAMa,aAAgC,GAAG;AACvC/C,IAAAA,cAAc,EAAE,EADuB;AAEvCgD,IAAAA,SAAS,EAAE,IAF4B;AAGvCC,IAAAA,OAAO,EAAE;AAH8B,GAAzC,CAN+B,CAY/B;;AACA,MAAIjD,cAAJ;;AACA,MAAI;AACF;AACA;AACA,QAAI8C,OAAO,CAAC9C,cAAZ,EAA4B;AAC1BA,MAAAA,cAAc,GAAG8C,OAAO,CAAC9C,cAAzB;AACA+C,MAAAA,aAAa,CAAC/C,cAAd,GAA+BA,cAA/B;AACD,KAHD,MAGO;AACLA,MAAAA,cAAc,GAAG,MAAMC,gBAAgB,CAAC,KAAD,CAAvC;AACA8C,MAAAA,aAAa,CAAC/C,cAAd,GAA+BA,cAA/B;AACD;;AACD,QAAIA,cAAc,KAAKkD,SAAnB,IAAgClD,cAAc,KAAK,IAAvD,EAA6D;AAC3D+C,MAAAA,aAAa,CAACC,SAAd,GAA0B,KAA1B;AACAD,MAAAA,aAAa,CAACE,OAAd,GAAwBH,OAAO,CAAC9C,cAAR,GACpBL,qBADoB,GAEpBC,wCAFJ;AAGD;AACF,GAhBD,CAgBE,OAAOgD,CAAP,EAAU;AACVG,IAAAA,aAAa,CAACC,SAAd,GAA0B,KAA1B;AACAD,IAAAA,aAAa,CAACE,OAAd,GAAwBH,OAAO,CAAC9C,cAAR,GACpBL,qBADoB,GAEpBC,wCAFJ;AAGD,GArBD,SAqBU;AACR,WAAOmD,aAAP;AACD;AACF,CAzCM;;;;AA2CA,MAAMI,MAAM,GAAG,MAAM;AAC1B,SAAO,uCAAuCC,OAAvC,CAA+C,OAA/C,EAAwD,UAAUC,CAAV,EAAa;AAC1E,UAAMC,CAAC,GACFC,UAAU,CACT,OACEC,IAAI,CAACC,MAAL,GAAcC,QAAd,GAAyBN,OAAzB,CAAiC,IAAjC,EAAuC,EAAvC,CADF,GAEE,IAAIO,IAAJ,GAAWC,OAAX,EAHO,CAAV,GAKC,EALF,GAMA,CAPJ;AAAA,UAQE;AACAC,IAAAA,CAAC,GAAGR,CAAC,IAAI,GAAL,GAAWC,CAAX,GAAgBA,CAAC,GAAG,GAAL,GAAY,GATjC;AAUA,WAAOO,CAAC,CAACH,QAAF,CAAW,EAAX,CAAP;AACD,GAZM,CAAP;AAaD,CAdM","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":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AADA;;AAGO,MAAMC,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAACC,OAAA,CAAAD,aAAA,GAAAA,aAAA;AAE9D,MAAME,oBAAoB,GAAG,kDAAkD;AAC/E,MAAMC,qBAAqB,GACzB,mDAAmD;AACrD,MAAMC,wCAAwC,GAC5C,6CAA6C;AAaxC,MAAMC,8BAAqD,GAAG;EACnEC,OAAO,EAAE,EAAE;EACXC,OAAO,EAAE,QAAQ;EACjBC,cAAc,EAAE;AAClB,CAAC;AAACP,OAAA,CAAAI,8BAAA,GAAAA,8BAAA;AAMK,MAAMI,gBAAqB,GAAIC,SAAiB,IAAK;EAC1D,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCC,gBAAU,CAACL,gBAAgB,CAACC,SAAS,CAAC,CACnCK,IAAI,CAAEC,MAAW,IAAKJ,OAAO,CAAC,SAAS,GAAGI,MAAM,CAAC,CAAC,CAClDC,KAAK,CAAEC,KAAU,IAAKL,MAAM,CAACK,KAAK,CAAC,CAAC;EACzC,CAAC,CAAC;AACJ,CAAC;AAACjB,OAAA,CAAAQ,gBAAA,GAAAA,gBAAA;AAEK,MAAMU,WAAgB,GAAG,SAAAA,CAC9BC,IAAY,EAET;EAAA,IADHC,IAAwB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,OAAO;EAElC,OAAOR,gBAAU,CAACK,WAAW,CAACC,IAAI,EAAEC,IAAI,CAAC;AAC3C,CAAC;AAACpB,OAAA,CAAAkB,WAAA,GAAAA,WAAA;AAEK,MAAMM,gBAAqB,GAAIL,IAAY,IAAK;EACrD,OAAON,gBAAU,CAACW,gBAAgB,CAACL,IAAI,CAAC;AAC1C,CAAC;AAACnB,OAAA,CAAAwB,gBAAA,GAAAA,gBAAA;AAEF,MAAMC,UAAU,GAAIC,GAAW,IAC7B,uDAAuD,CAACC,IAAI,CAACD,GAAG,CAAC;AAEnE,MAAME,eAAe,GAAIT,IAAmB,IAAK;EAC/C,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,IAAIU,KAAK,GAAGV,IAAI;;IAEhB;IACA,IAAIA,IAAI,CAACW,QAAQ,CAAC,MAAM,CAAC,IAAI,CAACL,UAAU,CAACN,IAAI,CAAC,EAAE;MAC9C,OAAOlB,oBAAoB;IAC7B;;IAEA;IACA,IAAI4B,KAAK,CAACA,KAAK,CAACP,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EACjCO,KAAK,GAAGA,KAAK,CAACE,SAAS,CAAC,CAAC,EAAEZ,IAAI,CAACG,MAAM,GAAG,CAAC,CAAC;IAE7C,MAAMU,KAAK,GAAGH,KAAK,CAACI,KAAK,CAAC,GAAG,CAAC;IAC9B,OAAOD,KAAK,CAACV,MAAM,GAAG,CAAC,GAAGU,KAAK,CAACA,KAAK,CAACV,MAAM,GAAG,CAAC,CAAC,GAAGrB,oBAAoB;EAC1E;EACA,OAAOA,oBAAoB;AAC7B,CAAC;AAED,MAAMiC,eAAe,GAAIC,QAAgB,IAAK;EAC5C,OAAOA,QAAQ,KAAKlC,oBAAoB;AAC1C,CAAC;AAED,MAAMmC,WAAW,GAAIjB,IAAmB,IAAK;EAC3C,MAAMkB,YAAgC,GAAGT,eAAe,CAACT,IAAI,CAAC;EAC9D,IAAIkB,YAAY,IAAI,CAACH,eAAe,CAACG,YAAY,CAAC,EAAE;IAClD,MAAML,KAAK,GAAGK,YAAY,CAACJ,KAAK,CAAC,GAAG,CAAC;IACrC,OAAOD,KAAK,CAACV,MAAM,GAAG,CAAC,GAAGU,KAAK,CAACM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC,GAAGP,KAAK,CAACO,IAAI,CAAC,EAAE,CAAC;EACxE;EACA,OAAOF,YAAY;AACrB,CAAC;AAED,MAAMG,aAAa,GAAIrB,IAAmB,IAAK;EAAA,IAAAsB,WAAA;EAC7C,OAAO,OAAOtB,IAAI,KAAK,QAAQ,GAC3BA,IAAI,aAAJA,IAAI,gBAAAsB,WAAA,GAAJtB,IAAI,CAAEc,KAAK,CAAC,IAAI,CAAC,cAAAQ,WAAA,gBAAAA,WAAA,GAAjBA,WAAA,CAAoB,CAAC,CAAC,cAAAA,WAAA,uBAAtBA,WAAA,CAAwBX,QAAQ,CAAC,MAAM,CAAC,GACxC,IAAI;AACV,CAAC;AAEM,MAAMY,UAAU,GAAG,SAAAA,CACxBC,aAAqB,EAEG;EAAA,IADxBC,SAAwB,GAAAvB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAEhC,OAAO,IAAIX,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;IAC5C,IAAI;MACF;MACA,MAAMG,MAAW,GAAG,CAAC,CAAC;MACtB,IAAIA,MAAM,KAAK,CAAC,EAAE;QAChB,MAAM,IAAI8B,KAAK,CAAC,2BAA2B,CAAC;MAC9C;;MAEA;MACA;MACA,IAAIC,SAAc,GAAG,MAAM,CAAC,CAAC;MAC7BA,SAAS,GAAGC,IAAI,CAACC,KAAK,CAACF,SAAS,CAAC;;MAEjC;MACA,MAAMG,gBAAqB,GAAG,MAAM,CAAC,CAAC;;MAEtC;MACAA,gBAAgB,CAACd,QAAQ,GAAGC,WAAW,CAACO,aAAa,CAAC;MACtDM,gBAAgB,CAAC5C,OAAO,GAAG4C,gBAAgB,CAACC,kBAAkB,CAAC,CAAC,CAACC,QAAQ;MACzEF,gBAAgB,CAACxC,SAAS,GAAGmC,SAAS;MACtCK,gBAAgB,CAACT,aAAa,GAAGA,aAAa,CAACG,aAAa,CAAC;MAC7DM,gBAAgB,CAACG,IAAI,GAAGC,MAAM,CAACP,SAAS,CAACQ,MAAM,CAACF,IAAI,CAAC;MAErDzC,OAAO,CAACsC,gBAAgB,CAAC;IAC3B,CAAC,CAAC,OAAOM,CAAC,EAAE;MACV3C,MAAM,CAAC2C,CAAC,CAAC;IACX;EACF,CAAC,CAAC;AACJ,CAAC;AAACvD,OAAA,CAAA0C,UAAA,GAAAA,UAAA;AAEK,MAAMc,kBAAkB,GAAG,MAAAA,CAChC9B,GAAW,EACX+B,OAA8B,KACC;EAC/B,IAAI,CAAC/B,GAAG,EAAE;IACR,MAAM,IAAImB,KAAK,CACb,iEACF,CAAC;EACH;EACA,MAAMa,aAAgC,GAAG;IACvCnD,cAAc,EAAE,EAAE;IAClBoD,SAAS,EAAE,IAAI;IACfC,OAAO,EAAE;EACX,CAAC;;EAED;EACA,IAAIrD,cAAyC;EAC7C,IAAI;IACF;IACA;IACA,IAAIkD,OAAO,CAAClD,cAAc,EAAE;MAC1BA,cAAc,GAAGkD,OAAO,CAAClD,cAAc;MACvCmD,aAAa,CAACnD,cAAc,GAAGA,cAAc;IAC/C,CAAC,MAAM;MACLA,cAAc,GAAG,MAAMC,gBAAgB,CAAC,KAAK,CAAC;MAC9CkD,aAAa,CAACnD,cAAc,GAAGA,cAAc;IAC/C;IACA,IAAIA,cAAc,KAAKgB,SAAS,IAAIhB,cAAc,KAAK,IAAI,EAAE;MAC3DmD,aAAa,CAACC,SAAS,GAAG,KAAK;MAC/BD,aAAa,CAACE,OAAO,GAAGH,OAAO,CAAClD,cAAc,GAC1CL,qBAAqB,GACrBC,wCAAwC;IAC9C;EACF,CAAC,CAAC,OAAOoD,CAAC,EAAE;IACVG,aAAa,CAACC,SAAS,GAAG,KAAK;IAC/BD,aAAa,CAACE,OAAO,GAAGH,OAAO,CAAClD,cAAc,GAC1CL,qBAAqB,GACrBC,wCAAwC;EAC9C,CAAC,SAAS;IACR,OAAOuD,aAAa;EACtB;AACF,CAAC;AAAC1D,OAAA,CAAAwD,kBAAA,GAAAA,kBAAA;AAEK,MAAMK,WAAW,GAAG,MAAOC,QAAgB,IAAsB;EACtE,OAAOjD,gBAAU,CAACgD,WAAW,CAACC,QAAQ,CAAC;AACzC,CAAC;AAAC9D,OAAA,CAAA6D,WAAA,GAAAA,WAAA;AAEK,MAAME,MAAM,GAAGA,CAAA,KAAM;EAC1B,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAE,UAAUC,CAAC,EAAE;IAC1E,MAAMC,CAAC,GACFC,UAAU,CACT,IAAI,GACFC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACN,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAC1C,IAAIO,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CACvB,CAAC,GACC,EAAE,GACJ,CAAC;MACH;MACAC,CAAC,GAAGR,CAAC,IAAI,GAAG,GAAGC,CAAC,GAAIA,CAAC,GAAG,GAAG,GAAI,GAAG;IACpC,OAAOO,CAAC,CAACH,QAAQ,CAAC,EAAE,CAAC;EACvB,CAAC,CAAC;AACJ,CAAC;AAACtE,OAAA,CAAA+D,MAAA,GAAAA,MAAA"}