react-native-compressor 1.8.19 → 1.8.20
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 +30 -2
- package/android/src/main/java/com/reactnativecompressor/CompressorModule.kt +5 -1
- package/android/src/main/java/com/reactnativecompressor/Image/ImageMain.kt +32 -0
- package/android/src/oldarch/CompressorSpec.kt +1 -0
- package/ios/Compressor.mm +4 -0
- package/ios/CompressorManager.swift +5 -0
- package/ios/Image/ImageMain.swift +24 -0
- package/lib/commonjs/Spec/NativeCompressor.js.map +1 -1
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/index.js +19 -1
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/module/Spec/NativeCompressor.js.map +1 -1
- package/lib/module/index.js +3 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/index.js +16 -0
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/Spec/NativeCompressor.d.ts +1 -0
- package/lib/typescript/Spec/NativeCompressor.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +12 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/utils/index.d.ts +11 -0
- package/lib/typescript/utils/index.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/Spec/NativeCompressor.ts +1 -0
- package/src/index.tsx +3 -0
- package/src/utils/index.tsx +37 -1
package/README.md
CHANGED
|
@@ -79,6 +79,7 @@ We should use **react-native-compressor** instead of **FFmpeg** because **react-
|
|
|
79
79
|
* [Other Utilities](#api)
|
|
80
80
|
- [Background Upload](#background-upload-1)
|
|
81
81
|
- [Cancel Background Upload](#cancel-background-upload-1)
|
|
82
|
+
- [Get Metadata Of Image](#get-metadata-of-image)
|
|
82
83
|
- [Get Metadata Of Video](#get-metadata-of-video)
|
|
83
84
|
- [Get Real Path](#get-real-path)
|
|
84
85
|
- [Get Temp file Path](#get-temp-file-path)
|
|
@@ -438,6 +439,8 @@ await clearCache(); // this will clear cache of thumbnails cache directory
|
|
|
438
439
|
- ###### `returnableOutputType: ReturnableOutputType` (default: uri)
|
|
439
440
|
Can be either `uri` or `base64`, defines the Returnable output image format.
|
|
440
441
|
|
|
442
|
+
**if you wanna get image metadata (exif) then [read this](#get-metadata-of-image)**
|
|
443
|
+
|
|
441
444
|
## Video
|
|
442
445
|
|
|
443
446
|
- ###### `compress(url: string, options?: videoCompresssionType , onProgress?: (progress: number)): Promise<string>`
|
|
@@ -451,6 +454,9 @@ await clearCache(); // this will clear cache of thumbnails cache directory
|
|
|
451
454
|
- ###### `deactivateBackgroundTask(): Promise<any>`
|
|
452
455
|
if you call `activateBackgroundTask` method, then after video compression, you should call `deactivateBackgroundTask` for disable background task mode.
|
|
453
456
|
|
|
457
|
+
- ###### `getCancellationId: function`
|
|
458
|
+
`getCancellationId` is a callback function that gives us compress video id, which can be used in `Video.cancelCompression` method to cancel the compression
|
|
459
|
+
|
|
454
460
|
### videoCompresssionType
|
|
455
461
|
|
|
456
462
|
- ###### `compressionMethod: compressionMethod` (default: "manual")
|
|
@@ -477,8 +483,7 @@ await clearCache(); // this will clear cache of thumbnails cache directory
|
|
|
477
483
|
|
|
478
484
|
previously default was 16 but now it is 0 by default. 0 mean 0mb. This is an offset, which you can set for minimumFileSizeForCompress will allow this package to dont compress less than or equal to `minimumFileSizeForCompress` ref [#26](https://github.com/numandev1/react-native-compressor/issues/26)
|
|
479
485
|
|
|
480
|
-
|
|
481
|
-
`getCancellationId` is a callback function that gives us compress video id, which can be used in `Video.cancelCompression` method to cancel the compression
|
|
486
|
+
**if you wanna get video metadata then [read this](#get-metadata-of-video)**
|
|
482
487
|
|
|
483
488
|
## Audio
|
|
484
489
|
|
|
@@ -597,6 +602,29 @@ const metaData = await getVideoMetaData(filePath);
|
|
|
597
602
|
|
|
598
603
|
- ###### `getVideoMetaData(path: string)`
|
|
599
604
|
|
|
605
|
+
### Get Metadata Of Image
|
|
606
|
+
|
|
607
|
+
if you want to get metadata of video than you can use this function
|
|
608
|
+
|
|
609
|
+
```js
|
|
610
|
+
import { getImageMetaData } from 'react-native-compressor';
|
|
611
|
+
|
|
612
|
+
const metaData = await getImageMetaData(filePath);
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
```
|
|
616
|
+
{
|
|
617
|
+
"ImageWidth": 4032,
|
|
618
|
+
"ImageHeight": 3024,
|
|
619
|
+
"Orientation": 3,
|
|
620
|
+
"size": 4127057,
|
|
621
|
+
"extension": "jpg",
|
|
622
|
+
"exif":{...}
|
|
623
|
+
}
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
- ###### `getImageMetaData(path: string)`
|
|
627
|
+
|
|
600
628
|
### Get Real Path
|
|
601
629
|
|
|
602
630
|
if you want to convert
|
|
@@ -15,7 +15,6 @@ import com.reactnativecompressor.Utils.Uploader
|
|
|
15
15
|
import com.reactnativecompressor.Utils.Utils
|
|
16
16
|
import com.reactnativecompressor.Utils.Utils.generateCacheFilePath
|
|
17
17
|
import com.reactnativecompressor.Utils.Utils.getRealPath
|
|
18
|
-
import com.reactnativecompressor.Utils.convertReadableMapToUploaderOptions
|
|
19
18
|
import com.reactnativecompressor.Video.VideoMain
|
|
20
19
|
|
|
21
20
|
class CompressorModule(private val reactContext: ReactApplicationContext) : CompressorSpec(reactContext) {
|
|
@@ -47,6 +46,11 @@ class CompressorModule(private val reactContext: ReactApplicationContext) : Comp
|
|
|
47
46
|
imageMain.image_compress(imagePath,optionMap,promise)
|
|
48
47
|
}
|
|
49
48
|
|
|
49
|
+
@ReactMethod
|
|
50
|
+
override fun getImageMetaData(filePath: String, promise: Promise) {
|
|
51
|
+
imageMain.getImageMetaData(filePath,promise)
|
|
52
|
+
}
|
|
53
|
+
|
|
50
54
|
// VIdeo
|
|
51
55
|
@ReactMethod
|
|
52
56
|
override fun compress(
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
package com.reactnativecompressor.Image
|
|
2
2
|
|
|
3
|
+
import android.media.ExifInterface
|
|
4
|
+
import android.net.Uri
|
|
5
|
+
import com.facebook.react.bridge.Arguments
|
|
3
6
|
import com.facebook.react.bridge.Promise
|
|
4
7
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
8
|
import com.facebook.react.bridge.ReadableMap
|
|
6
9
|
import com.reactnativecompressor.Utils.MediaCache
|
|
7
10
|
import com.reactnativecompressor.Utils.Utils
|
|
11
|
+
import com.reactnativecompressor.Utils.Utils.exifAttributes
|
|
12
|
+
import java.io.File
|
|
8
13
|
|
|
9
14
|
class ImageMain(private val reactContext: ReactApplicationContext) {
|
|
10
15
|
fun image_compress(
|
|
@@ -28,4 +33,31 @@ class ImageMain(private val reactContext: ReactApplicationContext) {
|
|
|
28
33
|
promise.reject(ex)
|
|
29
34
|
}
|
|
30
35
|
}
|
|
36
|
+
|
|
37
|
+
fun getImageMetaData(filePath: String, promise: Promise) {
|
|
38
|
+
var filePath: String? = filePath
|
|
39
|
+
try {
|
|
40
|
+
filePath = Utils.getRealPath(filePath, reactContext)
|
|
41
|
+
val uri = Uri.parse(filePath)
|
|
42
|
+
val srcPath = uri.path
|
|
43
|
+
val params = Arguments.createMap()
|
|
44
|
+
val file = File(srcPath)
|
|
45
|
+
val sizeInKBs = (file.length() / 1024).toDouble()
|
|
46
|
+
val exif = ExifInterface(srcPath!!)
|
|
47
|
+
for (tag in exifAttributes) {
|
|
48
|
+
val value: String? = exif.getAttribute(tag)
|
|
49
|
+
if(value != null)
|
|
50
|
+
{
|
|
51
|
+
params.putString(tag, value)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
}
|
|
55
|
+
val extension = filePath!!.substring(filePath.lastIndexOf(".") + 1)
|
|
56
|
+
params.putDouble("size", sizeInKBs)
|
|
57
|
+
params.putString("extension", extension)
|
|
58
|
+
promise.resolve(params)
|
|
59
|
+
} catch (e: Exception) {
|
|
60
|
+
promise.reject(e)
|
|
61
|
+
}
|
|
62
|
+
}
|
|
31
63
|
}
|
|
@@ -19,6 +19,7 @@ abstract class CompressorSpec(context: ReactApplicationContext?) : ReactContextB
|
|
|
19
19
|
abstract fun generateFilePath(_extension: String, promise: Promise)
|
|
20
20
|
abstract fun getRealPath(path: String, type: String, promise: Promise)
|
|
21
21
|
abstract fun getVideoMetaData(filePath: String, promise: Promise)
|
|
22
|
+
abstract fun getImageMetaData(String filePath, Promise promise);
|
|
22
23
|
abstract fun getFileSize(filePath: String, promise: Promise)
|
|
23
24
|
abstract fun compress(fileUrl: String, optionMap: ReadableMap, promise: Promise)
|
|
24
25
|
abstract fun cancelCompression(uuid: String)
|
package/ios/Compressor.mm
CHANGED
|
@@ -7,6 +7,10 @@ RCT_EXTERN_METHOD(image_compress: (NSString*) imagePath
|
|
|
7
7
|
withResolver: (RCTPromiseResolveBlock) resolve
|
|
8
8
|
withRejecter: (RCTPromiseRejectBlock) reject)
|
|
9
9
|
|
|
10
|
+
RCT_EXTERN_METHOD(getImageMetaData: (NSString*) filePath
|
|
11
|
+
withResolver: (RCTPromiseResolveBlock) resolve
|
|
12
|
+
withRejecter: (RCTPromiseRejectBlock) reject)
|
|
13
|
+
|
|
10
14
|
RCT_EXTERN_METHOD(compress_audio: (NSString*) filePath
|
|
11
15
|
withOptions: (NSDictionary*) optionsDict
|
|
12
16
|
withResolver: (RCTPromiseResolveBlock) resolve
|
|
@@ -35,6 +35,11 @@ class Compressor: RCTEventEmitter {
|
|
|
35
35
|
ImageMain.image_compress(imagePath, optionMap: optionMap, resolve: resolve, reject: reject)
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
@objc(getImageMetaData:withResolver:withRejecter:)
|
|
39
|
+
func getImageMetaData(_ filePath: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
40
|
+
ImageMain.getImageMetaData(filePath,resolve: resolve,reject: reject)
|
|
41
|
+
}
|
|
42
|
+
|
|
38
43
|
@objc(compress_audio:withOptions:withResolver:withRejecter:)
|
|
39
44
|
func compress_audio(_ fileUrl: String, optionMap: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
40
45
|
AudioMain.compress_audio(fileUrl, optionMap: optionMap, resolve: resolve, reject: reject)
|
|
@@ -24,4 +24,28 @@ class ImageMain {
|
|
|
24
24
|
reject(error.localizedDescription, error.localizedDescription, nil)
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
+
|
|
28
|
+
static func getImageMetaData(_ filePath: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
29
|
+
let options = ImageCompressorOptions.fromDictionary([:])
|
|
30
|
+
ImageCompressor.getAbsoluteImagePath(filePath, options: options) { ImagePath in
|
|
31
|
+
if ImagePath.hasPrefix("file://") {
|
|
32
|
+
let absoluteImagePath = URL(string: ImagePath)!.path
|
|
33
|
+
Utils.getFileSize(absoluteImagePath) { fileSize in
|
|
34
|
+
let _extension = (absoluteImagePath as NSString).pathExtension
|
|
35
|
+
let imageData = NSData(contentsOfFile: absoluteImagePath)!
|
|
36
|
+
let imageSource = CGImageSourceCreateWithData(imageData, nil)!
|
|
37
|
+
let imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, nil)!
|
|
38
|
+
let exif=imageProperties as NSDictionary
|
|
39
|
+
let mutableExif = exif.mutableCopy() as! NSMutableDictionary
|
|
40
|
+
if let fileSizeInt = Int(fileSize as! String) {
|
|
41
|
+
mutableExif.setValue(fileSizeInt, forKey: "size")
|
|
42
|
+
}
|
|
43
|
+
mutableExif.setValue(_extension, forKey: "extension")
|
|
44
|
+
resolve(mutableExif)
|
|
45
|
+
} reject: { code, message, error in
|
|
46
|
+
reject(code, message, error)
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
27
51
|
}
|
|
@@ -1 +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,
|
|
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,GAuCpCC,gCAAmB,CAACC,YAAY,CAAO,YAAY,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAJ,QAAA"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -82,6 +82,12 @@ Object.defineProperty(exports, "getFileSize", {
|
|
|
82
82
|
return _utils.getFileSize;
|
|
83
83
|
}
|
|
84
84
|
});
|
|
85
|
+
Object.defineProperty(exports, "getImageMetaData", {
|
|
86
|
+
enumerable: true,
|
|
87
|
+
get: function () {
|
|
88
|
+
return _utils.getImageMetaData;
|
|
89
|
+
}
|
|
90
|
+
});
|
|
85
91
|
Object.defineProperty(exports, "getRealPath", {
|
|
86
92
|
enumerable: true,
|
|
87
93
|
get: function () {
|
|
@@ -114,6 +120,7 @@ var _default = {
|
|
|
114
120
|
generateFilePath: _utils.generateFilePath,
|
|
115
121
|
getRealPath: _utils.getRealPath,
|
|
116
122
|
getVideoMetaData: _utils.getVideoMetaData,
|
|
123
|
+
getImageMetaData: _utils.getImageMetaData,
|
|
117
124
|
getFileSize: _utils.getFileSize,
|
|
118
125
|
backgroundUpload: _utils.backgroundUpload,
|
|
119
126
|
createVideoThumbnail: _utils.createVideoThumbnail,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Video","_interopRequireDefault","require","_Audio","_Image","_utils","obj","__esModule","default","_default","Video","Audio","Image","getDetails","uuidv4","generateFilePath","getRealPath","getVideoMetaData","getFileSize","backgroundUpload","createVideoThumbnail","clearCache","download","UploadType","UploaderHttpMethod","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_Video","_interopRequireDefault","require","_Audio","_Image","_utils","obj","__esModule","default","_default","Video","Audio","Image","getDetails","uuidv4","generateFilePath","getRealPath","getVideoMetaData","getImageMetaData","getFileSize","backgroundUpload","createVideoThumbnail","clearCache","download","UploadType","UploaderHttpMethod","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAeiB,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,IAAAG,QAAA,GAuBF;EACbC,KAAK,EAALA,cAAK;EACLC,KAAK,EAALA,cAAK;EACLC,KAAK,EAALA,cAAK;EACLC,UAAU,EAAVA,iBAAU;EACVC,MAAM,EAANA,aAAM;EACNC,gBAAgB,EAAhBA,uBAAgB;EAChBC,WAAW,EAAXA,kBAAW;EACXC,gBAAgB,EAAhBA,uBAAgB;EAChBC,gBAAgB,EAAhBA,uBAAgB;EAChBC,WAAW,EAAXA,kBAAW;EACXC,gBAAgB,EAAhBA,uBAAgB;EAChBC,oBAAoB,EAApBA,2BAAoB;EACpBC,UAAU,EAAVA,iBAAU;EACVC,QAAQ,EAARA,eAAQ;EACRC,UAAU,EAAVA,iBAAU;EACVC,kBAAkB,EAAlBA;AACF,CAAC;AAAAC,OAAA,CAAAlB,OAAA,GAAAC,QAAA"}
|
|
@@ -8,14 +8,16 @@ var _exportNames = {
|
|
|
8
8
|
generateFilePath: true,
|
|
9
9
|
getRealPath: true,
|
|
10
10
|
getVideoMetaData: true,
|
|
11
|
+
getImageMetaData: true,
|
|
11
12
|
createVideoThumbnail: true,
|
|
12
13
|
clearCache: true,
|
|
13
14
|
getDetails: true,
|
|
14
15
|
getFileSize: true,
|
|
15
16
|
uuidv4: true
|
|
16
17
|
};
|
|
17
|
-
exports.uuidv4 = exports.getVideoMetaData = exports.getRealPath = exports.getFileSize = exports.getDetails = exports.generateFilePath = exports.createVideoThumbnail = exports.clearCache = exports.DEFAULT_COMPRESS_AUDIO_OPTIONS = void 0;
|
|
18
|
+
exports.uuidv4 = exports.getVideoMetaData = exports.getRealPath = exports.getImageMetaData = exports.getFileSize = exports.getDetails = exports.generateFilePath = exports.createVideoThumbnail = exports.clearCache = exports.DEFAULT_COMPRESS_AUDIO_OPTIONS = void 0;
|
|
18
19
|
var _Main = require("../Main");
|
|
20
|
+
var _reactNative = require("react-native");
|
|
19
21
|
var _Downloader = require("./Downloader");
|
|
20
22
|
Object.keys(_Downloader).forEach(function (key) {
|
|
21
23
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -63,6 +65,22 @@ const getVideoMetaData = path => {
|
|
|
63
65
|
return _Main.Compressor.getVideoMetaData(path);
|
|
64
66
|
};
|
|
65
67
|
exports.getVideoMetaData = getVideoMetaData;
|
|
68
|
+
const unifyMetaData = exifResult => {
|
|
69
|
+
const output = {};
|
|
70
|
+
const isIos = _reactNative.Platform.OS === 'ios';
|
|
71
|
+
output.ImageWidth = isIos ? exifResult === null || exifResult === void 0 ? void 0 : exifResult.PixelWidth : parseInt(exifResult.ImageWidth);
|
|
72
|
+
output.ImageHeight = isIos ? exifResult === null || exifResult === void 0 ? void 0 : exifResult.PixelHeight : parseInt(exifResult.ImageLength);
|
|
73
|
+
output.Orientation = isIos ? exifResult.Orientation : parseInt(exifResult.Orientation);
|
|
74
|
+
output.size = exifResult.size;
|
|
75
|
+
output.extension = exifResult.extension;
|
|
76
|
+
output.exif = exifResult;
|
|
77
|
+
return output;
|
|
78
|
+
};
|
|
79
|
+
const getImageMetaData = async path => {
|
|
80
|
+
const result = await _Main.Compressor.getImageMetaData(path);
|
|
81
|
+
return unifyMetaData(result);
|
|
82
|
+
};
|
|
83
|
+
exports.getImageMetaData = getImageMetaData;
|
|
66
84
|
const createVideoThumbnail = function (fileUrl) {
|
|
67
85
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
68
86
|
return _Main.Compressor.createVideoThumbnail(fileUrl, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Main","require","_Downloader","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Uploader","INCORRECT_INPUT_PATH","DEFAULT_COMPRESS_AUDIO_OPTIONS","quality","generateFilePath","extension","Promise","resolve","reject","Compressor","then","result","catch","error","getRealPath","path","type","arguments","length","undefined","getVideoMetaData","createVideoThumbnail","fileUrl","options","clearCache","cacheDir","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","bitrate","getMediaProperties","bit_rate","
|
|
1
|
+
{"version":3,"names":["_Main","require","_reactNative","_Downloader","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Uploader","INCORRECT_INPUT_PATH","DEFAULT_COMPRESS_AUDIO_OPTIONS","quality","generateFilePath","extension","Promise","resolve","reject","Compressor","then","result","catch","error","getRealPath","path","type","arguments","length","undefined","getVideoMetaData","unifyMetaData","exifResult","output","isIos","Platform","OS","ImageWidth","PixelWidth","parseInt","ImageHeight","PixelHeight","ImageLength","Orientation","size","exif","getImageMetaData","createVideoThumbnail","fileUrl","options","clearCache","cacheDir","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","bitrate","getMediaProperties","bit_rate","Number","format","e","getFileSize","filePath","uuidv4","replace","c","r","parseFloat","Math","random","toString","Date","getTime","v"],"sourceRoot":"../../../src","sources":["utils/index.tsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["Spec/NativeCompressor.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["Spec/NativeCompressor.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAuClD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,YAAY,CAAC"}
|
package/lib/module/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import Video from './Video';
|
|
2
2
|
import Audio from './Audio';
|
|
3
3
|
import Image from './Image';
|
|
4
|
-
import { getDetails, uuidv4, generateFilePath, getRealPath, getVideoMetaData, getFileSize, backgroundUpload, cancelUpload, createVideoThumbnail, download, clearCache, UploadType, UploaderHttpMethod } from './utils';
|
|
4
|
+
import { getDetails, uuidv4, generateFilePath, getRealPath, getVideoMetaData, getImageMetaData, getFileSize, backgroundUpload, cancelUpload, createVideoThumbnail, download, clearCache, UploadType, UploaderHttpMethod } from './utils';
|
|
5
5
|
export { Video, Audio, Image, backgroundUpload, cancelUpload, download,
|
|
6
6
|
//type
|
|
7
|
-
getDetails, uuidv4, generateFilePath, getRealPath, getVideoMetaData, createVideoThumbnail, clearCache, getFileSize, UploadType, UploaderHttpMethod };
|
|
7
|
+
getDetails, uuidv4, generateFilePath, getRealPath, getVideoMetaData, getImageMetaData, createVideoThumbnail, clearCache, getFileSize, UploadType, UploaderHttpMethod };
|
|
8
8
|
export default {
|
|
9
9
|
Video,
|
|
10
10
|
Audio,
|
|
@@ -14,6 +14,7 @@ export default {
|
|
|
14
14
|
generateFilePath,
|
|
15
15
|
getRealPath,
|
|
16
16
|
getVideoMetaData,
|
|
17
|
+
getImageMetaData,
|
|
17
18
|
getFileSize,
|
|
18
19
|
backgroundUpload,
|
|
19
20
|
createVideoThumbnail,
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Video","Audio","Image","getDetails","uuidv4","generateFilePath","getRealPath","getVideoMetaData","getFileSize","backgroundUpload","cancelUpload","createVideoThumbnail","download","clearCache","UploadType","UploaderHttpMethod"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,SAAS;AAE3B,OAAOC,KAAK,MAAM,SAAS;AAC3B,OAAOC,KAAK,MAAM,SAAS;AAC3B,SACEC,UAAU,EACVC,MAAM,EACNC,gBAAgB,EAChBC,WAAW,EACXC,gBAAgB,EAChBC,WAAW,EACXC,gBAAgB,EAChBC,YAAY,EACZC,oBAAoB,EACpBC,QAAQ,EACRC,UAAU,EACVC,UAAU,EACVC,kBAAkB,QACb,SAAS;AAEhB,
|
|
1
|
+
{"version":3,"names":["Video","Audio","Image","getDetails","uuidv4","generateFilePath","getRealPath","getVideoMetaData","getImageMetaData","getFileSize","backgroundUpload","cancelUpload","createVideoThumbnail","download","clearCache","UploadType","UploaderHttpMethod"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,SAAS;AAE3B,OAAOC,KAAK,MAAM,SAAS;AAC3B,OAAOC,KAAK,MAAM,SAAS;AAC3B,SACEC,UAAU,EACVC,MAAM,EACNC,gBAAgB,EAChBC,WAAW,EACXC,gBAAgB,EAChBC,gBAAgB,EAChBC,WAAW,EACXC,gBAAgB,EAChBC,YAAY,EACZC,oBAAoB,EACpBC,QAAQ,EACRC,UAAU,EACVC,UAAU,EACVC,kBAAkB,QACb,SAAS;AAEhB,SACEhB,KAAK,EACLC,KAAK,EACLC,KAAK,EACLQ,gBAAgB,EAChBC,YAAY,EACZE,QAAQ;AACR;AACAV,UAAU,EACVC,MAAM,EACNC,gBAAgB,EAChBC,WAAW,EACXC,gBAAgB,EAChBC,gBAAgB,EAChBI,oBAAoB,EACpBE,UAAU,EACVL,WAAW,EACXM,UAAU,EACVC,kBAAkB;AAGpB,eAAe;EACbhB,KAAK;EACLC,KAAK;EACLC,KAAK;EACLC,UAAU;EACVC,MAAM;EACNC,gBAAgB;EAChBC,WAAW;EACXC,gBAAgB;EAChBC,gBAAgB;EAChBC,WAAW;EACXC,gBAAgB;EAChBE,oBAAoB;EACpBE,UAAU;EACVD,QAAQ;EACRE,UAAU;EACVC;AACF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* eslint-disable no-bitwise */
|
|
2
2
|
import { Compressor } from '../Main';
|
|
3
|
+
import { Platform } from 'react-native';
|
|
3
4
|
const INCORRECT_INPUT_PATH = 'Incorrect input path. Please provide a valid one';
|
|
4
5
|
export const DEFAULT_COMPRESS_AUDIO_OPTIONS = {
|
|
5
6
|
// bitrate: 96,
|
|
@@ -17,6 +18,21 @@ export const getRealPath = function (path) {
|
|
|
17
18
|
export const getVideoMetaData = path => {
|
|
18
19
|
return Compressor.getVideoMetaData(path);
|
|
19
20
|
};
|
|
21
|
+
const unifyMetaData = exifResult => {
|
|
22
|
+
const output = {};
|
|
23
|
+
const isIos = Platform.OS === 'ios';
|
|
24
|
+
output.ImageWidth = isIos ? exifResult === null || exifResult === void 0 ? void 0 : exifResult.PixelWidth : parseInt(exifResult.ImageWidth);
|
|
25
|
+
output.ImageHeight = isIos ? exifResult === null || exifResult === void 0 ? void 0 : exifResult.PixelHeight : parseInt(exifResult.ImageLength);
|
|
26
|
+
output.Orientation = isIos ? exifResult.Orientation : parseInt(exifResult.Orientation);
|
|
27
|
+
output.size = exifResult.size;
|
|
28
|
+
output.extension = exifResult.extension;
|
|
29
|
+
output.exif = exifResult;
|
|
30
|
+
return output;
|
|
31
|
+
};
|
|
32
|
+
export const getImageMetaData = async path => {
|
|
33
|
+
const result = await Compressor.getImageMetaData(path);
|
|
34
|
+
return unifyMetaData(result);
|
|
35
|
+
};
|
|
20
36
|
export const createVideoThumbnail = function (fileUrl) {
|
|
21
37
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
22
38
|
return Compressor.createVideoThumbnail(fileUrl, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Compressor","INCORRECT_INPUT_PATH","DEFAULT_COMPRESS_AUDIO_OPTIONS","quality","generateFilePath","extension","Promise","resolve","reject","then","result","catch","error","getRealPath","path","type","arguments","length","undefined","getVideoMetaData","createVideoThumbnail","fileUrl","options","clearCache","cacheDir","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","bitrate","getMediaProperties","bit_rate","
|
|
1
|
+
{"version":3,"names":["Compressor","Platform","INCORRECT_INPUT_PATH","DEFAULT_COMPRESS_AUDIO_OPTIONS","quality","generateFilePath","extension","Promise","resolve","reject","then","result","catch","error","getRealPath","path","type","arguments","length","undefined","getVideoMetaData","unifyMetaData","exifResult","output","isIos","OS","ImageWidth","PixelWidth","parseInt","ImageHeight","PixelHeight","ImageLength","Orientation","size","exif","getImageMetaData","createVideoThumbnail","fileUrl","options","clearCache","cacheDir","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","bitrate","getMediaProperties","bit_rate","Number","format","e","getFileSize","filePath","uuidv4","replace","c","r","parseFloat","Math","random","toString","Date","getTime","v"],"sourceRoot":"../../../src","sources":["utils/index.tsx"],"mappings":"AAAA;AACA,SAASA,UAAU,QAAQ,SAAS;AACpC,SAASC,QAAQ,QAAQ,cAAc;AAEvC,MAAMC,oBAAoB,GAAG,kDAAkD;AAe/E,OAAO,MAAMC,8BAAqD,GAAG;EACnE;EACAC,OAAO,EAAE;AACX,CAAC;AA0CD,OAAO,MAAMC,gBAAqB,GAAIC,SAAiB,IAAK;EAC1D,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCT,UAAU,CAACK,gBAAgB,CAACC,SAAS,CAAC,CACnCI,IAAI,CAAEC,MAAW,IAAKH,OAAO,CAAC,SAAS,GAAGG,MAAM,CAAC,CAAC,CAClDC,KAAK,CAAEC,KAAU,IAAKJ,MAAM,CAACI,KAAK,CAAC,CAAC;EACzC,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,MAAMC,WAA4B,GAAG,SAAAA,CAACC,IAAI,EAAqB;EAAA,IAAnBC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,OAAO;EAC/D,OAAOjB,UAAU,CAACc,WAAW,CAACC,IAAI,EAAEC,IAAI,CAAC;AAC3C,CAAC;AAED,OAAO,MAAMI,gBAAsC,GAAIL,IAAY,IAAK;EACtE,OAAOf,UAAU,CAACoB,gBAAgB,CAACL,IAAI,CAAC;AAC1C,CAAC;AAED,MAAMM,aAAa,GAAIC,UAAe,IAAK;EACzC,MAAMC,MAAW,GAAG,CAAC,CAAC;EACtB,MAAMC,KAAK,GAAGvB,QAAQ,CAACwB,EAAE,KAAK,KAAK;EACnCF,MAAM,CAACG,UAAU,GAAGF,KAAK,GACrBF,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,UAAU,GACtBC,QAAQ,CAACN,UAAU,CAACI,UAAU,CAAC;EAEnCH,MAAM,CAACM,WAAW,GAAGL,KAAK,GACtBF,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEQ,WAAW,GACvBF,QAAQ,CAACN,UAAU,CAACS,WAAW,CAAC;EAEpCR,MAAM,CAACS,WAAW,GAAGR,KAAK,GACtBF,UAAU,CAACU,WAAW,GACtBJ,QAAQ,CAACN,UAAU,CAACU,WAAW,CAAC;EAEpCT,MAAM,CAACU,IAAI,GAAGX,UAAU,CAACW,IAAI;EAC7BV,MAAM,CAACjB,SAAS,GAAGgB,UAAU,CAAChB,SAAS;EACvCiB,MAAM,CAACW,IAAI,GAAGZ,UAAU;EACxB,OAAOC,MAAM;AACf,CAAC;AAED,OAAO,MAAMY,gBAAsC,GAAG,MAAOpB,IAAY,IAAK;EAC5E,MAAMJ,MAAM,GAAG,MAAMX,UAAU,CAACmC,gBAAgB,CAACpB,IAAI,CAAC;EACtD,OAAOM,aAAa,CAACV,MAAM,CAAC;AAC9B,CAAC;AAED,OAAO,MAAMyB,oBAA8C,GAAG,SAAAA,CAC5DC,OAAO,EAEJ;EAAA,IADHC,OAAO,GAAArB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEZ,OAAOjB,UAAU,CAACoC,oBAAoB,CAACC,OAAO,EAAEC,OAAO,CAAC;AAC1D,CAAC;AAED,OAAO,MAAMC,UAA0B,GAAIC,QAAiB,IAAK;EAC/D,OAAOxC,UAAU,CAACuC,UAAU,CAACC,QAAQ,CAAC;AACxC,CAAC;AAED,MAAMC,UAAU,GAAIC,GAAW,IAC7B,uDAAuD,CAACC,IAAI,CAACD,GAAG,CAAC;AAEnE,MAAME,eAAe,GAAI7B,IAAmB,IAAK;EAC/C,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,IAAI8B,KAAK,GAAG9B,IAAI;;IAEhB;IACA,IAAIA,IAAI,CAAC+B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAACL,UAAU,CAAC1B,IAAI,CAAC,EAAE;MAC9C,OAAOb,oBAAoB;IAC7B;;IAEA;IACA,IAAI2C,KAAK,CAACA,KAAK,CAAC3B,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EACjC2B,KAAK,GAAGA,KAAK,CAACE,SAAS,CAAC,CAAC,EAAEhC,IAAI,CAACG,MAAM,GAAG,CAAC,CAAC;IAE7C,MAAM8B,KAAK,GAAGH,KAAK,CAACI,KAAK,CAAC,GAAG,CAAC;IAC9B,OAAOD,KAAK,CAAC9B,MAAM,GAAG,CAAC,GAAG8B,KAAK,CAACA,KAAK,CAAC9B,MAAM,GAAG,CAAC,CAAC,GAAGhB,oBAAoB;EAC1E;EACA,OAAOA,oBAAoB;AAC7B,CAAC;AAED,MAAMgD,eAAe,GAAIC,QAAgB,IAAK;EAC5C,OAAOA,QAAQ,KAAKjD,oBAAoB;AAC1C,CAAC;AAED,MAAMkD,WAAW,GAAIrC,IAAmB,IAAK;EAC3C,MAAMsC,YAAgC,GAAGT,eAAe,CAAC7B,IAAI,CAAC;EAC9D,IAAIsC,YAAY,IAAI,CAACH,eAAe,CAACG,YAAY,CAAC,EAAE;IAClD,MAAML,KAAK,GAAGK,YAAY,CAACJ,KAAK,CAAC,GAAG,CAAC;IACrC,OAAOD,KAAK,CAAC9B,MAAM,GAAG,CAAC,GAAG8B,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,GAAIzC,IAAmB,IAAK;EAAA,IAAA0C,WAAA;EAC7C,OAAO,OAAO1C,IAAI,KAAK,QAAQ,GAC3BA,IAAI,aAAJA,IAAI,gBAAA0C,WAAA,GAAJ1C,IAAI,CAAEkC,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;AAED,OAAO,MAAMY,UAAU,GAAG,SAAAA,CACxBC,aAAqB,EAEG;EAAA,IADxBC,SAAwB,GAAA3C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAEhC,OAAO,IAAIV,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;IAC5C,IAAI;MACF;MACA,MAAME,MAAW,GAAG,CAAC,CAAC;MACtB,IAAIA,MAAM,KAAK,CAAC,EAAE;QAChB,MAAM,IAAIkD,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,CAACC,OAAO,GAAGD,gBAAgB,CAACE,kBAAkB,CAAC,CAAC,CAACC,QAAQ;MACzEH,gBAAgB,CAAC3D,SAAS,GAAGsD,SAAS;MACtCK,gBAAgB,CAACT,aAAa,GAAGA,aAAa,CAACG,aAAa,CAAC;MAC7DM,gBAAgB,CAAChC,IAAI,GAAGoC,MAAM,CAACP,SAAS,CAACQ,MAAM,CAACrC,IAAI,CAAC;MAErDzB,OAAO,CAACyD,gBAAgB,CAAC;IAC3B,CAAC,CAAC,OAAOM,CAAC,EAAE;MACV9D,MAAM,CAAC8D,CAAC,CAAC;IACX;EACF,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,MAAMC,WAAW,GAAG,MAAOC,QAAgB,IAAsB;EACtE,OAAOzE,UAAU,CAACwE,WAAW,CAACC,QAAQ,CAAC;AACzC,CAAC;AAED,OAAO,MAAMC,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;AACD,cAAc,cAAc;AAC5B,cAAc,YAAY"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { TurboModule } from 'react-native';
|
|
2
2
|
export interface Spec extends TurboModule {
|
|
3
3
|
image_compress(imagePath: string, optionMap: Object): Promise<string>;
|
|
4
|
+
getImageMetaData(filePath: string): Promise<string>;
|
|
4
5
|
compress(fileUrl: string, optionMap: Object): Promise<string>;
|
|
5
6
|
cancelCompression(uuid: string): void;
|
|
6
7
|
getVideoMetaData(filePath: string): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeCompressor.d.ts","sourceRoot":"","sources":["../../../src/Spec/NativeCompressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeCompressor.d.ts","sourceRoot":"","sources":["../../../src/Spec/NativeCompressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpD,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3D,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAE3D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5D,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,oBAAoB,CAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QACT,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtD;;AAED,wBAAoE"}
|
|
@@ -2,8 +2,8 @@ import Video from './Video';
|
|
|
2
2
|
import type { VideoCompressorType } from './Video';
|
|
3
3
|
import Audio from './Audio';
|
|
4
4
|
import Image from './Image';
|
|
5
|
-
import { getDetails, uuidv4, generateFilePath, getRealPath, getVideoMetaData, getFileSize, backgroundUpload, cancelUpload, createVideoThumbnail, download, clearCache, UploadType, UploaderHttpMethod } from './utils';
|
|
6
|
-
export { Video, Audio, Image, backgroundUpload, cancelUpload, download, getDetails, uuidv4, generateFilePath, getRealPath, getVideoMetaData, createVideoThumbnail, clearCache, getFileSize, UploadType, UploaderHttpMethod, };
|
|
5
|
+
import { getDetails, uuidv4, generateFilePath, getRealPath, getVideoMetaData, getImageMetaData, getFileSize, backgroundUpload, cancelUpload, createVideoThumbnail, download, clearCache, UploadType, UploaderHttpMethod } from './utils';
|
|
6
|
+
export { Video, Audio, Image, backgroundUpload, cancelUpload, download, getDetails, uuidv4, generateFilePath, getRealPath, getVideoMetaData, getImageMetaData, createVideoThumbnail, clearCache, getFileSize, UploadType, UploaderHttpMethod, };
|
|
7
7
|
export type { VideoCompressorType };
|
|
8
8
|
declare const _default: {
|
|
9
9
|
Video: VideoCompressorType;
|
|
@@ -22,6 +22,16 @@ declare const _default: {
|
|
|
22
22
|
width: number;
|
|
23
23
|
height: number;
|
|
24
24
|
}>;
|
|
25
|
+
getImageMetaData: (filePath: string) => Promise<{
|
|
26
|
+
ImageWidth: number;
|
|
27
|
+
ImageHeight: number;
|
|
28
|
+
Orientation: number;
|
|
29
|
+
size: number;
|
|
30
|
+
extension: string;
|
|
31
|
+
exif: {
|
|
32
|
+
[key: string]: string;
|
|
33
|
+
};
|
|
34
|
+
}>;
|
|
25
35
|
getFileSize: (filePath: string) => Promise<string>;
|
|
26
36
|
backgroundUpload: (url: string, fileUrl: string, options: import("./utils").UploaderOptions, onProgress?: ((writtem: number, total: number) => void) | undefined, abortSignal?: AbortSignal | undefined) => Promise<any>;
|
|
27
37
|
createVideoThumbnail: (fileUrl: string, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EACL,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,UAAU,EACV,UAAU,EACV,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EAER,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,UAAU,EACV,kBAAkB,GACnB,CAAC;AACF,YAAY,EAAE,mBAAmB,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EACL,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,UAAU,EACV,UAAU,EACV,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EAER,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,UAAU,EACV,kBAAkB,GACnB,CAAC;AACF,YAAY,EAAE,mBAAmB,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACpC,wBAiBE"}
|
|
@@ -25,6 +25,16 @@ type createVideoThumbnailType = (fileUrl: string, options?: {
|
|
|
25
25
|
height: number;
|
|
26
26
|
}>;
|
|
27
27
|
type clearCacheType = (cacheDir?: string) => Promise<string>;
|
|
28
|
+
type getImageMetaDataType = (filePath: string) => Promise<{
|
|
29
|
+
ImageWidth: number;
|
|
30
|
+
ImageHeight: number;
|
|
31
|
+
Orientation: number;
|
|
32
|
+
size: number;
|
|
33
|
+
extension: string;
|
|
34
|
+
exif: {
|
|
35
|
+
[key: string]: string;
|
|
36
|
+
};
|
|
37
|
+
}>;
|
|
28
38
|
type getVideoMetaDataType = (filePath: string) => Promise<{
|
|
29
39
|
extension: string;
|
|
30
40
|
size: number;
|
|
@@ -36,6 +46,7 @@ type getRealPathType = (path: string, type: 'video' | 'image') => Promise<string
|
|
|
36
46
|
export declare const generateFilePath: any;
|
|
37
47
|
export declare const getRealPath: getRealPathType;
|
|
38
48
|
export declare const getVideoMetaData: getVideoMetaDataType;
|
|
49
|
+
export declare const getImageMetaData: getImageMetaDataType;
|
|
39
50
|
export declare const createVideoThumbnail: createVideoThumbnailType;
|
|
40
51
|
export declare const clearCache: clearCacheType;
|
|
41
52
|
export declare const getDetails: (mediaFullPath: string, extesnion?: 'mp3' | 'mp4') => Promise<any | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.tsx"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAG7C,KAAK,qBAAqB,GAAG;IAE3B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,qBAG5C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3E,CAAC;AAEF,KAAK,wBAAwB,GAAG,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACrC,KACE,OAAO,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,KAAK,cAAc,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.tsx"],"names":[],"mappings":"AAGA,KAAK,WAAW,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAG7C,KAAK,qBAAqB,GAAG;IAE3B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,qBAG5C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3E,CAAC;AAEF,KAAK,wBAAwB,GAAG,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACrC,KACE,OAAO,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,KAAK,cAAc,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7D,KAAK,oBAAoB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACjC,CAAC,CAAC;AAEH,KAAK,oBAAoB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AACH,KAAK,eAAe,GAAG,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,GAAG,OAAO,KACpB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,eAAO,MAAM,gBAAgB,EAAE,GAM9B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAEzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,oBAE9B,CAAC;AAuBF,eAAO,MAAM,gBAAgB,EAAE,oBAG9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,wBAKlC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,cAExB,CAAC;AA2CF,eAAO,MAAM,UAAU,kBACN,MAAM,cACV,KAAK,GAAG,KAAK,KACvB,QAAQ,GAAG,GAAG,IAAI,CA6BpB,CAAC;AAEF,eAAO,MAAM,WAAW,aAAoB,MAAM,KAAG,QAAQ,MAAM,CAElE,CAAC;AAEF,eAAO,MAAM,MAAM,cAclB,CAAC;AACF,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-compressor",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.20",
|
|
4
4
|
"description": "This library compress image, video and audio",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -66,7 +66,8 @@
|
|
|
66
66
|
"thumbnail",
|
|
67
67
|
"create-thumbnail",
|
|
68
68
|
"video-metadata",
|
|
69
|
-
"media"
|
|
69
|
+
"media",
|
|
70
|
+
"bitrate"
|
|
70
71
|
],
|
|
71
72
|
"repository": "https://github.com/numandev1/react-native-compressor",
|
|
72
73
|
"author": "numandev1 <muhammadnuman70@gmail.com> (https://github.com/numandev1)",
|
|
@@ -4,6 +4,7 @@ import { TurboModuleRegistry } from 'react-native';
|
|
|
4
4
|
export interface Spec extends TurboModule {
|
|
5
5
|
// Image
|
|
6
6
|
image_compress(imagePath: string, optionMap: Object): Promise<string>;
|
|
7
|
+
getImageMetaData(filePath: string): Promise<string>;
|
|
7
8
|
// Video
|
|
8
9
|
compress(fileUrl: string, optionMap: Object): Promise<string>;
|
|
9
10
|
cancelCompression(uuid: string): void;
|
package/src/index.tsx
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
generateFilePath,
|
|
9
9
|
getRealPath,
|
|
10
10
|
getVideoMetaData,
|
|
11
|
+
getImageMetaData,
|
|
11
12
|
getFileSize,
|
|
12
13
|
backgroundUpload,
|
|
13
14
|
cancelUpload,
|
|
@@ -31,6 +32,7 @@ export {
|
|
|
31
32
|
generateFilePath,
|
|
32
33
|
getRealPath,
|
|
33
34
|
getVideoMetaData,
|
|
35
|
+
getImageMetaData,
|
|
34
36
|
createVideoThumbnail,
|
|
35
37
|
clearCache,
|
|
36
38
|
getFileSize,
|
|
@@ -47,6 +49,7 @@ export default {
|
|
|
47
49
|
generateFilePath,
|
|
48
50
|
getRealPath,
|
|
49
51
|
getVideoMetaData,
|
|
52
|
+
getImageMetaData,
|
|
50
53
|
getFileSize,
|
|
51
54
|
backgroundUpload,
|
|
52
55
|
createVideoThumbnail,
|
package/src/utils/index.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable no-bitwise */
|
|
2
2
|
import { Compressor } from '../Main';
|
|
3
|
-
|
|
3
|
+
import { Platform } from 'react-native';
|
|
4
4
|
type qualityType = 'low' | 'medium' | 'high';
|
|
5
5
|
const INCORRECT_INPUT_PATH = 'Incorrect input path. Please provide a valid one';
|
|
6
6
|
|
|
@@ -40,6 +40,16 @@ type createVideoThumbnailType = (
|
|
|
40
40
|
}>;
|
|
41
41
|
|
|
42
42
|
type clearCacheType = (cacheDir?: string) => Promise<string>;
|
|
43
|
+
|
|
44
|
+
type getImageMetaDataType = (filePath: string) => Promise<{
|
|
45
|
+
ImageWidth: number;
|
|
46
|
+
ImageHeight: number;
|
|
47
|
+
Orientation: number;
|
|
48
|
+
size: number;
|
|
49
|
+
extension: string;
|
|
50
|
+
exif: { [key: string]: string };
|
|
51
|
+
}>;
|
|
52
|
+
|
|
43
53
|
type getVideoMetaDataType = (filePath: string) => Promise<{
|
|
44
54
|
extension: string;
|
|
45
55
|
size: number;
|
|
@@ -68,6 +78,32 @@ export const getVideoMetaData: getVideoMetaDataType = (path: string) => {
|
|
|
68
78
|
return Compressor.getVideoMetaData(path);
|
|
69
79
|
};
|
|
70
80
|
|
|
81
|
+
const unifyMetaData = (exifResult: any) => {
|
|
82
|
+
const output: any = {};
|
|
83
|
+
const isIos = Platform.OS === 'ios';
|
|
84
|
+
output.ImageWidth = isIos
|
|
85
|
+
? exifResult?.PixelWidth
|
|
86
|
+
: parseInt(exifResult.ImageWidth);
|
|
87
|
+
|
|
88
|
+
output.ImageHeight = isIos
|
|
89
|
+
? exifResult?.PixelHeight
|
|
90
|
+
: parseInt(exifResult.ImageLength);
|
|
91
|
+
|
|
92
|
+
output.Orientation = isIos
|
|
93
|
+
? exifResult.Orientation
|
|
94
|
+
: parseInt(exifResult.Orientation);
|
|
95
|
+
|
|
96
|
+
output.size = exifResult.size;
|
|
97
|
+
output.extension = exifResult.extension;
|
|
98
|
+
output.exif = exifResult;
|
|
99
|
+
return output;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export const getImageMetaData: getImageMetaDataType = async (path: string) => {
|
|
103
|
+
const result = await Compressor.getImageMetaData(path);
|
|
104
|
+
return unifyMetaData(result);
|
|
105
|
+
};
|
|
106
|
+
|
|
71
107
|
export const createVideoThumbnail: createVideoThumbnailType = (
|
|
72
108
|
fileUrl,
|
|
73
109
|
options = {}
|