react-native-compressor 0.5.11 → 0.5.15
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.
- package/README.md +4 -0
- package/android/.gradle/6.1.1/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/6.1.1/fileChanges/last-build.bin +0 -0
- package/android/.gradle/6.1.1/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/6.1.1/gc.properties +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -2
- package/android/.gradle/checksums/checksums.lock +0 -0
- package/android/.gradle/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/checksums/sha1-checksums.bin +0 -0
- package/android/.idea/jarRepositories.xml +10 -0
- package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_0_2_aar.xml +4 -0
- package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_autofill_autofill_1_1_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml +4 -0
- package/android/.idea/libraries/Gradle__androidx_core_core_1_1_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +4 -0
- package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_0_0_aar.xml +4 -0
- package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml +4 -0
- package/android/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +4 -0
- package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_0_1_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +3 -0
- package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_2_2.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_native_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_ashmem_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_java_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_native_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_ui_common_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/{Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2.xml → Gradle__com_facebook_infer_annotation_infer_annotation_0_18_0.xml} +4 -4
- package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_66_1_aar.xml +14 -0
- package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_10_1.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_1.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_1_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_19_0.xml +13 -0
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_4_9_1.xml +13 -0
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_4_9_1.xml +13 -0
- package/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_9_0.xml +13 -0
- package/android/.idea/libraries/Gradle__io_github_lizhangqu_coreprogress_1_0_2_aar.xml +5 -2
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_annotations_jvm_1_3_72.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_4_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_4_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_4_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_4_10.xml +13 -0
- package/android/.idea/modules/android.iml +34 -26
- package/android/build.gradle +43 -44
- package/android/src/main/java/com/reactnativecompressor/.DS_Store +0 -0
- package/android/src/main/java/com/reactnativecompressor/Audio/AudioCompressor.java +3 -4
- package/android/src/main/java/com/reactnativecompressor/CompressorModule.java +1 -33
- package/android/src/main/java/com/reactnativecompressor/Utils/Utils.java +74 -0
- package/android/src/main/java/com/reactnativecompressor/Video/AutoVideoCompression/AutoVideoCompression.java +24 -58
- package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressorHelper.java +6 -42
- package/android/src/main/java/com/reactnativecompressor/Video/VideoModule.java +19 -17
- package/ios/Compressor.m +2 -1
- package/ios/Video/VideoCompressor.swift +31 -24
- package/lib/commonjs/Audio/index.js.map +1 -1
- package/lib/commonjs/Video/index.js +45 -30
- package/lib/commonjs/Video/index.js.map +1 -1
- package/lib/module/Audio/index.js.map +1 -1
- package/lib/module/Video/index.js +38 -29
- package/lib/module/Video/index.js.map +1 -1
- package/lib/typescript/Video/index.d.ts +4 -0
- package/package.json +1 -1
- package/react-native-compressor.podspec +1 -1
- package/src/Audio/index.tsx +1 -1
- package/src/Video/index.tsx +48 -36
- package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_0_0.xml +0 -13
- package/android/.idea/libraries/Gradle__androidx_core_core_1_0_1_aar.xml +0 -20
- package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_0_0_aar.xml +0 -16
- package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_0_3.xml +0 -13
- package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_0_0_aar.xml +0 -18
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_0_0_aar.xml +0 -22
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_0_0_aar.xml +0 -22
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_0_0_aar.xml +0 -22
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_0_0_aar.xml +0 -22
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_0_0_aar.xml +0 -18
- package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_0_0_aar.xml +0 -18
- package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_0_0_aar.xml +0 -18
- package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_63_4_aar.xml +0 -22
- package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_9_0.xml +0 -13
- package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_9_0.xml +0 -13
- package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_9_0_aar.xml +0 -18
- package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_14_1.xml +0 -13
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_12.xml +0 -13
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_12_12.xml +0 -13
- package/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0.xml +0 -13
- package/android/.idea/libraries/Gradle__com_zolad_videoslimmer_1_0_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_4_0.xml +0 -13
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_4_0.xml +0 -13
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default = void 0;
|
|
6
|
+
exports.default = exports.cancelCompression = exports.backgroundUpload = void 0;
|
|
7
7
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
|
|
@@ -11,6 +11,45 @@ var _utils = require("../utils");
|
|
|
11
11
|
|
|
12
12
|
const VideoCompressEventEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.VideoCompressor);
|
|
13
13
|
const NativeVideoCompressor = _reactNative.NativeModules.VideoCompressor;
|
|
14
|
+
|
|
15
|
+
const backgroundUpload = async (url, fileUrl, options, onProgress) => {
|
|
16
|
+
const uuid = (0, _utils.uuidv4)();
|
|
17
|
+
let subscription = null;
|
|
18
|
+
|
|
19
|
+
try {
|
|
20
|
+
if (onProgress) {
|
|
21
|
+
subscription = VideoCompressEventEmitter.addListener('VideoCompressorProgress', event => {
|
|
22
|
+
if (event.uuid === uuid) {
|
|
23
|
+
onProgress(event.data.written, event.data.total);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (_reactNative.Platform.OS === 'android' && fileUrl.includes('file://')) {
|
|
29
|
+
fileUrl = fileUrl.replace('file://', '');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const result = await NativeVideoCompressor.upload(fileUrl, {
|
|
33
|
+
uuid,
|
|
34
|
+
method: options.httpMethod,
|
|
35
|
+
headers: options.headers,
|
|
36
|
+
url
|
|
37
|
+
});
|
|
38
|
+
return result;
|
|
39
|
+
} finally {
|
|
40
|
+
if (subscription) {
|
|
41
|
+
VideoCompressEventEmitter.removeSubscription(subscription);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
exports.backgroundUpload = backgroundUpload;
|
|
47
|
+
|
|
48
|
+
const cancelCompression = cancellationId => {
|
|
49
|
+
return NativeVideoCompressor.cancelCompression(cancellationId);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
exports.cancelCompression = cancelCompression;
|
|
14
53
|
const Video = {
|
|
15
54
|
compress: async (fileUrl, options, onProgress) => {
|
|
16
55
|
const uuid = (0, _utils.uuidv4)();
|
|
@@ -46,37 +85,11 @@ const Video = {
|
|
|
46
85
|
modifiedOptions.minimumFileSizeForCompress = options === null || options === void 0 ? void 0 : options.minimumFileSizeForCompress;
|
|
47
86
|
}
|
|
48
87
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
} finally {
|
|
52
|
-
if (subscription) {
|
|
53
|
-
VideoCompressEventEmitter.removeSubscription(subscription);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
backgroundUpload: async (url, fileUrl, options, onProgress) => {
|
|
58
|
-
const uuid = (0, _utils.uuidv4)();
|
|
59
|
-
let subscription = null;
|
|
60
|
-
|
|
61
|
-
try {
|
|
62
|
-
if (onProgress) {
|
|
63
|
-
subscription = VideoCompressEventEmitter.addListener('VideoCompressorProgress', event => {
|
|
64
|
-
if (event.uuid === uuid) {
|
|
65
|
-
onProgress(event.data.written, event.data.total);
|
|
66
|
-
}
|
|
67
|
-
});
|
|
88
|
+
if (options !== null && options !== void 0 && options.getCancellationId) {
|
|
89
|
+
options === null || options === void 0 ? void 0 : options.getCancellationId(uuid);
|
|
68
90
|
}
|
|
69
91
|
|
|
70
|
-
|
|
71
|
-
fileUrl = fileUrl.replace('file://', '');
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const result = await NativeVideoCompressor.upload(fileUrl, {
|
|
75
|
-
uuid,
|
|
76
|
-
method: options.httpMethod,
|
|
77
|
-
headers: options.headers,
|
|
78
|
-
url
|
|
79
|
-
});
|
|
92
|
+
const result = await NativeVideoCompressor.compress(fileUrl, modifiedOptions);
|
|
80
93
|
return result;
|
|
81
94
|
} finally {
|
|
82
95
|
if (subscription) {
|
|
@@ -84,6 +97,8 @@ const Video = {
|
|
|
84
97
|
}
|
|
85
98
|
}
|
|
86
99
|
},
|
|
100
|
+
backgroundUpload: backgroundUpload,
|
|
101
|
+
cancelCompression,
|
|
87
102
|
|
|
88
103
|
activateBackgroundTask(onExpired) {
|
|
89
104
|
if (onExpired) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["VideoCompressEventEmitter","NativeEventEmitter","NativeModules","VideoCompressor","NativeVideoCompressor","
|
|
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","removeSubscription","cancelCompression","cancellationId","Video","compress","progress","modifiedOptions","bitrate","compressionMethod","maxSize","minimumFileSizeForCompress","getCancellationId","activateBackgroundTask","onExpired","deactivateBackgroundTask","removeAllListeners"],"mappings":";;;;;;;AAAA;;AACA;;AAgEA,MAAMA,yBAAyB,GAAG,IAAIC,+BAAJ,CAChCC,2BAAcC,eADkB,CAAlC;AAIA,MAAMC,qBAAqB,GAAGF,2BAAcC,eAA5C;;AAEO,MAAME,gBAAgB,GAAG,OAC9BC,GAD8B,EAE9BC,OAF8B,EAG9BC,OAH8B,EAI9BC,UAJ8B,KAKb;AACjB,QAAMC,IAAI,GAAG,oBAAb;AACA,MAAIC,YAAY,GAAG,IAAnB;;AACA,MAAI;AACF,QAAIF,UAAJ,EAAgB;AACdE,MAAAA,YAAY,GAAGX,yBAAyB,CAACY,WAA1B,CACb,yBADa,EAEZC,KAAD,IAAgB;AACd,YAAIA,KAAK,CAACH,IAAN,KAAeA,IAAnB,EAAyB;AACvBD,UAAAA,UAAU,CAACI,KAAK,CAACC,IAAN,CAAWC,OAAZ,EAAqBF,KAAK,CAACC,IAAN,CAAWE,KAAhC,CAAV;AACD;AACF,OANY,CAAf;AAQD;;AACD,QAAIC,sBAASC,EAAT,KAAgB,SAAhB,IAA6BX,OAAO,CAACY,QAAR,CAAiB,SAAjB,CAAjC,EAA8D;AAC5DZ,MAAAA,OAAO,GAAGA,OAAO,CAACa,OAAR,CAAgB,SAAhB,EAA2B,EAA3B,CAAV;AACD;;AACD,UAAMC,MAAM,GAAG,MAAMjB,qBAAqB,CAACkB,MAAtB,CAA6Bf,OAA7B,EAAsC;AACzDG,MAAAA,IADyD;AAEzDa,MAAAA,MAAM,EAAEf,OAAO,CAACgB,UAFyC;AAGzDC,MAAAA,OAAO,EAAEjB,OAAO,CAACiB,OAHwC;AAIzDnB,MAAAA;AAJyD,KAAtC,CAArB;AAMA,WAAOe,MAAP;AACD,GArBD,SAqBU;AACR,QAAIV,YAAJ,EAAkB;AAChBX,MAAAA,yBAAyB,CAAC0B,kBAA1B,CAA6Cf,YAA7C;AACD;AACF;AACF,CAlCM;;;;AAoCA,MAAMgB,iBAAiB,GAAIC,cAAD,IAA4B;AAC3D,SAAOxB,qBAAqB,CAACuB,iBAAtB,CAAwCC,cAAxC,CAAP;AACD,CAFM;;;AAIP,MAAMC,KAA0B,GAAG;AACjCC,EAAAA,QAAQ,EAAE,OACRvB,OADQ,EAERC,OAFQ,EAGRC,UAHQ,KAIL;AACH,UAAMC,IAAI,GAAG,oBAAb;AACA,QAAIC,YAAY,GAAG,IAAnB;;AACA,QAAI;AACF,UAAIF,UAAJ,EAAgB;AACdE,QAAAA,YAAY,GAAGX,yBAAyB,CAACY,WAA1B,CACb,uBADa,EAEZC,KAAD,IAAgB;AACd,cAAIA,KAAK,CAACH,IAAN,KAAeA,IAAnB,EAAyB;AACvBD,YAAAA,UAAU,CAACI,KAAK,CAACC,IAAN,CAAWiB,QAAZ,CAAV;AACD;AACF,SANY,CAAf;AAQD;;AACD,YAAMC,eAML,GAAG;AAAEtB,QAAAA;AAAF,OANJ;AAOA,UAAIF,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEyB,OAAb,EAAsBD,eAAe,CAACC,OAAhB,GAA0BzB,OAA1B,aAA0BA,OAA1B,uBAA0BA,OAAO,CAAEyB,OAAnC;;AACtB,UAAIzB,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAE0B,iBAAb,EAAgC;AAC9BF,QAAAA,eAAe,CAACE,iBAAhB,GAAoC1B,OAApC,aAAoCA,OAApC,uBAAoCA,OAAO,CAAE0B,iBAA7C;AACD,OAFD,MAEO;AACLF,QAAAA,eAAe,CAACE,iBAAhB,GAAoC,QAApC;AACD;;AACD,UAAI1B,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAE2B,OAAb,EAAsB;AACpBH,QAAAA,eAAe,CAACG,OAAhB,GAA0B3B,OAA1B,aAA0BA,OAA1B,uBAA0BA,OAAO,CAAE2B,OAAnC;AACD,OAFD,MAEO;AACLH,QAAAA,eAAe,CAACG,OAAhB,GAA0B,GAA1B;AACD;;AACD,UAAI3B,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAE4B,0BAAb,EAAyC;AACvCJ,QAAAA,eAAe,CAACI,0BAAhB,GACE5B,OADF,aACEA,OADF,uBACEA,OAAO,CAAE4B,0BADX;AAED;;AACD,UAAI5B,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAE6B,iBAAb,EAAgC;AAC9B7B,QAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE6B,iBAAT,CAA2B3B,IAA3B;AACD;;AACD,YAAMW,MAAM,GAAG,MAAMjB,qBAAqB,CAAC0B,QAAtB,CACnBvB,OADmB,EAEnByB,eAFmB,CAArB;AAIA,aAAOX,MAAP;AACD,KAzCD,SAyCU;AACR,UAAIV,YAAJ,EAAkB;AAChBX,QAAAA,yBAAyB,CAAC0B,kBAA1B,CAA6Cf,YAA7C;AACD;AACF;AACF,GAtDgC;AAuDjCN,EAAAA,gBAAgB,EAAEA,gBAvDe;AAwDjCsB,EAAAA,iBAxDiC;;AAyDjCW,EAAAA,sBAAsB,CAACC,SAAD,EAAa;AACjC,QAAIA,SAAJ,EAAe;AACb,YAAM5B,YAAY,GAAGX,yBAAyB,CAACY,WAA1B,CACnB,uBADmB,EAElBC,KAAD,IAAgB;AACd0B,QAAAA,SAAS,CAAC1B,KAAD,CAAT;AACAb,QAAAA,yBAAyB,CAAC0B,kBAA1B,CAA6Cf,YAA7C;AACD,OALkB,CAArB;AAOD;;AACD,WAAOP,qBAAqB,CAACkC,sBAAtB,CAA6C,EAA7C,CAAP;AACD,GApEgC;;AAqEjCE,EAAAA,wBAAwB,GAAG;AACzBxC,IAAAA,yBAAyB,CAACyC,kBAA1B,CAA6C,uBAA7C;AACA,WAAOrC,qBAAqB,CAACoC,wBAAtB,CAA+C,EAA/C,CAAP;AACD;;AAxEgC,CAAnC;eA2EeX,K","sourcesContent":["import { NativeModules, NativeEventEmitter, Platform } 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 = null;\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 if (subscription) {\n VideoCompressEventEmitter.removeSubscription(subscription);\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 = null;\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) {\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 if (subscription) {\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n }\n },\n backgroundUpload: backgroundUpload,\n cancelCompression,\n activateBackgroundTask(onExpired?) {\n if (onExpired) {\n const subscription = VideoCompressEventEmitter.addListener(\n 'backgroundTaskExpired',\n (event: any) => {\n onExpired(event);\n VideoCompressEventEmitter.removeSubscription(subscription);\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 +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,
|
|
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"]}
|
|
@@ -2,6 +2,39 @@ import { NativeModules, NativeEventEmitter, Platform } from 'react-native';
|
|
|
2
2
|
import { uuidv4 } from '../utils';
|
|
3
3
|
const VideoCompressEventEmitter = new NativeEventEmitter(NativeModules.VideoCompressor);
|
|
4
4
|
const NativeVideoCompressor = NativeModules.VideoCompressor;
|
|
5
|
+
export const backgroundUpload = async (url, fileUrl, options, onProgress) => {
|
|
6
|
+
const uuid = uuidv4();
|
|
7
|
+
let subscription = null;
|
|
8
|
+
|
|
9
|
+
try {
|
|
10
|
+
if (onProgress) {
|
|
11
|
+
subscription = VideoCompressEventEmitter.addListener('VideoCompressorProgress', event => {
|
|
12
|
+
if (event.uuid === uuid) {
|
|
13
|
+
onProgress(event.data.written, event.data.total);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
if (Platform.OS === 'android' && fileUrl.includes('file://')) {
|
|
19
|
+
fileUrl = fileUrl.replace('file://', '');
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const result = await NativeVideoCompressor.upload(fileUrl, {
|
|
23
|
+
uuid,
|
|
24
|
+
method: options.httpMethod,
|
|
25
|
+
headers: options.headers,
|
|
26
|
+
url
|
|
27
|
+
});
|
|
28
|
+
return result;
|
|
29
|
+
} finally {
|
|
30
|
+
if (subscription) {
|
|
31
|
+
VideoCompressEventEmitter.removeSubscription(subscription);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
export const cancelCompression = cancellationId => {
|
|
36
|
+
return NativeVideoCompressor.cancelCompression(cancellationId);
|
|
37
|
+
};
|
|
5
38
|
const Video = {
|
|
6
39
|
compress: async (fileUrl, options, onProgress) => {
|
|
7
40
|
const uuid = uuidv4();
|
|
@@ -37,37 +70,11 @@ const Video = {
|
|
|
37
70
|
modifiedOptions.minimumFileSizeForCompress = options === null || options === void 0 ? void 0 : options.minimumFileSizeForCompress;
|
|
38
71
|
}
|
|
39
72
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
} finally {
|
|
43
|
-
if (subscription) {
|
|
44
|
-
VideoCompressEventEmitter.removeSubscription(subscription);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
backgroundUpload: async (url, fileUrl, options, onProgress) => {
|
|
49
|
-
const uuid = uuidv4();
|
|
50
|
-
let subscription = null;
|
|
51
|
-
|
|
52
|
-
try {
|
|
53
|
-
if (onProgress) {
|
|
54
|
-
subscription = VideoCompressEventEmitter.addListener('VideoCompressorProgress', event => {
|
|
55
|
-
if (event.uuid === uuid) {
|
|
56
|
-
onProgress(event.data.written, event.data.total);
|
|
57
|
-
}
|
|
58
|
-
});
|
|
73
|
+
if (options !== null && options !== void 0 && options.getCancellationId) {
|
|
74
|
+
options === null || options === void 0 ? void 0 : options.getCancellationId(uuid);
|
|
59
75
|
}
|
|
60
76
|
|
|
61
|
-
|
|
62
|
-
fileUrl = fileUrl.replace('file://', '');
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const result = await NativeVideoCompressor.upload(fileUrl, {
|
|
66
|
-
uuid,
|
|
67
|
-
method: options.httpMethod,
|
|
68
|
-
headers: options.headers,
|
|
69
|
-
url
|
|
70
|
-
});
|
|
77
|
+
const result = await NativeVideoCompressor.compress(fileUrl, modifiedOptions);
|
|
71
78
|
return result;
|
|
72
79
|
} finally {
|
|
73
80
|
if (subscription) {
|
|
@@ -75,6 +82,8 @@ const Video = {
|
|
|
75
82
|
}
|
|
76
83
|
}
|
|
77
84
|
},
|
|
85
|
+
backgroundUpload: backgroundUpload,
|
|
86
|
+
cancelCompression,
|
|
78
87
|
|
|
79
88
|
activateBackgroundTask(onExpired) {
|
|
80
89
|
if (onExpired) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["NativeModules","NativeEventEmitter","Platform","uuidv4","VideoCompressEventEmitter","VideoCompressor","NativeVideoCompressor","
|
|
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","removeSubscription","cancelCompression","cancellationId","Video","compress","progress","modifiedOptions","bitrate","compressionMethod","maxSize","minimumFileSizeForCompress","getCancellationId","activateBackgroundTask","onExpired","deactivateBackgroundTask","removeAllListeners"],"mappings":"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","sourcesContent":["import { NativeModules, NativeEventEmitter, Platform } 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 = null;\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 if (subscription) {\n VideoCompressEventEmitter.removeSubscription(subscription);\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 = null;\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) {\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 if (subscription) {\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n }\n },\n backgroundUpload: backgroundUpload,\n cancelCompression,\n activateBackgroundTask(onExpired?) {\n if (onExpired) {\n const subscription = VideoCompressEventEmitter.addListener(\n 'backgroundTaskExpired',\n (event: any) => {\n onExpired(event);\n VideoCompressEventEmitter.removeSubscription(subscription);\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"]}
|
|
@@ -9,6 +9,7 @@ declare type videoCompresssionType = {
|
|
|
9
9
|
maxSize?: number;
|
|
10
10
|
compressionMethod?: compressionMethod;
|
|
11
11
|
minimumFileSizeForCompress?: number;
|
|
12
|
+
getCancellationId?: (cancellationId: string) => void;
|
|
12
13
|
};
|
|
13
14
|
export declare enum FileSystemSessionType {
|
|
14
15
|
BACKGROUND = 0,
|
|
@@ -33,9 +34,12 @@ export declare type FileSystemUploadOptions = ({
|
|
|
33
34
|
};
|
|
34
35
|
export declare type VideoCompressorType = {
|
|
35
36
|
compress(fileUrl: string, options?: videoCompresssionType, onProgress?: (progress: number) => void): Promise<string>;
|
|
37
|
+
cancelCompression(cancellationId: string): void;
|
|
36
38
|
backgroundUpload(url: string, fileUrl: string, options: FileSystemUploadOptions, onProgress?: (writtem: number, total: number) => void): Promise<any>;
|
|
37
39
|
activateBackgroundTask(onExpired?: (data: any) => void): Promise<any>;
|
|
38
40
|
deactivateBackgroundTask(): Promise<any>;
|
|
39
41
|
};
|
|
42
|
+
export declare const backgroundUpload: (url: string, fileUrl: string, options: FileSystemUploadOptions, onProgress?: ((writtem: number, total: number) => void) | undefined) => Promise<any>;
|
|
43
|
+
export declare const cancelCompression: (cancellationId: string) => any;
|
|
40
44
|
declare const Video: VideoCompressorType;
|
|
41
45
|
export default Video;
|
package/package.json
CHANGED
|
@@ -10,7 +10,7 @@ Pod::Spec.new do |s|
|
|
|
10
10
|
s.license = package["license"]
|
|
11
11
|
s.authors = package["author"]
|
|
12
12
|
|
|
13
|
-
s.platforms = { :ios => "
|
|
13
|
+
s.platforms = { :ios => "11.0" }
|
|
14
14
|
s.source = { :git => "https://github.com/Shobbak/react-native-compressor.git", :tag => "#{s.version}" }
|
|
15
15
|
|
|
16
16
|
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
package/src/Audio/index.tsx
CHANGED
package/src/Video/index.tsx
CHANGED
|
@@ -16,6 +16,7 @@ type videoCompresssionType = {
|
|
|
16
16
|
maxSize?: number;
|
|
17
17
|
compressionMethod?: compressionMethod;
|
|
18
18
|
minimumFileSizeForCompress?: number;
|
|
19
|
+
getCancellationId?: (cancellationId: string) => void;
|
|
19
20
|
};
|
|
20
21
|
|
|
21
22
|
export declare enum FileSystemSessionType {
|
|
@@ -51,6 +52,7 @@ export type VideoCompressorType = {
|
|
|
51
52
|
options?: videoCompresssionType,
|
|
52
53
|
onProgress?: (progress: number) => void
|
|
53
54
|
): Promise<string>;
|
|
55
|
+
cancelCompression(cancellationId: string): void;
|
|
54
56
|
backgroundUpload(
|
|
55
57
|
url: string,
|
|
56
58
|
fileUrl: string,
|
|
@@ -67,15 +69,50 @@ const VideoCompressEventEmitter = new NativeEventEmitter(
|
|
|
67
69
|
|
|
68
70
|
const NativeVideoCompressor = NativeModules.VideoCompressor;
|
|
69
71
|
|
|
72
|
+
export const backgroundUpload = async (
|
|
73
|
+
url: string,
|
|
74
|
+
fileUrl: string,
|
|
75
|
+
options: FileSystemUploadOptions,
|
|
76
|
+
onProgress?: (writtem: number, total: number) => void
|
|
77
|
+
): Promise<any> => {
|
|
78
|
+
const uuid = uuidv4();
|
|
79
|
+
let subscription = null;
|
|
80
|
+
try {
|
|
81
|
+
if (onProgress) {
|
|
82
|
+
subscription = VideoCompressEventEmitter.addListener(
|
|
83
|
+
'VideoCompressorProgress',
|
|
84
|
+
(event: any) => {
|
|
85
|
+
if (event.uuid === uuid) {
|
|
86
|
+
onProgress(event.data.written, event.data.total);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
if (Platform.OS === 'android' && fileUrl.includes('file://')) {
|
|
92
|
+
fileUrl = fileUrl.replace('file://', '');
|
|
93
|
+
}
|
|
94
|
+
const result = await NativeVideoCompressor.upload(fileUrl, {
|
|
95
|
+
uuid,
|
|
96
|
+
method: options.httpMethod,
|
|
97
|
+
headers: options.headers,
|
|
98
|
+
url,
|
|
99
|
+
});
|
|
100
|
+
return result;
|
|
101
|
+
} finally {
|
|
102
|
+
if (subscription) {
|
|
103
|
+
VideoCompressEventEmitter.removeSubscription(subscription);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export const cancelCompression = (cancellationId: string) => {
|
|
109
|
+
return NativeVideoCompressor.cancelCompression(cancellationId);
|
|
110
|
+
};
|
|
111
|
+
|
|
70
112
|
const Video: VideoCompressorType = {
|
|
71
113
|
compress: async (
|
|
72
114
|
fileUrl: string,
|
|
73
|
-
options?:
|
|
74
|
-
bitrate?: number;
|
|
75
|
-
compressionMethod?: compressionMethod;
|
|
76
|
-
maxSize?: number;
|
|
77
|
-
minimumFileSizeForCompress?: number;
|
|
78
|
-
},
|
|
115
|
+
options?: videoCompresssionType,
|
|
79
116
|
onProgress?: (progress: number) => void
|
|
80
117
|
) => {
|
|
81
118
|
const uuid = uuidv4();
|
|
@@ -113,6 +150,9 @@ const Video: VideoCompressorType = {
|
|
|
113
150
|
modifiedOptions.minimumFileSizeForCompress =
|
|
114
151
|
options?.minimumFileSizeForCompress;
|
|
115
152
|
}
|
|
153
|
+
if (options?.getCancellationId) {
|
|
154
|
+
options?.getCancellationId(uuid);
|
|
155
|
+
}
|
|
116
156
|
const result = await NativeVideoCompressor.compress(
|
|
117
157
|
fileUrl,
|
|
118
158
|
modifiedOptions
|
|
@@ -124,36 +164,8 @@ const Video: VideoCompressorType = {
|
|
|
124
164
|
}
|
|
125
165
|
}
|
|
126
166
|
},
|
|
127
|
-
backgroundUpload:
|
|
128
|
-
|
|
129
|
-
let subscription = null;
|
|
130
|
-
try {
|
|
131
|
-
if (onProgress) {
|
|
132
|
-
subscription = VideoCompressEventEmitter.addListener(
|
|
133
|
-
'VideoCompressorProgress',
|
|
134
|
-
(event: any) => {
|
|
135
|
-
if (event.uuid === uuid) {
|
|
136
|
-
onProgress(event.data.written, event.data.total);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
);
|
|
140
|
-
}
|
|
141
|
-
if (Platform.OS === 'android' && fileUrl.includes('file://')) {
|
|
142
|
-
fileUrl = fileUrl.replace('file://', '');
|
|
143
|
-
}
|
|
144
|
-
const result = await NativeVideoCompressor.upload(fileUrl, {
|
|
145
|
-
uuid,
|
|
146
|
-
method: options.httpMethod,
|
|
147
|
-
headers: options.headers,
|
|
148
|
-
url,
|
|
149
|
-
});
|
|
150
|
-
return result;
|
|
151
|
-
} finally {
|
|
152
|
-
if (subscription) {
|
|
153
|
-
VideoCompressEventEmitter.removeSubscription(subscription);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
},
|
|
167
|
+
backgroundUpload: backgroundUpload,
|
|
168
|
+
cancelCompression,
|
|
157
169
|
activateBackgroundTask(onExpired?) {
|
|
158
170
|
if (onExpired) {
|
|
159
171
|
const subscription = VideoCompressEventEmitter.addListener(
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<component name="libraryTable">
|
|
2
|
-
<library name="Gradle: androidx.annotation:annotation:1.0.0">
|
|
3
|
-
<CLASSES>
|
|
4
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.0.0/45599f2cd5965ac05a1488fa2a5c0cdd7c499ead/annotation-1.0.0.jar!/" />
|
|
5
|
-
</CLASSES>
|
|
6
|
-
<JAVADOC>
|
|
7
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.0.0/3ad9d83e5da3918fd93775080f401222f2d4d26a/annotation-1.0.0-javadoc.jar!/" />
|
|
8
|
-
</JAVADOC>
|
|
9
|
-
<SOURCES>
|
|
10
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.0.0/c5897dbbda33e66ca6f3224a2534891bbfcbda5a/annotation-1.0.0-sources.jar!/" />
|
|
11
|
-
</SOURCES>
|
|
12
|
-
</library>
|
|
13
|
-
</component>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<component name="libraryTable">
|
|
2
|
-
<library name="Gradle: androidx.core:core:1.0.1@aar">
|
|
3
|
-
<ANNOTATIONS>
|
|
4
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/72e23efd7c231bfbde600330f21b626b/core-1.0.1/annotations.zip!/" />
|
|
5
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f2d424e161909cc78a47bc198ec6c153/core-1.0.1/annotations.zip!/" />
|
|
6
|
-
</ANNOTATIONS>
|
|
7
|
-
<CLASSES>
|
|
8
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/72e23efd7c231bfbde600330f21b626b/core-1.0.1/res" />
|
|
9
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/72e23efd7c231bfbde600330f21b626b/core-1.0.1/AndroidManifest.xml" />
|
|
10
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/72e23efd7c231bfbde600330f21b626b/core-1.0.1/jars/classes.jar!/" />
|
|
11
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f2d424e161909cc78a47bc198ec6c153/core-1.0.1/AndroidManifest.xml" />
|
|
12
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f2d424e161909cc78a47bc198ec6c153/core-1.0.1/jars/classes.jar!/" />
|
|
13
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f2d424e161909cc78a47bc198ec6c153/core-1.0.1/res" />
|
|
14
|
-
</CLASSES>
|
|
15
|
-
<JAVADOC />
|
|
16
|
-
<SOURCES>
|
|
17
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.core/core/1.0.1/ae10d2e1965b944830c2c2aaf154765ceb32e0bc/core-1.0.1-sources.jar!/" />
|
|
18
|
-
</SOURCES>
|
|
19
|
-
</library>
|
|
20
|
-
</component>
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<component name="libraryTable">
|
|
2
|
-
<library name="Gradle: androidx.versionedparcelable:versionedparcelable:1.0.0@aar">
|
|
3
|
-
<CLASSES>
|
|
4
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/18792893332f3f306e5a73b9074ea34a/versionedparcelable-1.0.0/res" />
|
|
5
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a16d9a484107f2ef4d0239df1e640149/versionedparcelable-1.0.0/jars/classes.jar!/" />
|
|
6
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a16d9a484107f2ef4d0239df1e640149/versionedparcelable-1.0.0/AndroidManifest.xml" />
|
|
7
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a16d9a484107f2ef4d0239df1e640149/versionedparcelable-1.0.0/res" />
|
|
8
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/18792893332f3f306e5a73b9074ea34a/versionedparcelable-1.0.0/AndroidManifest.xml" />
|
|
9
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/18792893332f3f306e5a73b9074ea34a/versionedparcelable-1.0.0/jars/classes.jar!/" />
|
|
10
|
-
</CLASSES>
|
|
11
|
-
<JAVADOC />
|
|
12
|
-
<SOURCES>
|
|
13
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.versionedparcelable/versionedparcelable/1.0.0/df4c3c5d517f6a49017612e6b4dfdd007e7cc9b8/versionedparcelable-1.0.0-sources.jar!/" />
|
|
14
|
-
</SOURCES>
|
|
15
|
-
</library>
|
|
16
|
-
</component>
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<component name="libraryTable">
|
|
2
|
-
<library name="Gradle: com.facebook.fbjni:fbjni-java-only:0.0.3">
|
|
3
|
-
<CLASSES>
|
|
4
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fbjni/fbjni-java-only/0.0.3/c4540aecb99b9ec380acef6c10bb6f700de8ac2c/fbjni-java-only-0.0.3.jar!/" />
|
|
5
|
-
</CLASSES>
|
|
6
|
-
<JAVADOC>
|
|
7
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fbjni/fbjni-java-only/0.0.3/968548ffa89f351bf709971f75eee154dcf085ab/fbjni-java-only-0.0.3-javadoc.jar!/" />
|
|
8
|
-
</JAVADOC>
|
|
9
|
-
<SOURCES>
|
|
10
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fbjni/fbjni-java-only/0.0.3/2a274312d2ca301c8282532dcaf4654ed7b6692/fbjni-java-only-0.0.3-sources.jar!/" />
|
|
11
|
-
</SOURCES>
|
|
12
|
-
</library>
|
|
13
|
-
</component>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<component name="libraryTable">
|
|
2
|
-
<library name="Gradle: com.facebook.fresco:drawee:2.0.0@aar">
|
|
3
|
-
<CLASSES>
|
|
4
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f0126cdedd26dcf8a6bfc612efabe47d/drawee-2.0.0/AndroidManifest.xml" />
|
|
5
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f0126cdedd26dcf8a6bfc612efabe47d/drawee-2.0.0/jars/classes.jar!/" />
|
|
6
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f0126cdedd26dcf8a6bfc612efabe47d/drawee-2.0.0/res" />
|
|
7
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/299541486cee301ca253077b5332cbf9/drawee-2.0.0/res" />
|
|
8
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/299541486cee301ca253077b5332cbf9/drawee-2.0.0/jars/classes.jar!/" />
|
|
9
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/299541486cee301ca253077b5332cbf9/drawee-2.0.0/AndroidManifest.xml" />
|
|
10
|
-
</CLASSES>
|
|
11
|
-
<JAVADOC>
|
|
12
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/drawee/2.0.0/416ad28d3ec4edf504c4253b25dc27af1127872c/drawee-2.0.0-javadoc.jar!/" />
|
|
13
|
-
</JAVADOC>
|
|
14
|
-
<SOURCES>
|
|
15
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/drawee/2.0.0/fd8babf68363a8fb0585271b553e1d8537de137f/drawee-2.0.0-sources.jar!/" />
|
|
16
|
-
</SOURCES>
|
|
17
|
-
</library>
|
|
18
|
-
</component>
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<component name="libraryTable">
|
|
2
|
-
<library name="Gradle: com.facebook.fresco:fbcore:2.0.0@aar">
|
|
3
|
-
<ANNOTATIONS>
|
|
4
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/292f691ae42284babe27a48e58f3c00c/fbcore-2.0.0/annotations.zip!/" />
|
|
5
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a3c0183cbeee9b5239a2eb7551f165d2/fbcore-2.0.0/annotations.zip!/" />
|
|
6
|
-
</ANNOTATIONS>
|
|
7
|
-
<CLASSES>
|
|
8
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a3c0183cbeee9b5239a2eb7551f165d2/fbcore-2.0.0/res" />
|
|
9
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/292f691ae42284babe27a48e58f3c00c/fbcore-2.0.0/AndroidManifest.xml" />
|
|
10
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/292f691ae42284babe27a48e58f3c00c/fbcore-2.0.0/res" />
|
|
11
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/292f691ae42284babe27a48e58f3c00c/fbcore-2.0.0/jars/classes.jar!/" />
|
|
12
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a3c0183cbeee9b5239a2eb7551f165d2/fbcore-2.0.0/AndroidManifest.xml" />
|
|
13
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a3c0183cbeee9b5239a2eb7551f165d2/fbcore-2.0.0/jars/classes.jar!/" />
|
|
14
|
-
</CLASSES>
|
|
15
|
-
<JAVADOC>
|
|
16
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/fbcore/2.0.0/4c3bef1ba14c0daa24d8630cdaec88fa254c8c59/fbcore-2.0.0-javadoc.jar!/" />
|
|
17
|
-
</JAVADOC>
|
|
18
|
-
<SOURCES>
|
|
19
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/fbcore/2.0.0/63bfb99f5b76be2c561becd255d5a4aff49c5528/fbcore-2.0.0-sources.jar!/" />
|
|
20
|
-
</SOURCES>
|
|
21
|
-
</library>
|
|
22
|
-
</component>
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<component name="libraryTable">
|
|
2
|
-
<library name="Gradle: com.facebook.fresco:fresco:2.0.0@aar">
|
|
3
|
-
<ANNOTATIONS>
|
|
4
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e19af412d9647b4ca2bf0cf80c637c71/fresco-2.0.0/annotations.zip!/" />
|
|
5
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/eca73a6e4c7444786a4400d1f30ec5fd/fresco-2.0.0/annotations.zip!/" />
|
|
6
|
-
</ANNOTATIONS>
|
|
7
|
-
<CLASSES>
|
|
8
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/eca73a6e4c7444786a4400d1f30ec5fd/fresco-2.0.0/res" />
|
|
9
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e19af412d9647b4ca2bf0cf80c637c71/fresco-2.0.0/AndroidManifest.xml" />
|
|
10
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e19af412d9647b4ca2bf0cf80c637c71/fresco-2.0.0/jars/classes.jar!/" />
|
|
11
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e19af412d9647b4ca2bf0cf80c637c71/fresco-2.0.0/res" />
|
|
12
|
-
<root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/eca73a6e4c7444786a4400d1f30ec5fd/fresco-2.0.0/jars/classes.jar!/" />
|
|
13
|
-
<root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/eca73a6e4c7444786a4400d1f30ec5fd/fresco-2.0.0/AndroidManifest.xml" />
|
|
14
|
-
</CLASSES>
|
|
15
|
-
<JAVADOC>
|
|
16
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/fresco/2.0.0/e1bdf0d1daeed7b2af4d334ee012b81a2496ec93/fresco-2.0.0-javadoc.jar!/" />
|
|
17
|
-
</JAVADOC>
|
|
18
|
-
<SOURCES>
|
|
19
|
-
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/fresco/2.0.0/4fd7cb7438109299dd0175f2cbaa8d205d7ee78f/fresco-2.0.0-sources.jar!/" />
|
|
20
|
-
</SOURCES>
|
|
21
|
-
</library>
|
|
22
|
-
</component>
|