react-native-compressor 1.18.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/android/CMakeLists.txt +27 -0
  2. package/android/build.gradle +56 -58
  3. package/android/gradle.properties +5 -5
  4. package/android/src/main/AndroidManifestNew.xml +3 -0
  5. package/android/src/main/cpp/cpp-adapter.cpp +8 -0
  6. package/android/src/main/java/com/margelo/nitro/compressor/HybridCompressor.kt +213 -0
  7. package/android/src/main/java/com/reactnativecompressor/Image/ImageCompressor.kt +41 -21
  8. package/android/src/main/java/com/reactnativecompressor/NitroCompressorPackage.kt +30 -0
  9. package/android/src/main/java/com/reactnativecompressor/NitroPromiseAdapter.kt +55 -0
  10. package/android/src/main/java/com/reactnativecompressor/Utils/EventEmitterHandler.kt +49 -45
  11. package/android/src/main/java/com/reactnativecompressor/Utils/Utils.kt +1 -1
  12. package/android/src/main/java/com/reactnativecompressor/Video/AutoVideoCompression.kt +1 -1
  13. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressionProfile.kt +21 -11
  14. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressor/compressor/Compressor.kt +311 -76
  15. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressor/utils/CompressorUtils.kt +96 -5
  16. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressor/utils/LocationExtractor.kt +397 -0
  17. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressor/videoHelpers/LocationBox.kt +47 -0
  18. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressor/videoHelpers/MP4Builder.kt +39 -7
  19. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressor/videoHelpers/Mp4Movie.kt +7 -0
  20. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressor/videoHelpers/OutputSurface.kt +30 -4
  21. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressorHelper.kt +28 -2
  22. package/ios/Audio/FormatConverter/FormatConverter+Compressed.swift +1 -1
  23. package/ios/Audio/FormatConverter/FormatConverter+Utilities.swift +1 -1
  24. package/ios/Audio/FormatConverter/FormatConverter.swift +5 -3
  25. package/ios/HybridCompressor.swift +247 -0
  26. package/ios/Image/ImageCompressor.swift +8 -2
  27. package/ios/Utils/EventEmitterHandler.swift +56 -34
  28. package/ios/Video/NextLevelSessionExporter.swift +43 -8
  29. package/ios/Video/VideoMain.swift +44 -14
  30. package/lib/commonjs/Audio/index.js +1 -1
  31. package/lib/commonjs/Audio/index.js.map +1 -1
  32. package/lib/commonjs/Image/index.js +2 -22
  33. package/lib/commonjs/Image/index.js.map +1 -1
  34. package/lib/commonjs/Main.js +8 -8
  35. package/lib/commonjs/Main.js.map +1 -1
  36. package/lib/commonjs/Video/index.js +25 -65
  37. package/lib/commonjs/Video/index.js.map +1 -1
  38. package/lib/commonjs/specs/Compressor.nitro.js +6 -0
  39. package/lib/commonjs/specs/Compressor.nitro.js.map +1 -0
  40. package/lib/commonjs/utils/Downloader.js +8 -24
  41. package/lib/commonjs/utils/Downloader.js.map +1 -1
  42. package/lib/commonjs/utils/Uploader.js +3 -18
  43. package/lib/commonjs/utils/Uploader.js.map +1 -1
  44. package/lib/commonjs/utils/helpers.js +18 -1
  45. package/lib/commonjs/utils/helpers.js.map +1 -1
  46. package/lib/commonjs/utils/index.js +13 -13
  47. package/lib/commonjs/utils/index.js.map +1 -1
  48. package/lib/module/Audio/index.js +2 -2
  49. package/lib/module/Audio/index.js.map +1 -1
  50. package/lib/module/Image/index.js +3 -23
  51. package/lib/module/Image/index.js.map +1 -1
  52. package/lib/module/Main.js +9 -9
  53. package/lib/module/Main.js.map +1 -1
  54. package/lib/module/Video/index.js +26 -66
  55. package/lib/module/Video/index.js.map +1 -1
  56. package/lib/module/specs/Compressor.nitro.js +4 -0
  57. package/lib/module/specs/Compressor.nitro.js.map +1 -0
  58. package/lib/module/utils/Downloader.js +10 -26
  59. package/lib/module/utils/Downloader.js.map +1 -1
  60. package/lib/module/utils/Uploader.js +5 -20
  61. package/lib/module/utils/Uploader.js.map +1 -1
  62. package/lib/module/utils/helpers.js +16 -0
  63. package/lib/module/utils/helpers.js.map +1 -1
  64. package/lib/module/utils/index.js +2 -1
  65. package/lib/module/utils/index.js.map +1 -1
  66. package/lib/typescript/src/Image/index.d.ts.map +1 -1
  67. package/lib/typescript/src/Main.d.ts +2 -1
  68. package/lib/typescript/src/Main.d.ts.map +1 -1
  69. package/lib/typescript/src/Video/index.d.ts +1 -1
  70. package/lib/typescript/src/Video/index.d.ts.map +1 -1
  71. package/lib/typescript/src/index.d.ts.map +1 -1
  72. package/lib/typescript/src/specs/Compressor.nitro.d.ts +44 -0
  73. package/lib/typescript/src/specs/Compressor.nitro.d.ts.map +1 -0
  74. package/lib/typescript/src/utils/Downloader.d.ts.map +1 -1
  75. package/lib/typescript/src/utils/Uploader.d.ts.map +1 -1
  76. package/lib/typescript/src/utils/helpers.d.ts +7 -0
  77. package/lib/typescript/src/utils/helpers.d.ts.map +1 -1
  78. package/lib/typescript/src/utils/index.d.ts.map +1 -1
  79. package/nitrogen/generated/android/NitroCompressor+autolinking.cmake +81 -0
  80. package/nitrogen/generated/android/NitroCompressor+autolinking.gradle +27 -0
  81. package/nitrogen/generated/android/NitroCompressorOnLoad.cpp +60 -0
  82. package/nitrogen/generated/android/NitroCompressorOnLoad.hpp +34 -0
  83. package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
  84. package/nitrogen/generated/android/c++/JFunc_void_double.hpp +75 -0
  85. package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +75 -0
  86. package/nitrogen/generated/android/c++/JHybridCompressorSpec.cpp +293 -0
  87. package/nitrogen/generated/android/c++/JHybridCompressorSpec.hpp +78 -0
  88. package/nitrogen/generated/android/c++/JVideoThumbnailResult.hpp +73 -0
  89. package/nitrogen/generated/android/kotlin/com/margelo/nitro/compressor/Func_void.kt +80 -0
  90. package/nitrogen/generated/android/kotlin/com/margelo/nitro/compressor/Func_void_double.kt +80 -0
  91. package/nitrogen/generated/android/kotlin/com/margelo/nitro/compressor/Func_void_double_double.kt +80 -0
  92. package/nitrogen/generated/android/kotlin/com/margelo/nitro/compressor/HybridCompressorSpec.kt +141 -0
  93. package/nitrogen/generated/android/kotlin/com/margelo/nitro/compressor/NitroCompressorOnLoad.kt +35 -0
  94. package/nitrogen/generated/android/kotlin/com/margelo/nitro/compressor/VideoThumbnailResult.kt +71 -0
  95. package/nitrogen/generated/ios/c++/HybridCompressorSpecSwift.cpp +11 -0
  96. package/nitrogen/generated/ios/c++/HybridCompressorSpecSwift.hpp +204 -0
  97. package/nitrogen/generated/ios/react_native_compressor+autolinking.rb +62 -0
  98. package/nitrogen/generated/ios/react_native_compressor-Swift-Cxx-Bridge.cpp +89 -0
  99. package/nitrogen/generated/ios/react_native_compressor-Swift-Cxx-Bridge.hpp +337 -0
  100. package/nitrogen/generated/ios/react_native_compressor-Swift-Cxx-Umbrella.hpp +51 -0
  101. package/nitrogen/generated/ios/react_native_compressorAutolinking.mm +33 -0
  102. package/nitrogen/generated/ios/react_native_compressorAutolinking.swift +26 -0
  103. package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
  104. package/nitrogen/generated/ios/swift/Func_void_VideoThumbnailResult.swift +46 -0
  105. package/nitrogen/generated/ios/swift/Func_void_double.swift +46 -0
  106. package/nitrogen/generated/ios/swift/Func_void_double_double.swift +46 -0
  107. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
  108. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_AnyMap_.swift +46 -0
  109. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
  110. package/nitrogen/generated/ios/swift/HybridCompressorSpec.swift +70 -0
  111. package/nitrogen/generated/ios/swift/HybridCompressorSpec_cxx.swift +493 -0
  112. package/nitrogen/generated/ios/swift/VideoThumbnailResult.swift +49 -0
  113. package/nitrogen/generated/shared/c++/HybridCompressorSpec.cpp +36 -0
  114. package/nitrogen/generated/shared/c++/HybridCompressorSpec.hpp +83 -0
  115. package/nitrogen/generated/shared/c++/VideoThumbnailResult.hpp +99 -0
  116. package/package.json +8 -12
  117. package/react-native-compressor.podspec +6 -24
  118. package/src/Audio/index.tsx +2 -2
  119. package/src/Image/index.tsx +3 -26
  120. package/src/Main.tsx +14 -16
  121. package/src/Video/index.tsx +25 -77
  122. package/src/specs/Compressor.nitro.ts +56 -0
  123. package/src/utils/Downloader.tsx +8 -27
  124. package/src/utils/Uploader.tsx +12 -24
  125. package/src/utils/helpers.ts +18 -0
  126. package/src/utils/index.tsx +3 -2
  127. package/android/src/main/java/com/reactnativecompressor/CompressorModule.kt +0 -180
  128. package/android/src/main/java/com/reactnativecompressor/CompressorPackage.kt +0 -34
  129. package/android/src/newarch/CompressorSpec.kt +0 -5
  130. package/android/src/oldarch/CompressorSpec.kt +0 -36
  131. package/ios/Compressor-Bridging-Header.h +0 -6
  132. package/ios/Compressor.h +0 -5
  133. package/ios/Compressor.mm +0 -82
  134. package/ios/CompressorManager.swift +0 -117
  135. package/lib/commonjs/Spec/NativeCompressor.js +0 -9
  136. package/lib/commonjs/Spec/NativeCompressor.js.map +0 -1
  137. package/lib/module/Spec/NativeCompressor.js +0 -5
  138. package/lib/module/Spec/NativeCompressor.js.map +0 -1
  139. package/lib/typescript/src/Spec/NativeCompressor.d.ts +0 -30
  140. package/lib/typescript/src/Spec/NativeCompressor.d.ts.map +0 -1
  141. package/src/Spec/NativeCompressor.ts +0 -41
@@ -2,6 +2,7 @@ import Foundation
2
2
  import AVFoundation
3
3
  import Photos
4
4
  import MobileCoreServices
5
+ import UIKit
5
6
 
6
7
  struct CompressionError: Error {
7
8
  private let message: String
@@ -164,7 +165,9 @@ class VideoCompressor {
164
165
  return 30
165
166
  }
166
167
 
167
- return min(max(nominalFrameRate, 1), 30)
168
+ // Cap at 60 fps. 30 fps cap silently halved 60 fps recordings and
169
+ // produced visibly choppy output.
170
+ return min(max(nominalFrameRate, 1), 60)
168
171
  }
169
172
 
170
173
  func scaledDimensions(width: CGFloat, height: CGFloat, maxSize: CGFloat) -> (width: Int, height: Int) {
@@ -193,26 +196,32 @@ class VideoCompressor {
193
196
  targetHeight: Int,
194
197
  targetFrameRate: Int
195
198
  ) -> Int {
199
+ // WhatsApp-style bitrate envelope. The previous floors/ceilings were
200
+ // ~2-3x larger and produced "compressed" outputs that were still
201
+ // 20-40 MB for short clips. These bands target ~1.5 Mbps at 720p,
202
+ // matching WhatsApp's typical output size while keeping visual
203
+ // quality acceptable for chat playback. Must stay in sync with
204
+ // VideoCompressionProfile.kt on Android.
196
205
  let targetLongSide = max(targetWidth, targetHeight)
197
206
  let floor: Int
198
207
  let ceiling: Int
199
208
 
200
209
  switch targetLongSide {
201
210
  case 1920...:
202
- floor = 4_000_000
203
- ceiling = 8_000_000
211
+ floor = 2_000_000
212
+ ceiling = 3_500_000
204
213
  case 1280...1919:
205
- floor = 2_200_000
206
- ceiling = 5_000_000
214
+ floor = 1_200_000
215
+ ceiling = 2_000_000
207
216
  case 960...1279:
208
- floor = 1_600_000
209
- ceiling = 3_500_000
217
+ floor = 900_000
218
+ ceiling = 1_500_000
210
219
  case 720...959:
211
- floor = 1_200_000
212
- ceiling = 2_500_000
220
+ floor = 700_000
221
+ ceiling = 1_200_000
213
222
  default:
214
- floor = 850_000
215
- ceiling = 1_500_000
223
+ floor = 500_000
224
+ ceiling = 900_000
216
225
  }
217
226
 
218
227
  guard originalBitrate > 0 else {
@@ -312,11 +321,15 @@ class VideoCompressor {
312
321
  exporter.outputURL = tmpURL
313
322
  exporter.outputFileType = AVFileType.mp4
314
323
 
324
+ // NOTE: Do not add AVVideoExpectedSourceFrameRateKey or
325
+ // AVVideoAverageNonDroppableFrameRateKey here. They are not documented
326
+ // H.264 (avc1) compression properties on iOS and, while AVFoundation's
327
+ // `canApply(...)` check still returns true, the iOS encoder silently
328
+ // drops the video track, producing an audio-only MP4 that still reports
329
+ // success. See issue #400.
315
330
  let compressionDict: [String: Any] = [
316
331
  AVVideoAverageBitRateKey: bitRate,
317
332
  AVVideoProfileLevelKey: AVVideoProfileLevelH264HighAutoLevel,
318
- AVVideoExpectedSourceFrameRateKey: frameRate,
319
- AVVideoAverageNonDroppableFrameRateKey: frameRate,
320
333
  ]
321
334
  exporter.optimizeForNetworkUse = true;
322
335
  exporter.videoOutputConfiguration = [
@@ -336,6 +349,14 @@ class VideoCompressor {
336
349
  ]
337
350
  }
338
351
 
352
+ // Preserve source metadata (location, creation date, etc.) by forwarding
353
+ // every available metadata format to the writer.
354
+ var preservedMetadata: [AVMetadataItem] = asset.metadata
355
+ for format in asset.availableMetadataFormats {
356
+ preservedMetadata.append(contentsOf: asset.metadata(forFormat: format))
357
+ }
358
+ exporter.metadata = preservedMetadata
359
+
339
360
  compressorExports[uuid] = exporter
340
361
  exporter.export(progressHandler: { (progress) in
341
362
  let roundProgress:Int=Int((progress*100).rounded());
@@ -350,7 +371,16 @@ class VideoCompressor {
350
371
  switch result {
351
372
  case .success:
352
373
  if let outputURL = exporter.outputURL {
353
- onCompletion(outputURL)
374
+ // Guard against the iOS encoder silently dropping the video track
375
+ // and producing an audio-only file that still reports success.
376
+ // See issue #400.
377
+ let outputAsset = AVAsset(url: outputURL)
378
+ if outputAsset.tracks(withMediaType: AVMediaType.video).isEmpty {
379
+ try? FileManager.default.removeItem(at: outputURL)
380
+ onFailure(CompressionError(message: "Compression produced a file with no video track"))
381
+ } else {
382
+ onCompletion(outputURL)
383
+ }
354
384
  } else {
355
385
  onFailure(CompressionError(message: "Compression succeeded but output URL is unavailable"))
356
386
  }
@@ -10,7 +10,7 @@ const NativeAudio = _Main.Compressor;
10
10
  const Audio = {
11
11
  compress: async (url, options = _utils.DEFAULT_COMPRESS_AUDIO_OPTIONS) => {
12
12
  try {
13
- return NativeAudio.compress_audio(url, options);
13
+ return NativeAudio.compress_audio(url, (0, _utils.toNativeOptions)(options));
14
14
  } catch (error) {
15
15
  throw error.message;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_Main","require","_utils","NativeAudio","Compressor","Audio","compress","url","options","DEFAULT_COMPRESS_AUDIO_OPTIONS","compress_audio","error","message","_default","exports","default"],"sourceRoot":"../../../src","sources":["Audio/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAEA,MAAME,WAAW,GAAGC,gBAAU;AAE9B,MAAMC,KAAgB,GAAG;EACvBC,QAAQ,EAAE,MAAAA,CAAOC,GAAG,EAAEC,OAAO,GAAGC,qCAA8B,KAAK;IACjE,IAAI;MACF,OAAON,WAAW,CAACO,cAAc,CAACH,GAAG,EAAEC,OAAO,CAAC;IACjD,CAAC,CAAC,OAAOG,KAAU,EAAE;MACnB,MAAMA,KAAK,CAACC,OAAO;IACrB;EACF;AACF,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaV,KAAK","ignoreList":[]}
1
+ {"version":3,"names":["_Main","require","_utils","NativeAudio","Compressor","Audio","compress","url","options","DEFAULT_COMPRESS_AUDIO_OPTIONS","compress_audio","toNativeOptions","error","message","_default","exports","default"],"sourceRoot":"../../../src","sources":["Audio/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAEA,MAAME,WAAW,GAAGC,gBAAU;AAE9B,MAAMC,KAAgB,GAAG;EACvBC,QAAQ,EAAE,MAAAA,CAAOC,GAAG,EAAEC,OAAO,GAAGC,qCAA8B,KAAK;IACjE,IAAI;MACF,OAAON,WAAW,CAACO,cAAc,CAACH,GAAG,EAAE,IAAAI,sBAAe,EAACH,OAAO,CAAC,CAAC;IAClE,CAAC,CAAC,OAAOI,KAAU,EAAE;MACnB,MAAMA,KAAK,CAACC,OAAO;IACrB;EACF;AACF,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaX,KAAK","ignoreList":[]}
@@ -6,35 +6,15 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _Main = require("../Main");
8
8
  var _utils = require("../utils");
9
- var _reactNative = require("react-native");
10
9
  const base64UrlRegex = /^data:image\/.*;(?:charset=.{3,5};)?base64,/;
11
- const ImageCompressEventEmitter = new _reactNative.NativeEventEmitter(_Main.Compressor);
12
10
  const NativeImage = _Main.Compressor;
13
11
  const Image = {
14
12
  compress: async (value, options = {}) => {
15
13
  if (!value) {
16
14
  throw new Error('Compression value is empty, please provide a value for compression.');
17
15
  }
18
- let subscription;
19
- try {
20
- if (options?.downloadProgress) {
21
- const uuid = (0, _utils.uuidv4)();
22
- //@ts-ignore
23
- options.uuid = uuid;
24
- subscription = ImageCompressEventEmitter.addListener('downloadProgress', event => {
25
- if (event.uuid === uuid) {
26
- options.downloadProgress && options.downloadProgress(event.data.progress);
27
- }
28
- });
29
- }
30
- const cleanData = value.replace(base64UrlRegex, '');
31
- return await NativeImage.image_compress(cleanData, options);
32
- } finally {
33
- // @ts-ignore
34
- if (subscription) {
35
- subscription.remove();
36
- }
37
- }
16
+ const cleanData = value.replace(base64UrlRegex, '');
17
+ return await NativeImage.image_compress(cleanData, (0, _utils.toNativeOptions)(options), options.downloadProgress);
38
18
  }
39
19
  };
40
20
  var _default = exports.default = Image;
@@ -1 +1 @@
1
- {"version":3,"names":["_Main","require","_utils","_reactNative","base64UrlRegex","ImageCompressEventEmitter","NativeEventEmitter","Compressor","NativeImage","Image","compress","value","options","Error","subscription","downloadProgress","uuid","uuidv4","addListener","event","data","progress","cleanData","replace","image_compress","remove","_default","exports","default"],"sourceRoot":"../../../src","sources":["Image/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAGA,IAAAE,YAAA,GAAAF,OAAA;AAFA,MAAMG,cAAc,GAAG,6CAA6C;AAuDpE,MAAMC,yBAAyB,GAAG,IAAIC,+BAAkB,CAACC,gBAAU,CAAC;AAEpE,MAAMC,WAAW,GAAGD,gBAAU;AAM9B,MAAME,KAAgB,GAAG;EACvBC,QAAQ,EAAE,MAAAA,CAAOC,KAAK,EAAEC,OAAO,GAAG,CAAC,CAAC,KAAK;IACvC,IAAI,CAACD,KAAK,EAAE;MACV,MAAM,IAAIE,KAAK,CAAC,qEAAqE,CAAC;IACxF;IAEA,IAAIC,YAAqC;IACzC,IAAI;MACF,IAAIF,OAAO,EAAEG,gBAAgB,EAAE;QAC7B,MAAMC,IAAI,GAAG,IAAAC,aAAM,EAAC,CAAC;QACrB;QACAL,OAAO,CAACI,IAAI,GAAGA,IAAI;QACnBF,YAAY,GAAGT,yBAAyB,CAACa,WAAW,CAAC,kBAAkB,EAAGC,KAAU,IAAK;UACvF,IAAIA,KAAK,CAACH,IAAI,KAAKA,IAAI,EAAE;YACvBJ,OAAO,CAACG,gBAAgB,IAAIH,OAAO,CAACG,gBAAgB,CAACI,KAAK,CAACC,IAAI,CAACC,QAAQ,CAAC;UAC3E;QACF,CAAC,CAAC;MACJ;MAEA,MAAMC,SAAS,GAAGX,KAAK,CAACY,OAAO,CAACnB,cAAc,EAAE,EAAE,CAAC;MACnD,OAAO,MAAMI,WAAW,CAACgB,cAAc,CAACF,SAAS,EAAEV,OAAO,CAAC;IAC7D,CAAC,SAAS;MACR;MACA,IAAIE,YAAY,EAAE;QAChBA,YAAY,CAACW,MAAM,CAAC,CAAC;MACvB;IACF;EACF;AACF,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEanB,KAAK","ignoreList":[]}
1
+ {"version":3,"names":["_Main","require","_utils","base64UrlRegex","NativeImage","Compressor","Image","compress","value","options","Error","cleanData","replace","image_compress","toNativeOptions","downloadProgress","_default","exports","default"],"sourceRoot":"../../../src","sources":["Image/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,MAAME,cAAc,GAAG,6CAA6C;AAqDpE,MAAMC,WAAW,GAAGC,gBAAU;AAM9B,MAAMC,KAAgB,GAAG;EACvBC,QAAQ,EAAE,MAAAA,CAAOC,KAAK,EAAEC,OAAO,GAAG,CAAC,CAAC,KAAK;IACvC,IAAI,CAACD,KAAK,EAAE;MACV,MAAM,IAAIE,KAAK,CAAC,qEAAqE,CAAC;IACxF;IAEA,MAAMC,SAAS,GAAGH,KAAK,CAACI,OAAO,CAACT,cAAc,EAAE,EAAE,CAAC;IACnD,OAAO,MAAMC,WAAW,CAACS,cAAc,CAACF,SAAS,EAAE,IAAAG,sBAAe,EAACL,OAAO,CAAC,EAAEA,OAAO,CAACM,gBAAgB,CAAC;EACxG;AACF,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaZ,KAAK","ignoreList":[]}
@@ -5,17 +5,17 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Compressor = void 0;
7
7
  var _reactNative = require("react-native");
8
+ var _reactNativeNitroModules = require("react-native-nitro-modules");
8
9
  const LINKING_ERROR = `The package 'react-native-compressor' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
9
10
  ios: "- You have run 'pod install'\n",
10
11
  default: ''
11
- }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
12
-
13
- // @ts-expect-error
14
- const isTurboModuleEnabled = global.__turboModuleProxy != null;
15
- const CompressorModule = isTurboModuleEnabled ? require('./Spec/NativeCompressor').default : _reactNative.NativeModules.Compressor;
16
- const Compressor = exports.Compressor = CompressorModule ? CompressorModule : new Proxy({}, {
17
- get() {
12
+ }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n' + '- You have installed `react-native-nitro-modules`\n';
13
+ const createCompressor = () => {
14
+ try {
15
+ return _reactNativeNitroModules.NitroModules.createHybridObject('Compressor');
16
+ } catch {
18
17
  throw new Error(LINKING_ERROR);
19
18
  }
20
- });
19
+ };
20
+ const Compressor = exports.Compressor = createCompressor();
21
21
  //# sourceMappingURL=Main.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","CompressorModule","NativeModules","Compressor","exports","Proxy","get","Error"],"sourceRoot":"../../src","sources":["Main.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GACjB,kFAAkF,GAClFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,gBAAgB,GAAGH,oBAAoB,GAAGN,OAAO,CAAC,yBAAyB,CAAC,CAACK,OAAO,GAAGK,0BAAa,CAACC,UAAU;AAErH,MAAMA,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAGF,gBAAgB,GAC/BA,gBAAgB,GAChB,IAAII,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACd,aAAa,CAAC;EAChC;AACF,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeNitroModules","LINKING_ERROR","Platform","select","ios","default","createCompressor","NitroModules","createHybridObject","Error","Compressor","exports"],"sourceRoot":"../../src","sources":["Main.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAIA,MAAME,aAAa,GACjB,kFAAkF,GAClFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B,GAC/B,qDAAqD;AAEvD,MAAMC,gBAAgB,GAAGA,CAAA,KAAsB;EAC7C,IAAI;IACF,OAAOC,qCAAY,CAACC,kBAAkB,CAAiB,YAAY,CAAC;EACtE,CAAC,CAAC,MAAM;IACN,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CAAC;AAED,MAAMS,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAGJ,gBAAgB,CAAC,CAAC","ignoreList":[]}
@@ -4,10 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.cancelCompression = void 0;
7
- var _reactNative = require("react-native");
8
7
  var _Main = require("../Main");
9
8
  var _utils = require("../utils");
10
- const VideoCompressEventEmitter = new _reactNative.NativeEventEmitter(_Main.Compressor);
11
9
  const NativeVideoCompressor = _Main.Compressor;
12
10
  const cancelCompression = cancellationId => {
13
11
  return NativeVideoCompressor.cancelCompression(cancellationId);
@@ -16,75 +14,37 @@ exports.cancelCompression = cancelCompression;
16
14
  const Video = {
17
15
  compress: async (fileUrl, options, onProgress) => {
18
16
  const uuid = (0, _utils.uuidv4)();
19
- let subscription;
20
- let subscription2;
21
- try {
22
- if (onProgress) {
23
- subscription = VideoCompressEventEmitter.addListener('videoCompressProgress', event => {
24
- if (event.uuid === uuid) {
25
- onProgress(event.data.progress);
26
- }
27
- });
28
- }
29
- if (options?.downloadProgress) {
30
- //@ts-ignore
31
- subscription2 = VideoCompressEventEmitter.addListener('downloadProgress', event => {
32
- if (event.uuid === uuid) {
33
- options.downloadProgress && options.downloadProgress(event.data.progress);
34
- }
35
- });
36
- }
37
- const modifiedOptions = {
38
- uuid
39
- };
40
- if (options?.progressDivider) modifiedOptions.progressDivider = options?.progressDivider;
41
- if (options?.bitrate) modifiedOptions.bitrate = options?.bitrate;
42
- if (options?.compressionMethod) {
43
- modifiedOptions.compressionMethod = options?.compressionMethod;
44
- } else {
45
- modifiedOptions.compressionMethod = 'auto';
46
- }
47
- if (options?.maxSize) {
48
- modifiedOptions.maxSize = options?.maxSize;
49
- } else {
50
- modifiedOptions.maxSize = 640;
51
- }
52
- if (options?.minimumFileSizeForCompress !== undefined) {
53
- modifiedOptions.minimumFileSizeForCompress = options?.minimumFileSizeForCompress;
54
- }
55
- if (options?.stripAudio) {
56
- modifiedOptions.stripAudio = options.stripAudio;
57
- }
58
- if (options?.getCancellationId) {
59
- options?.getCancellationId(uuid);
60
- }
61
- const result = await NativeVideoCompressor.compress(fileUrl, modifiedOptions);
62
- return result;
63
- } finally {
64
- // @ts-ignore
65
- if (subscription) {
66
- subscription.remove();
67
- }
68
- //@ts-ignore
69
- if (subscription2) {
70
- subscription2.remove();
71
- }
17
+ const modifiedOptions = {
18
+ uuid
19
+ };
20
+ if (options?.progressDivider) modifiedOptions.progressDivider = options?.progressDivider;
21
+ if (options?.bitrate) modifiedOptions.bitrate = options?.bitrate;
22
+ if (options?.compressionMethod) {
23
+ modifiedOptions.compressionMethod = options?.compressionMethod;
24
+ } else {
25
+ modifiedOptions.compressionMethod = 'auto';
72
26
  }
27
+ if (options?.maxSize) {
28
+ modifiedOptions.maxSize = options?.maxSize;
29
+ } else {
30
+ modifiedOptions.maxSize = 640;
31
+ }
32
+ if (options?.minimumFileSizeForCompress !== undefined) {
33
+ modifiedOptions.minimumFileSizeForCompress = options?.minimumFileSizeForCompress;
34
+ }
35
+ if (options?.stripAudio) {
36
+ modifiedOptions.stripAudio = options.stripAudio;
37
+ }
38
+ if (options?.getCancellationId) {
39
+ options?.getCancellationId(uuid);
40
+ }
41
+ return NativeVideoCompressor.compress(fileUrl, (0, _utils.toNativeOptions)(modifiedOptions), onProgress, options?.downloadProgress);
73
42
  },
74
43
  cancelCompression,
75
44
  activateBackgroundTask(onExpired) {
76
- if (onExpired) {
77
- const subscription = VideoCompressEventEmitter.addListener('backgroundTaskExpired', event => {
78
- onExpired(event);
79
- if (subscription) {
80
- subscription.remove();
81
- }
82
- });
83
- }
84
- return NativeVideoCompressor.activateBackgroundTask({});
45
+ return NativeVideoCompressor.activateBackgroundTask({}, onExpired ? () => onExpired(undefined) : undefined);
85
46
  },
86
47
  deactivateBackgroundTask() {
87
- VideoCompressEventEmitter.removeAllListeners('backgroundTaskExpired');
88
48
  return NativeVideoCompressor.deactivateBackgroundTask({});
89
49
  }
90
50
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_Main","_utils","VideoCompressEventEmitter","NativeEventEmitter","Compressor","NativeVideoCompressor","cancelCompression","cancellationId","exports","Video","compress","fileUrl","options","onProgress","uuid","uuidv4","subscription","subscription2","addListener","event","data","progress","downloadProgress","modifiedOptions","progressDivider","bitrate","compressionMethod","maxSize","minimumFileSizeForCompress","undefined","stripAudio","getCancellationId","result","remove","activateBackgroundTask","onExpired","deactivateBackgroundTask","removeAllListeners","_default","default"],"sourceRoot":"../../../src","sources":["Video/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_Main","require","_utils","NativeVideoCompressor","Compressor","cancelCompression","cancellationId","exports","Video","compress","fileUrl","options","onProgress","uuid","uuidv4","modifiedOptions","progressDivider","bitrate","compressionMethod","maxSize","minimumFileSizeForCompress","undefined","stripAudio","getCancellationId","toNativeOptions","downloadProgress","activateBackgroundTask","onExpired","deactivateBackgroundTask","_default","default"],"sourceRoot":"../../../src","sources":["Video/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AA4BA,MAAME,qBAAqB,GAAGC,gBAAU;AAEjC,MAAMC,iBAAiB,GAAIC,cAAsB,IAAK;EAC3D,OAAOH,qBAAqB,CAACE,iBAAiB,CAACC,cAAc,CAAC;AAChE,CAAC;AAACC,OAAA,CAAAF,iBAAA,GAAAA,iBAAA;AAEF,MAAMG,KAA0B,GAAG;EACjCC,QAAQ,EAAE,MAAAA,CAAOC,OAAe,EAAEC,OAA+B,EAAEC,UAAuC,KAAK;IAC7G,MAAMC,IAAI,GAAG,IAAAC,aAAM,EAAC,CAAC;IAErB,MAAMC,eAAwC,GAAG;MAAEF;IAAK,CAAC;IACzD,IAAIF,OAAO,EAAEK,eAAe,EAAED,eAAe,CAACC,eAAe,GAAGL,OAAO,EAAEK,eAAe;IACxF,IAAIL,OAAO,EAAEM,OAAO,EAAEF,eAAe,CAACE,OAAO,GAAGN,OAAO,EAAEM,OAAO;IAChE,IAAIN,OAAO,EAAEO,iBAAiB,EAAE;MAC9BH,eAAe,CAACG,iBAAiB,GAAGP,OAAO,EAAEO,iBAAiB;IAChE,CAAC,MAAM;MACLH,eAAe,CAACG,iBAAiB,GAAG,MAAM;IAC5C;IACA,IAAIP,OAAO,EAAEQ,OAAO,EAAE;MACpBJ,eAAe,CAACI,OAAO,GAAGR,OAAO,EAAEQ,OAAO;IAC5C,CAAC,MAAM;MACLJ,eAAe,CAACI,OAAO,GAAG,GAAG;IAC/B;IACA,IAAIR,OAAO,EAAES,0BAA0B,KAAKC,SAAS,EAAE;MACrDN,eAAe,CAACK,0BAA0B,GAAGT,OAAO,EAAES,0BAA0B;IAClF;IACA,IAAIT,OAAO,EAAEW,UAAU,EAAE;MACvBP,eAAe,CAACO,UAAU,GAAGX,OAAO,CAACW,UAAU;IACjD;IACA,IAAIX,OAAO,EAAEY,iBAAiB,EAAE;MAC9BZ,OAAO,EAAEY,iBAAiB,CAACV,IAAI,CAAC;IAClC;IAEA,OAAOV,qBAAqB,CAACM,QAAQ,CAACC,OAAO,EAAE,IAAAc,sBAAe,EAACT,eAAe,CAAC,EAAEH,UAAU,EAAED,OAAO,EAAEc,gBAAgB,CAAC;EACzH,CAAC;EACDpB,iBAAiB;EACjBqB,sBAAsBA,CAACC,SAAU,EAAE;IACjC,OAAOxB,qBAAqB,CAACuB,sBAAsB,CAAC,CAAC,CAAC,EAAEC,SAAS,GAAG,MAAMA,SAAS,CAACN,SAAS,CAAC,GAAGA,SAAS,CAAC;EAC7G,CAAC;EACDO,wBAAwBA,CAAA,EAAG;IACzB,OAAOzB,qBAAqB,CAACyB,wBAAwB,CAAC,CAAC,CAAC,CAAC;EAC3D;AACF,CAAwB;AAAC,IAAAC,QAAA,GAAAtB,OAAA,CAAAuB,OAAA,GAEVtB,KAAK","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=Compressor.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/Compressor.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -7,32 +7,16 @@ exports.download = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _Main = require("../Main");
9
9
  var _helpers = require("./helpers");
10
- const CompressEventEmitter = new _reactNative.NativeEventEmitter(_Main.Compressor);
11
10
  const download = async (fileUrl, downloadProgress, progressDivider) => {
12
- let subscription;
13
- try {
14
- const uuid = (0, _helpers.uuidv4)();
15
- if (downloadProgress) {
16
- subscription = CompressEventEmitter.addListener('downloadProgress', event => {
17
- if (event.uuid === uuid) {
18
- downloadProgress(event.data.progress);
19
- }
20
- });
21
- }
22
- if (_reactNative.Platform.OS === 'android' && fileUrl.includes('file://')) {
23
- fileUrl = fileUrl.replace('file://', '');
24
- }
25
- const result = await _Main.Compressor.download(fileUrl, {
26
- uuid,
27
- progressDivider
28
- });
29
- return result;
30
- } finally {
31
- // @ts-ignore
32
- if (subscription) {
33
- subscription.remove();
34
- }
11
+ const uuid = (0, _helpers.uuidv4)();
12
+ if (_reactNative.Platform.OS === 'android' && fileUrl.includes('file://')) {
13
+ fileUrl = fileUrl.replace('file://', '');
35
14
  }
15
+ const result = await _Main.Compressor.download(fileUrl, (0, _helpers.toNativeOptions)({
16
+ uuid,
17
+ progressDivider
18
+ }), downloadProgress);
19
+ return result;
36
20
  };
37
21
  exports.download = download;
38
22
  //# sourceMappingURL=Downloader.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_Main","_helpers","CompressEventEmitter","NativeEventEmitter","Compressor","download","fileUrl","downloadProgress","progressDivider","subscription","uuid","uuidv4","addListener","event","data","progress","Platform","OS","includes","replace","result","remove","exports"],"sourceRoot":"../../../src","sources":["utils/Downloader.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AADA,MAAMG,oBAAoB,GAAG,IAAIC,+BAAkB,CAACC,gBAAU,CAAC;AAExD,MAAMC,QAAQ,GAAG,MAAAA,CAAOC,OAAe,EAAEC,gBAA6C,EAAEC,eAAwB,KAAmB;EACxI,IAAIC,YAAqC;EACzC,IAAI;IACF,MAAMC,IAAI,GAAG,IAAAC,eAAM,EAAC,CAAC;IACrB,IAAIJ,gBAAgB,EAAE;MACpBE,YAAY,GAAGP,oBAAoB,CAACU,WAAW,CAAC,kBAAkB,EAAGC,KAAU,IAAK;QAClF,IAAIA,KAAK,CAACH,IAAI,KAAKA,IAAI,EAAE;UACvBH,gBAAgB,CAACM,KAAK,CAACC,IAAI,CAACC,QAAQ,CAAC;QACvC;MACF,CAAC,CAAC;IACJ;IACA,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAIX,OAAO,CAACY,QAAQ,CAAC,SAAS,CAAC,EAAE;MAC5DZ,OAAO,GAAGA,OAAO,CAACa,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IAC1C;IACA,MAAMC,MAAM,GAAG,MAAMhB,gBAAU,CAACC,QAAQ,CAACC,OAAO,EAAE;MAChDI,IAAI;MACJF;IACF,CAAC,CAAC;IACF,OAAOY,MAAM;EACf,CAAC,SAAS;IACR;IACA,IAAIX,YAAY,EAAE;MAChBA,YAAY,CAACY,MAAM,CAAC,CAAC;IACvB;EACF;AACF,CAAC;AAACC,OAAA,CAAAjB,QAAA,GAAAA,QAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_Main","_helpers","download","fileUrl","downloadProgress","progressDivider","uuid","uuidv4","Platform","OS","includes","replace","result","Compressor","toNativeOptions","exports"],"sourceRoot":"../../../src","sources":["utils/Downloader.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEO,MAAMG,QAAQ,GAAG,MAAAA,CAAOC,OAAe,EAAEC,gBAA6C,EAAEC,eAAwB,KAAmB;EACxI,MAAMC,IAAI,GAAG,IAAAC,eAAM,EAAC,CAAC;EACrB,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAIN,OAAO,CAACO,QAAQ,CAAC,SAAS,CAAC,EAAE;IAC5DP,OAAO,GAAGA,OAAO,CAACQ,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;EAC1C;EACA,MAAMC,MAAM,GAAG,MAAMC,gBAAU,CAACX,QAAQ,CAACC,OAAO,EAAE,IAAAW,wBAAe,EAAC;IAAER,IAAI;IAAED;EAAgB,CAAC,CAAC,EAAED,gBAAgB,CAAC;EAC/G,OAAOQ,MAAM;AACf,CAAC;AAACG,OAAA,CAAAb,QAAA,GAAAA,QAAA","ignoreList":[]}
@@ -7,7 +7,6 @@ exports.cancelUpload = exports.backgroundUpload = exports.UploaderHttpMethod = e
7
7
  var _reactNative = require("react-native");
8
8
  var _Main = require("../Main");
9
9
  var _helpers = require("./helpers");
10
- const CompressEventEmitter = new _reactNative.NativeEventEmitter(_Main.Compressor);
11
10
  let UploadType = exports.UploadType = /*#__PURE__*/function (UploadType) {
12
11
  UploadType[UploadType["BINARY_CONTENT"] = 0] = "BINARY_CONTENT";
13
12
  UploadType[UploadType["MULTIPART"] = 1] = "MULTIPART";
@@ -25,15 +24,7 @@ const cancelUpload = (uuid = '', shouldCancelAll = false) => {
25
24
  exports.cancelUpload = cancelUpload;
26
25
  const backgroundUpload = async (url, fileUrl, options, onProgress, abortSignal) => {
27
26
  const uuid = (0, _helpers.uuidv4)();
28
- let subscription;
29
27
  try {
30
- if (onProgress) {
31
- subscription = CompressEventEmitter.addListener('uploadProgress', event => {
32
- if (event.uuid === uuid) {
33
- onProgress(event.data.written, event.data.total);
34
- }
35
- });
36
- }
37
28
  if (_reactNative.Platform.OS === 'android' && fileUrl.includes('file://')) {
38
29
  fileUrl = fileUrl.replace('file://', '');
39
30
  }
@@ -41,20 +32,14 @@ const backgroundUpload = async (url, fileUrl, options, onProgress, abortSignal)
41
32
  options?.getCancellationId(uuid);
42
33
  }
43
34
  abortSignal?.addEventListener('abort', () => cancelUpload(uuid));
44
- const result = await _Main.Compressor.upload(fileUrl, {
35
+ const result = await _Main.Compressor.upload(fileUrl, (0, _helpers.toNativeOptions)({
36
+ ...options,
45
37
  uuid,
46
38
  method: options.httpMethod,
47
- headers: options.headers,
48
- uploadType: options.uploadType,
49
- ...options,
50
39
  url
51
- });
40
+ }), onProgress);
52
41
  return result;
53
42
  } finally {
54
- // @ts-ignore
55
- if (subscription) {
56
- subscription.remove();
57
- }
58
43
  abortSignal?.removeEventListener('abort', () => cancelUpload(uuid));
59
44
  }
60
45
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_Main","_helpers","CompressEventEmitter","NativeEventEmitter","Compressor","UploadType","exports","UploaderHttpMethod","cancelUpload","uuid","shouldCancelAll","backgroundUpload","url","fileUrl","options","onProgress","abortSignal","uuidv4","subscription","addListener","event","data","written","total","Platform","OS","includes","replace","getCancellationId","addEventListener","result","upload","method","httpMethod","headers","uploadType","remove","removeEventListener"],"sourceRoot":"../../../src","sources":["utils/Uploader.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AADA,MAAMG,oBAAoB,GAAG,IAAIC,+BAAkB,CAACC,gBAAU,CAAC;AAAC,IAEpDC,UAAU,GAAAC,OAAA,CAAAD,UAAA,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAAA,IAKVE,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AA+BvB,MAAMC,YAAgE,GAAGA,CAACC,IAAI,GAAG,EAAE,EAAEC,eAAe,GAAG,KAAK,KAAK;EACtH,OAAON,gBAAU,CAACI,YAAY,CAACC,IAAI,EAAEC,eAAe,CAAC;AACvD,CAAC;AAACJ,OAAA,CAAAE,YAAA,GAAAA,YAAA;AAEK,MAAMG,gBAAgB,GAAG,MAAAA,CAC9BC,GAAW,EACXC,OAAe,EACfC,OAAwB,EACxBC,UAAqD,EACrDC,WAAyB,KACR;EACjB,MAAMP,IAAI,GAAG,IAAAQ,eAAM,EAAC,CAAC;EACrB,IAAIC,YAAqC;EACzC,IAAI;IACF,IAAIH,UAAU,EAAE;MACdG,YAAY,GAAGhB,oBAAoB,CAACiB,WAAW,CAAC,gBAAgB,EAAGC,KAAU,IAAK;QAChF,IAAIA,KAAK,CAACX,IAAI,KAAKA,IAAI,EAAE;UACvBM,UAAU,CAACK,KAAK,CAACC,IAAI,CAACC,OAAO,EAAEF,KAAK,CAACC,IAAI,CAACE,KAAK,CAAC;QAClD;MACF,CAAC,CAAC;IACJ;IACA,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAIZ,OAAO,CAACa,QAAQ,CAAC,SAAS,CAAC,EAAE;MAC5Db,OAAO,GAAGA,OAAO,CAACc,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IAC1C;IAEA,IAAIb,OAAO,EAAEc,iBAAiB,EAAE;MAC9Bd,OAAO,EAAEc,iBAAiB,CAACnB,IAAI,CAAC;IAClC;IAEAO,WAAW,EAAEa,gBAAgB,CAAC,OAAO,EAAE,MAAMrB,YAAY,CAACC,IAAI,CAAC,CAAC;IAEhE,MAAMqB,MAAM,GAAG,MAAM1B,gBAAU,CAAC2B,MAAM,CAAClB,OAAO,EAAE;MAC9CJ,IAAI;MACJuB,MAAM,EAAElB,OAAO,CAACmB,UAAU;MAC1BC,OAAO,EAAEpB,OAAO,CAACoB,OAAO;MACxBC,UAAU,EAAErB,OAAO,CAACqB,UAAU;MAC9B,GAAGrB,OAAO;MACVF;IACF,CAAC,CAAC;IACF,OAAOkB,MAAM;EACf,CAAC,SAAS;IACR;IACA,IAAIZ,YAAY,EAAE;MAChBA,YAAY,CAACkB,MAAM,CAAC,CAAC;IACvB;IACApB,WAAW,EAAEqB,mBAAmB,CAAC,OAAO,EAAE,MAAM7B,YAAY,CAACC,IAAI,CAAC,CAAC;EACrE;AACF,CAAC;AAACH,OAAA,CAAAK,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_Main","_helpers","UploadType","exports","UploaderHttpMethod","cancelUpload","uuid","shouldCancelAll","Compressor","backgroundUpload","url","fileUrl","options","onProgress","abortSignal","uuidv4","Platform","OS","includes","replace","getCancellationId","addEventListener","result","upload","toNativeOptions","method","httpMethod","removeEventListener"],"sourceRoot":"../../../src","sources":["utils/Uploader.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAAoD,IACxCG,UAAU,GAAAC,OAAA,CAAAD,UAAA,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAAA,IAKVE,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AA+BvB,MAAMC,YAAgE,GAAGA,CAACC,IAAI,GAAG,EAAE,EAAEC,eAAe,GAAG,KAAK,KAAK;EACtH,OAAOC,gBAAU,CAACH,YAAY,CAACC,IAAI,EAAEC,eAAe,CAAC;AACvD,CAAC;AAACJ,OAAA,CAAAE,YAAA,GAAAA,YAAA;AAEK,MAAMI,gBAAgB,GAAG,MAAAA,CAC9BC,GAAW,EACXC,OAAe,EACfC,OAAwB,EACxBC,UAAqD,EACrDC,WAAyB,KACR;EACjB,MAAMR,IAAI,GAAG,IAAAS,eAAM,EAAC,CAAC;EACrB,IAAI;IACF,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAIN,OAAO,CAACO,QAAQ,CAAC,SAAS,CAAC,EAAE;MAC5DP,OAAO,GAAGA,OAAO,CAACQ,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;IAC1C;IAEA,IAAIP,OAAO,EAAEQ,iBAAiB,EAAE;MAC9BR,OAAO,EAAEQ,iBAAiB,CAACd,IAAI,CAAC;IAClC;IAEAQ,WAAW,EAAEO,gBAAgB,CAAC,OAAO,EAAE,MAAMhB,YAAY,CAACC,IAAI,CAAC,CAAC;IAEhE,MAAMgB,MAAM,GAAG,MAAMd,gBAAU,CAACe,MAAM,CACpCZ,OAAO,EACP,IAAAa,wBAAe,EAAC;MACd,GAAGZ,OAAO;MACVN,IAAI;MACJmB,MAAM,EAAEb,OAAO,CAACc,UAAU;MAC1BhB;IACF,CAAC,CAAC,EACFG,UACF,CAAC;IACD,OAAOS,MAAM;EACf,CAAC,SAAS;IACRR,WAAW,EAAEa,mBAAmB,CAAC,OAAO,EAAE,MAAMtB,YAAY,CAACC,IAAI,CAAC,CAAC;EACrE;AACF,CAAC;AAACH,OAAA,CAAAM,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.uuidv4 = void 0;
6
+ exports.uuidv4 = exports.toNativeOptions = void 0;
7
7
  const uuidv4 = () => {
8
8
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
9
9
  const r = parseFloat('0.' + Math.random().toString().replace('0.', '') + new Date().getTime()) * 16 | 0,
@@ -12,5 +12,22 @@ const uuidv4 = () => {
12
12
  return v.toString(16);
13
13
  });
14
14
  };
15
+
16
+ /**
17
+ * Build a Nitro-safe options map. Nitro's `AnyMap` converter throws when it
18
+ * encounters a `undefined` or function-valued property, so we drop both —
19
+ * progress callbacks are passed as separate native method parameters now.
20
+ */
15
21
  exports.uuidv4 = uuidv4;
22
+ const toNativeOptions = options => {
23
+ const result = {};
24
+ for (const key of Object.keys(options)) {
25
+ const value = options[key];
26
+ if (value !== undefined && typeof value !== 'function') {
27
+ result[key] = value;
28
+ }
29
+ }
30
+ return result;
31
+ };
32
+ exports.toNativeOptions = toNativeOptions;
16
33
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["uuidv4","replace","c","r","parseFloat","Math","random","toString","Date","getTime","v","exports"],"sourceRoot":"../../../src","sources":["utils/helpers.ts"],"mappings":";;;;;;AAAO,MAAMA,MAAM,GAAGA,CAAA,KAAM;EAC1B,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAE,UAAUC,CAAC,EAAE;IAC1E,MAAMC,CAAC,GAAIC,UAAU,CAAC,IAAI,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACN,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAIO,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAI,CAAC;MACvG;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;AAACI,OAAA,CAAAX,MAAA,GAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["uuidv4","replace","c","r","parseFloat","Math","random","toString","Date","getTime","v","exports","toNativeOptions","options","result","key","Object","keys","value","undefined"],"sourceRoot":"../../../src","sources":["utils/helpers.ts"],"mappings":";;;;;;AAEO,MAAMA,MAAM,GAAGA,CAAA,KAAM;EAC1B,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAE,UAAUC,CAAC,EAAE;IAC1E,MAAMC,CAAC,GAAIC,UAAU,CAAC,IAAI,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAACN,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAIO,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAI,CAAC;MACvG;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;;AAED;AACA;AACA;AACA;AACA;AAJAI,OAAA,CAAAX,MAAA,GAAAA,MAAA;AAKO,MAAMY,eAAe,GAAIC,OAAgC,IAAa;EAC3E,MAAMC,MAA+B,GAAG,CAAC,CAAC;EAC1C,KAAK,MAAMC,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACJ,OAAO,CAAC,EAAE;IACtC,MAAMK,KAAK,GAAGL,OAAO,CAACE,GAAG,CAAC;IAC1B,IAAIG,KAAK,KAAKC,SAAS,IAAI,OAAOD,KAAK,KAAK,UAAU,EAAE;MACtDJ,MAAM,CAACC,GAAG,CAAC,GAAGG,KAAK;IACrB;EACF;EACA,OAAOJ,MAAM;AACf,CAAC;AAACH,OAAA,CAAAC,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -17,39 +17,39 @@ var _exportNames = {
17
17
  exports.getVideoMetaData = exports.getRealPath = exports.getImageMetaData = exports.getFileSize = exports.getDetails = exports.generateFilePath = exports.createVideoThumbnail = exports.clearCache = exports.DEFAULT_COMPRESS_AUDIO_OPTIONS = void 0;
18
18
  var _Main = require("../Main");
19
19
  var _reactNative = require("react-native");
20
- var _Downloader = require("./Downloader");
21
- Object.keys(_Downloader).forEach(function (key) {
20
+ var _helpers = require("./helpers");
21
+ Object.keys(_helpers).forEach(function (key) {
22
22
  if (key === "default" || key === "__esModule") return;
23
23
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
24
- if (key in exports && exports[key] === _Downloader[key]) return;
24
+ if (key in exports && exports[key] === _helpers[key]) return;
25
25
  Object.defineProperty(exports, key, {
26
26
  enumerable: true,
27
27
  get: function () {
28
- return _Downloader[key];
28
+ return _helpers[key];
29
29
  }
30
30
  });
31
31
  });
32
- var _Uploader = require("./Uploader");
33
- Object.keys(_Uploader).forEach(function (key) {
32
+ var _Downloader = require("./Downloader");
33
+ Object.keys(_Downloader).forEach(function (key) {
34
34
  if (key === "default" || key === "__esModule") return;
35
35
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
36
- if (key in exports && exports[key] === _Uploader[key]) return;
36
+ if (key in exports && exports[key] === _Downloader[key]) return;
37
37
  Object.defineProperty(exports, key, {
38
38
  enumerable: true,
39
39
  get: function () {
40
- return _Uploader[key];
40
+ return _Downloader[key];
41
41
  }
42
42
  });
43
43
  });
44
- var _helpers = require("./helpers");
45
- Object.keys(_helpers).forEach(function (key) {
44
+ var _Uploader = require("./Uploader");
45
+ Object.keys(_Uploader).forEach(function (key) {
46
46
  if (key === "default" || key === "__esModule") return;
47
47
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
48
- if (key in exports && exports[key] === _helpers[key]) return;
48
+ if (key in exports && exports[key] === _Uploader[key]) return;
49
49
  Object.defineProperty(exports, key, {
50
50
  enumerable: true,
51
51
  get: function () {
52
- return _helpers[key];
52
+ return _Uploader[key];
53
53
  }
54
54
  });
55
55
  });
@@ -89,7 +89,7 @@ const getImageMetaData = async path => {
89
89
  };
90
90
  exports.getImageMetaData = getImageMetaData;
91
91
  const createVideoThumbnail = (fileUrl, options = {}) => {
92
- return _Main.Compressor.createVideoThumbnail(fileUrl, options);
92
+ return _Main.Compressor.createVideoThumbnail(fileUrl, (0, _helpers.toNativeOptions)(options));
93
93
  };
94
94
  exports.createVideoThumbnail = createVideoThumbnail;
95
95
  const clearCache = cacheDir => {
@@ -1 +1 @@
1
- {"version":3,"names":["_Main","require","_reactNative","_Downloader","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Uploader","_helpers","INCORRECT_INPUT_PATH","DEFAULT_COMPRESS_AUDIO_OPTIONS","quality","generateFilePath","extension","Promise","resolve","reject","Compressor","then","result","catch","error","getRealPath","path","type","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","length","substring","array","split","isFileNameError","filename","getFilename","fullFilename","slice","join","isRemoteMedia","getDetails","mediaFullPath","extesnion","Error","mediaInfo","JSON","parse","mediaInformation","bitrate","getMediaProperties","bit_rate","Number","format","e","getFileSize","filePath"],"sourceRoot":"../../../src","sources":["utils/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_Main","require","_reactNative","_helpers","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Downloader","_Uploader","INCORRECT_INPUT_PATH","DEFAULT_COMPRESS_AUDIO_OPTIONS","quality","generateFilePath","extension","Promise","resolve","reject","Compressor","then","result","catch","error","getRealPath","path","type","getVideoMetaData","unifyMetaData","exifResult","output","isIos","Platform","OS","ImageWidth","PixelWidth","parseInt","ImageHeight","PixelHeight","ImageLength","Orientation","size","exif","getImageMetaData","createVideoThumbnail","fileUrl","options","toNativeOptions","clearCache","cacheDir","isValidUrl","url","test","getFullFilename","_path","includes","length","substring","array","split","isFileNameError","filename","getFilename","fullFilename","slice","join","isRemoteMedia","getDetails","mediaFullPath","extesnion","Error","mediaInfo","JSON","parse","mediaInformation","bitrate","getMediaProperties","bit_rate","Number","format","e","getFileSize","filePath"],"sourceRoot":"../../../src","sources":["utils/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import { Compressor } from '../Main';
4
- import { DEFAULT_COMPRESS_AUDIO_OPTIONS } from '../utils';
4
+ import { DEFAULT_COMPRESS_AUDIO_OPTIONS, toNativeOptions } from '../utils';
5
5
  const NativeAudio = Compressor;
6
6
  const Audio = {
7
7
  compress: async (url, options = DEFAULT_COMPRESS_AUDIO_OPTIONS) => {
8
8
  try {
9
- return NativeAudio.compress_audio(url, options);
9
+ return NativeAudio.compress_audio(url, toNativeOptions(options));
10
10
  } catch (error) {
11
11
  throw error.message;
12
12
  }