react-native-compressor 0.5.11 → 0.5.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +4 -0
  2. package/android/.gradle/6.1.1/executionHistory/executionHistory.lock +0 -0
  3. package/android/.gradle/6.1.1/fileChanges/last-build.bin +0 -0
  4. package/android/.gradle/6.1.1/fileHashes/fileHashes.lock +0 -0
  5. package/android/.gradle/6.1.1/gc.properties +0 -0
  6. package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
  7. package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
  8. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  9. package/android/.gradle/buildOutputCleanup/cache.properties +2 -2
  10. package/android/.gradle/checksums/checksums.lock +0 -0
  11. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  12. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  13. package/android/.idea/jarRepositories.xml +10 -0
  14. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0.xml +13 -0
  15. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_0_2_aar.xml +4 -0
  16. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml +3 -0
  17. package/android/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml +3 -0
  18. package/android/.idea/libraries/Gradle__androidx_autofill_autofill_1_1_0_aar.xml +16 -0
  19. package/android/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml +4 -0
  20. package/android/.idea/libraries/Gradle__androidx_core_core_1_1_0_aar.xml +16 -0
  21. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +3 -0
  22. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +3 -0
  23. package/android/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml +3 -0
  24. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +4 -0
  25. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_0_0_aar.xml +4 -0
  26. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +3 -0
  27. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml +3 -0
  28. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml +3 -0
  29. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +3 -0
  30. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml +3 -0
  31. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_0_0_aar.xml +3 -0
  32. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_0_0_aar.xml +3 -0
  33. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +3 -0
  34. package/android/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml +3 -0
  35. package/android/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml +4 -0
  36. package/android/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml +3 -0
  37. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +4 -0
  38. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_0_1_aar.xml +3 -0
  39. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_0_0_aar.xml +3 -0
  40. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml +13 -0
  41. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +3 -0
  42. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_2_2.xml +13 -0
  43. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_5_0_aar.xml +15 -0
  44. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_5_0_aar.xml +18 -0
  45. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_5_0_aar.xml +18 -0
  46. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_5_0_aar.xml +18 -0
  47. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_5_0_aar.xml +18 -0
  48. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_native_2_5_0_aar.xml +15 -0
  49. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_5_0_aar.xml +15 -0
  50. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_ashmem_2_5_0_aar.xml +15 -0
  51. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_java_2_5_0_aar.xml +15 -0
  52. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_native_2_5_0_aar.xml +15 -0
  53. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_5_0_aar.xml +15 -0
  54. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_5_0_aar.xml +15 -0
  55. package/android/.idea/libraries/Gradle__com_facebook_fresco_ui_common_2_5_0_aar.xml +15 -0
  56. package/android/.idea/libraries/{Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2.xml → Gradle__com_facebook_infer_annotation_infer_annotation_0_18_0.xml} +4 -4
  57. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_66_1_aar.xml +14 -0
  58. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_10_1.xml +13 -0
  59. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_1.xml +13 -0
  60. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_1_aar.xml +15 -0
  61. package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_19_0.xml +13 -0
  62. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_4_9_1.xml +13 -0
  63. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_4_9_1.xml +13 -0
  64. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_9_0.xml +13 -0
  65. package/android/.idea/libraries/Gradle__io_github_lizhangqu_coreprogress_1_0_2_aar.xml +5 -2
  66. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_annotations_jvm_1_3_72.xml +13 -0
  67. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_4_10.xml +13 -0
  68. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_4_10.xml +13 -0
  69. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_4_10.xml +13 -0
  70. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_4_10.xml +13 -0
  71. package/android/.idea/modules/android.iml +34 -26
  72. package/android/build.gradle +43 -44
  73. package/android/src/main/java/com/reactnativecompressor/.DS_Store +0 -0
  74. package/android/src/main/java/com/reactnativecompressor/Audio/AudioCompressor.java +3 -4
  75. package/android/src/main/java/com/reactnativecompressor/CompressorModule.java +1 -33
  76. package/android/src/main/java/com/reactnativecompressor/Utils/Utils.java +74 -0
  77. package/android/src/main/java/com/reactnativecompressor/Video/AutoVideoCompression/AutoVideoCompression.java +24 -58
  78. package/android/src/main/java/com/reactnativecompressor/Video/VideoCompressorHelper.java +6 -42
  79. package/android/src/main/java/com/reactnativecompressor/Video/VideoModule.java +19 -17
  80. package/ios/Compressor.m +2 -1
  81. package/ios/Video/VideoCompressor.swift +31 -24
  82. package/lib/commonjs/Audio/index.js.map +1 -1
  83. package/lib/commonjs/Video/index.js +45 -30
  84. package/lib/commonjs/Video/index.js.map +1 -1
  85. package/lib/module/Audio/index.js.map +1 -1
  86. package/lib/module/Video/index.js +38 -29
  87. package/lib/module/Video/index.js.map +1 -1
  88. package/lib/typescript/Video/index.d.ts +4 -0
  89. package/package.json +1 -1
  90. package/react-native-compressor.podspec +1 -1
  91. package/src/Audio/index.tsx +1 -1
  92. package/src/Video/index.tsx +48 -36
  93. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_0_0.xml +0 -13
  94. package/android/.idea/libraries/Gradle__androidx_core_core_1_0_1_aar.xml +0 -20
  95. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_0_0_aar.xml +0 -16
  96. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_0_3.xml +0 -13
  97. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_0_0_aar.xml +0 -18
  98. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_0_0_aar.xml +0 -22
  99. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_0_0_aar.xml +0 -22
  100. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_0_0_aar.xml +0 -22
  101. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_0_0_aar.xml +0 -22
  102. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_0_0_aar.xml +0 -18
  103. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_0_0_aar.xml +0 -18
  104. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_0_0_aar.xml +0 -18
  105. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_63_4_aar.xml +0 -22
  106. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_9_0.xml +0 -13
  107. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_9_0.xml +0 -13
  108. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_9_0_aar.xml +0 -18
  109. package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_14_1.xml +0 -13
  110. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_12.xml +0 -13
  111. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_12_12.xml +0 -13
  112. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0.xml +0 -13
  113. package/android/.idea/libraries/Gradle__com_zolad_videoslimmer_1_0_0_aar.xml +0 -15
  114. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_4_0.xml +0 -13
  115. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_4_0.xml +0 -13
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.cancelCompression = exports.backgroundUpload = void 0;
7
7
 
8
8
  var _reactNative = require("react-native");
9
9
 
@@ -11,6 +11,45 @@ var _utils = require("../utils");
11
11
 
12
12
  const VideoCompressEventEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.VideoCompressor);
13
13
  const NativeVideoCompressor = _reactNative.NativeModules.VideoCompressor;
14
+
15
+ const backgroundUpload = async (url, fileUrl, options, onProgress) => {
16
+ const uuid = (0, _utils.uuidv4)();
17
+ let subscription = null;
18
+
19
+ try {
20
+ if (onProgress) {
21
+ subscription = VideoCompressEventEmitter.addListener('VideoCompressorProgress', event => {
22
+ if (event.uuid === uuid) {
23
+ onProgress(event.data.written, event.data.total);
24
+ }
25
+ });
26
+ }
27
+
28
+ if (_reactNative.Platform.OS === 'android' && fileUrl.includes('file://')) {
29
+ fileUrl = fileUrl.replace('file://', '');
30
+ }
31
+
32
+ const result = await NativeVideoCompressor.upload(fileUrl, {
33
+ uuid,
34
+ method: options.httpMethod,
35
+ headers: options.headers,
36
+ url
37
+ });
38
+ return result;
39
+ } finally {
40
+ if (subscription) {
41
+ VideoCompressEventEmitter.removeSubscription(subscription);
42
+ }
43
+ }
44
+ };
45
+
46
+ exports.backgroundUpload = backgroundUpload;
47
+
48
+ const cancelCompression = cancellationId => {
49
+ return NativeVideoCompressor.cancelCompression(cancellationId);
50
+ };
51
+
52
+ exports.cancelCompression = cancelCompression;
14
53
  const Video = {
15
54
  compress: async (fileUrl, options, onProgress) => {
16
55
  const uuid = (0, _utils.uuidv4)();
@@ -46,37 +85,11 @@ const Video = {
46
85
  modifiedOptions.minimumFileSizeForCompress = options === null || options === void 0 ? void 0 : options.minimumFileSizeForCompress;
47
86
  }
48
87
 
49
- const result = await NativeVideoCompressor.compress(fileUrl, modifiedOptions);
50
- return result;
51
- } finally {
52
- if (subscription) {
53
- VideoCompressEventEmitter.removeSubscription(subscription);
54
- }
55
- }
56
- },
57
- backgroundUpload: async (url, fileUrl, options, onProgress) => {
58
- const uuid = (0, _utils.uuidv4)();
59
- let subscription = null;
60
-
61
- try {
62
- if (onProgress) {
63
- subscription = VideoCompressEventEmitter.addListener('VideoCompressorProgress', event => {
64
- if (event.uuid === uuid) {
65
- onProgress(event.data.written, event.data.total);
66
- }
67
- });
88
+ if (options !== null && options !== void 0 && options.getCancellationId) {
89
+ options === null || options === void 0 ? void 0 : options.getCancellationId(uuid);
68
90
  }
69
91
 
70
- if (_reactNative.Platform.OS === 'android' && fileUrl.includes('file://')) {
71
- fileUrl = fileUrl.replace('file://', '');
72
- }
73
-
74
- const result = await NativeVideoCompressor.upload(fileUrl, {
75
- uuid,
76
- method: options.httpMethod,
77
- headers: options.headers,
78
- url
79
- });
92
+ const result = await NativeVideoCompressor.compress(fileUrl, modifiedOptions);
80
93
  return result;
81
94
  } finally {
82
95
  if (subscription) {
@@ -84,6 +97,8 @@ const Video = {
84
97
  }
85
98
  }
86
99
  },
100
+ backgroundUpload: backgroundUpload,
101
+ cancelCompression,
87
102
 
88
103
  activateBackgroundTask(onExpired) {
89
104
  if (onExpired) {
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["VideoCompressEventEmitter","NativeEventEmitter","NativeModules","VideoCompressor","NativeVideoCompressor","Video","compress","fileUrl","options","onProgress","uuid","subscription","addListener","event","data","progress","modifiedOptions","bitrate","compressionMethod","maxSize","minimumFileSizeForCompress","result","removeSubscription","backgroundUpload","url","written","total","Platform","OS","includes","replace","upload","method","httpMethod","headers","activateBackgroundTask","onExpired","deactivateBackgroundTask","removeAllListeners"],"mappings":"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","sourcesContent":["import { NativeModules, NativeEventEmitter, Platform } from 'react-native';\nimport { uuidv4 } from '../utils';\n\nexport declare enum FileSystemUploadType {\n BINARY_CONTENT = 0,\n MULTIPART = 1,\n}\n\nexport declare type FileSystemAcceptedUploadHttpMethod =\n | 'POST'\n | 'PUT'\n | 'PATCH';\nexport type compressionMethod = 'auto' | 'manual';\ntype videoCompresssionType = {\n bitrate?: number;\n maxSize?: number;\n compressionMethod?: compressionMethod;\n minimumFileSizeForCompress?: number;\n};\n\nexport declare enum FileSystemSessionType {\n BACKGROUND = 0,\n FOREGROUND = 1,\n}\n\nexport declare type HTTPResponse = {\n status: number;\n headers: Record<string, string>;\n body: string;\n};\n\nexport declare type FileSystemUploadOptions = (\n | {\n uploadType?: FileSystemUploadType.BINARY_CONTENT;\n }\n | {\n uploadType: FileSystemUploadType.MULTIPART;\n fieldName?: string;\n mimeType?: string;\n parameters?: Record<string, string>;\n }\n) & {\n headers?: Record<string, string>;\n httpMethod?: FileSystemAcceptedUploadHttpMethod;\n sessionType?: FileSystemSessionType;\n};\n\nexport type VideoCompressorType = {\n compress(\n fileUrl: string,\n options?: videoCompresssionType,\n onProgress?: (progress: number) => void\n ): Promise<string>;\n backgroundUpload(\n url: string,\n fileUrl: string,\n options: FileSystemUploadOptions,\n onProgress?: (writtem: number, total: number) => void\n ): Promise<any>;\n activateBackgroundTask(onExpired?: (data: any) => void): Promise<any>;\n deactivateBackgroundTask(): Promise<any>;\n};\n\nconst VideoCompressEventEmitter = new NativeEventEmitter(\n NativeModules.VideoCompressor\n);\n\nconst NativeVideoCompressor = NativeModules.VideoCompressor;\n\nconst Video: VideoCompressorType = {\n compress: async (\n fileUrl: string,\n options?: {\n bitrate?: number;\n compressionMethod?: compressionMethod;\n maxSize?: number;\n minimumFileSizeForCompress?: number;\n },\n onProgress?: (progress: number) => void\n ) => {\n const uuid = uuidv4();\n let subscription = null;\n try {\n if (onProgress) {\n subscription = VideoCompressEventEmitter.addListener(\n 'videoCompressProgress',\n (event: any) => {\n if (event.uuid === uuid) {\n onProgress(event.data.progress);\n }\n }\n );\n }\n const modifiedOptions: {\n uuid: string;\n bitrate?: number;\n compressionMethod?: compressionMethod;\n maxSize?: number;\n minimumFileSizeForCompress?: number;\n } = { uuid };\n if (options?.bitrate) modifiedOptions.bitrate = options?.bitrate;\n if (options?.compressionMethod) {\n modifiedOptions.compressionMethod = options?.compressionMethod;\n } else {\n modifiedOptions.compressionMethod = 'manual';\n }\n if (options?.maxSize) {\n modifiedOptions.maxSize = options?.maxSize;\n } else {\n modifiedOptions.maxSize = 640;\n }\n if (options?.minimumFileSizeForCompress) {\n modifiedOptions.minimumFileSizeForCompress =\n options?.minimumFileSizeForCompress;\n }\n const result = await NativeVideoCompressor.compress(\n fileUrl,\n modifiedOptions\n );\n return result;\n } finally {\n if (subscription) {\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n }\n },\n backgroundUpload: async (url, fileUrl, options, onProgress) => {\n const uuid = uuidv4();\n let subscription = null;\n try {\n if (onProgress) {\n subscription = VideoCompressEventEmitter.addListener(\n 'VideoCompressorProgress',\n (event: any) => {\n if (event.uuid === uuid) {\n onProgress(event.data.written, event.data.total);\n }\n }\n );\n }\n if (Platform.OS === 'android' && fileUrl.includes('file://')) {\n fileUrl = fileUrl.replace('file://', '');\n }\n const result = await NativeVideoCompressor.upload(fileUrl, {\n uuid,\n method: options.httpMethod,\n headers: options.headers,\n url,\n });\n return result;\n } finally {\n if (subscription) {\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n }\n },\n activateBackgroundTask(onExpired?) {\n if (onExpired) {\n const subscription = VideoCompressEventEmitter.addListener(\n 'backgroundTaskExpired',\n (event: any) => {\n onExpired(event);\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n );\n }\n return NativeVideoCompressor.activateBackgroundTask({});\n },\n deactivateBackgroundTask() {\n VideoCompressEventEmitter.removeAllListeners('backgroundTaskExpired');\n return NativeVideoCompressor.deactivateBackgroundTask({});\n },\n} as VideoCompressorType;\n\nexport default Video;\n"]}
1
+ {"version":3,"sources":["index.tsx"],"names":["VideoCompressEventEmitter","NativeEventEmitter","NativeModules","VideoCompressor","NativeVideoCompressor","backgroundUpload","url","fileUrl","options","onProgress","uuid","subscription","addListener","event","data","written","total","Platform","OS","includes","replace","result","upload","method","httpMethod","headers","removeSubscription","cancelCompression","cancellationId","Video","compress","progress","modifiedOptions","bitrate","compressionMethod","maxSize","minimumFileSizeForCompress","getCancellationId","activateBackgroundTask","onExpired","deactivateBackgroundTask","removeAllListeners"],"mappings":"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","sourcesContent":["import { NativeModules, NativeEventEmitter, Platform } from 'react-native';\nimport { uuidv4 } from '../utils';\n\nexport declare enum FileSystemUploadType {\n BINARY_CONTENT = 0,\n MULTIPART = 1,\n}\n\nexport declare type FileSystemAcceptedUploadHttpMethod =\n | 'POST'\n | 'PUT'\n | 'PATCH';\nexport type compressionMethod = 'auto' | 'manual';\ntype videoCompresssionType = {\n bitrate?: number;\n maxSize?: number;\n compressionMethod?: compressionMethod;\n minimumFileSizeForCompress?: number;\n getCancellationId?: (cancellationId: string) => void;\n};\n\nexport declare enum FileSystemSessionType {\n BACKGROUND = 0,\n FOREGROUND = 1,\n}\n\nexport declare type HTTPResponse = {\n status: number;\n headers: Record<string, string>;\n body: string;\n};\n\nexport declare type FileSystemUploadOptions = (\n | {\n uploadType?: FileSystemUploadType.BINARY_CONTENT;\n }\n | {\n uploadType: FileSystemUploadType.MULTIPART;\n fieldName?: string;\n mimeType?: string;\n parameters?: Record<string, string>;\n }\n) & {\n headers?: Record<string, string>;\n httpMethod?: FileSystemAcceptedUploadHttpMethod;\n sessionType?: FileSystemSessionType;\n};\n\nexport type VideoCompressorType = {\n compress(\n fileUrl: string,\n options?: videoCompresssionType,\n onProgress?: (progress: number) => void\n ): Promise<string>;\n cancelCompression(cancellationId: string): void;\n backgroundUpload(\n url: string,\n fileUrl: string,\n options: FileSystemUploadOptions,\n onProgress?: (writtem: number, total: number) => void\n ): Promise<any>;\n activateBackgroundTask(onExpired?: (data: any) => void): Promise<any>;\n deactivateBackgroundTask(): Promise<any>;\n};\n\nconst VideoCompressEventEmitter = new NativeEventEmitter(\n NativeModules.VideoCompressor\n);\n\nconst NativeVideoCompressor = NativeModules.VideoCompressor;\n\nexport const backgroundUpload = async (\n url: string,\n fileUrl: string,\n options: FileSystemUploadOptions,\n onProgress?: (writtem: number, total: number) => void\n): Promise<any> => {\n const uuid = uuidv4();\n let subscription = null;\n try {\n if (onProgress) {\n subscription = VideoCompressEventEmitter.addListener(\n 'VideoCompressorProgress',\n (event: any) => {\n if (event.uuid === uuid) {\n onProgress(event.data.written, event.data.total);\n }\n }\n );\n }\n if (Platform.OS === 'android' && fileUrl.includes('file://')) {\n fileUrl = fileUrl.replace('file://', '');\n }\n const result = await NativeVideoCompressor.upload(fileUrl, {\n uuid,\n method: options.httpMethod,\n headers: options.headers,\n url,\n });\n return result;\n } finally {\n if (subscription) {\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n }\n};\n\nexport const cancelCompression = (cancellationId: string) => {\n return NativeVideoCompressor.cancelCompression(cancellationId);\n};\n\nconst Video: VideoCompressorType = {\n compress: async (\n fileUrl: string,\n options?: videoCompresssionType,\n onProgress?: (progress: number) => void\n ) => {\n const uuid = uuidv4();\n let subscription = null;\n try {\n if (onProgress) {\n subscription = VideoCompressEventEmitter.addListener(\n 'videoCompressProgress',\n (event: any) => {\n if (event.uuid === uuid) {\n onProgress(event.data.progress);\n }\n }\n );\n }\n const modifiedOptions: {\n uuid: string;\n bitrate?: number;\n compressionMethod?: compressionMethod;\n maxSize?: number;\n minimumFileSizeForCompress?: number;\n } = { uuid };\n if (options?.bitrate) modifiedOptions.bitrate = options?.bitrate;\n if (options?.compressionMethod) {\n modifiedOptions.compressionMethod = options?.compressionMethod;\n } else {\n modifiedOptions.compressionMethod = 'manual';\n }\n if (options?.maxSize) {\n modifiedOptions.maxSize = options?.maxSize;\n } else {\n modifiedOptions.maxSize = 640;\n }\n if (options?.minimumFileSizeForCompress) {\n modifiedOptions.minimumFileSizeForCompress =\n options?.minimumFileSizeForCompress;\n }\n if (options?.getCancellationId) {\n options?.getCancellationId(uuid);\n }\n const result = await NativeVideoCompressor.compress(\n fileUrl,\n modifiedOptions\n );\n return result;\n } finally {\n if (subscription) {\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n }\n },\n backgroundUpload: backgroundUpload,\n cancelCompression,\n activateBackgroundTask(onExpired?) {\n if (onExpired) {\n const subscription = VideoCompressEventEmitter.addListener(\n 'backgroundTaskExpired',\n (event: any) => {\n onExpired(event);\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n );\n }\n return NativeVideoCompressor.activateBackgroundTask({});\n },\n deactivateBackgroundTask() {\n VideoCompressEventEmitter.removeAllListeners('backgroundTaskExpired');\n return NativeVideoCompressor.deactivateBackgroundTask({});\n },\n} as VideoCompressorType;\n\nexport default Video;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["NativeModules","AUDIO_BITRATE","DEFAULT_COMPRESS_AUDIO_OPTIONS","checkUrlAndOptions","NativeAudio","Compressor","Audio","compress","url","options","checkUrlAndOptionsResult","isCorrect","message","mediaDetails","bitrate","i","length","quality","compress_audio","error"],"mappings":"AAAA,SAASA,aAAT,QAA8B,cAA9B;AACA,SACEC,aADF,EAGEC,8BAHF,EAKEC,kBALF,QAMO,UANP;AAOA,MAAMC,WAAW,GAAGJ,aAAa,CAACK,UAAlC;AAEA,MAAMC,KAAgB,GAAG;AACvBC,EAAAA,QAAQ,EAAE,OAAOC,GAAP,EAAYC,OAAO,GAAGP,8BAAtB,KAAyD;AACjE,QAAI;AACF,YAAMQ,wBAA2C,GAC/C,MAAMP,kBAAkB,CAACK,GAAD,EAAMC,OAAN,CAD1B;;AAEA,UAAI,CAACC,wBAAwB,CAACC,SAA9B,EAAyC;AACvC,cAAMD,wBAAwB,CAACE,OAA/B;AACD,OAFD,MAEO;AACL;AAEA;AACA;AACA,cAAMC,YAAiB,GAAG;AACxBC,UAAAA,OAAO,EAAE;AADe,SAA1B,CALK,CASL;;AACA,YAAIA,OAAY,GAAGZ,8BAA8B,CAACY,OAAlD;;AAEA,YAAID,YAAY,IAAIA,YAAY,CAACC,OAAjC,EAA0C;AACxC;AACA,eAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGd,aAAa,CAACe,MAAlC,EAA0CD,CAAC,EAA3C,EAA+C;AAC7C;AACA,gBAAIF,YAAY,CAACC,OAAb,GAAuBb,aAAa,CAACc,CAAD,CAAxC,EAA6C;AAC3C,kBAAIA,CAAC,GAAG,CAAJ,GAAQd,aAAa,CAACe,MAA1B,EAAkC;AAChC,oBAAIP,OAAO,CAACQ,OAAR,KAAoB,KAAxB,EAA+BH,OAAO,GAAGb,aAAa,CAACc,CAAC,GAAG,CAAL,CAAvB,CAA/B,KACK,IAAIN,OAAO,CAACQ,OAAR,KAAoB,QAAxB,EACHH,OAAO,GAAGb,aAAa,CAACc,CAAC,GAAG,CAAL,CAAvB,CADG,KAEAD,OAAO,GAAGb,aAAa,CAACc,CAAD,CAAvB;AACN,eALD,MAKO,IAAIA,CAAC,GAAG,CAAJ,GAAQd,aAAa,CAACe,MAA1B,EAAkC;AACvC,oBAAIP,OAAO,CAACQ,OAAR,KAAoB,KAAxB,EAA+BH,OAAO,GAAGb,aAAa,CAACc,CAAC,GAAG,CAAL,CAAvB,CAA/B,KACKD,OAAO,GAAGb,aAAa,CAACc,CAAD,CAAvB;AACN,eAHM,MAGAD,OAAO,GAAGb,aAAa,CAACc,CAAD,CAAvB;;AACP;AACD,aAb4C,CAe7C;;;AACA,gBACEF,YAAY,CAACC,OAAb,IAAwBb,aAAa,CAACA,aAAa,CAACe,MAAd,GAAuB,CAAxB,CADvC,EAEE;AACAF,cAAAA,OAAO,GAAGb,aAAa,CAACA,aAAa,CAACe,MAAd,GAAuB,CAAxB,CAAvB;AACA;AACD;AACF;AACF;;AAED,eAAOZ,WAAW,CAACc,cAAZ,CAA2BV,GAA3B,EAAgC;AACrCM,UAAAA,OADqC;AAErCG,UAAAA,OAAO,EAAER,OAAO,CAACQ;AAFoB,SAAhC,CAAP;AAID;AACF,KAjDD,CAiDE,OAAOE,KAAP,EAAc;AACd,YAAMA,KAAK,CAACP,OAAZ;AACD;AACF;AAtDsB,CAAzB;AAyDA,eAAeN,KAAf","sourcesContent":["import { NativeModules } from 'react-native';\nimport {\n AUDIO_BITRATE,\n AudioType,\n DEFAULT_COMPRESS_AUDIO_OPTIONS,\n defaultResultType,\n checkUrlAndOptions,\n} from '../utils';\nconst NativeAudio = NativeModules.Compressor;\n\nconst Audio: AudioType = {\n compress: async (url, options = DEFAULT_COMPRESS_AUDIO_OPTIONS) => {\n try {\n const checkUrlAndOptionsResult: defaultResultType =\n await checkUrlAndOptions(url, options);\n if (!checkUrlAndOptionsResult.isCorrect) {\n throw checkUrlAndOptionsResult.message;\n } else {\n // Get resulting output file path\n\n // Get media details\n // const mediaDetails: any = await getDetails(url).catch(() => null);\n const mediaDetails: any = {\n bitrate: 0,\n };\n\n // Initialize bitrate\n let bitrate: any = DEFAULT_COMPRESS_AUDIO_OPTIONS.bitrate;\n\n if (mediaDetails && mediaDetails.bitrate) {\n // Check and return the appropriate bitrate according to quality expected\n for (let i = 0; i < AUDIO_BITRATE.length; i++) {\n // Check a particular bitrate to return its nearest lower according to quality\n if (mediaDetails.bitrate > AUDIO_BITRATE[i]) {\n if (i + 2 < AUDIO_BITRATE.length) {\n if (options.quality === 'low') bitrate = AUDIO_BITRATE[i + 2];\n else if (options.quality === 'medium')\n bitrate = AUDIO_BITRATE[i + 1];\n else bitrate = AUDIO_BITRATE[i];\n } else if (i + 1 < AUDIO_BITRATE.length) {\n if (options.quality === 'low') bitrate = AUDIO_BITRATE[i + 1];\n else bitrate = AUDIO_BITRATE[i];\n } else bitrate = AUDIO_BITRATE[i];\n break;\n }\n\n // Check if the matching bitrate is the last in the array\n if (\n mediaDetails.bitrate <= AUDIO_BITRATE[AUDIO_BITRATE.length - 1]\n ) {\n bitrate = AUDIO_BITRATE[AUDIO_BITRATE.length - 1];\n break;\n }\n }\n }\n\n return NativeAudio.compress_audio(url, {\n bitrate,\n quality: options.quality,\n });\n }\n } catch (error) {\n throw error.message;\n }\n },\n};\n\nexport default Audio;\n"]}
1
+ {"version":3,"sources":["index.tsx"],"names":["NativeModules","AUDIO_BITRATE","DEFAULT_COMPRESS_AUDIO_OPTIONS","checkUrlAndOptions","NativeAudio","Compressor","Audio","compress","url","options","checkUrlAndOptionsResult","isCorrect","message","mediaDetails","bitrate","i","length","quality","compress_audio","error"],"mappings":"AAAA,SAASA,aAAT,QAA8B,cAA9B;AACA,SACEC,aADF,EAGEC,8BAHF,EAKEC,kBALF,QAMO,UANP;AAOA,MAAMC,WAAW,GAAGJ,aAAa,CAACK,UAAlC;AAEA,MAAMC,KAAgB,GAAG;AACvBC,EAAAA,QAAQ,EAAE,OAAOC,GAAP,EAAYC,OAAO,GAAGP,8BAAtB,KAAyD;AACjE,QAAI;AACF,YAAMQ,wBAA2C,GAC/C,MAAMP,kBAAkB,CAACK,GAAD,EAAMC,OAAN,CAD1B;;AAEA,UAAI,CAACC,wBAAwB,CAACC,SAA9B,EAAyC;AACvC,cAAMD,wBAAwB,CAACE,OAA/B;AACD,OAFD,MAEO;AACL;AAEA;AACA;AACA,cAAMC,YAAiB,GAAG;AACxBC,UAAAA,OAAO,EAAE;AADe,SAA1B,CALK,CASL;;AACA,YAAIA,OAAY,GAAGZ,8BAA8B,CAACY,OAAlD;;AAEA,YAAID,YAAY,IAAIA,YAAY,CAACC,OAAjC,EAA0C;AACxC;AACA,eAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGd,aAAa,CAACe,MAAlC,EAA0CD,CAAC,EAA3C,EAA+C;AAC7C;AACA,gBAAIF,YAAY,CAACC,OAAb,GAAuBb,aAAa,CAACc,CAAD,CAAxC,EAA6C;AAC3C,kBAAIA,CAAC,GAAG,CAAJ,GAAQd,aAAa,CAACe,MAA1B,EAAkC;AAChC,oBAAIP,OAAO,CAACQ,OAAR,KAAoB,KAAxB,EAA+BH,OAAO,GAAGb,aAAa,CAACc,CAAC,GAAG,CAAL,CAAvB,CAA/B,KACK,IAAIN,OAAO,CAACQ,OAAR,KAAoB,QAAxB,EACHH,OAAO,GAAGb,aAAa,CAACc,CAAC,GAAG,CAAL,CAAvB,CADG,KAEAD,OAAO,GAAGb,aAAa,CAACc,CAAD,CAAvB;AACN,eALD,MAKO,IAAIA,CAAC,GAAG,CAAJ,GAAQd,aAAa,CAACe,MAA1B,EAAkC;AACvC,oBAAIP,OAAO,CAACQ,OAAR,KAAoB,KAAxB,EAA+BH,OAAO,GAAGb,aAAa,CAACc,CAAC,GAAG,CAAL,CAAvB,CAA/B,KACKD,OAAO,GAAGb,aAAa,CAACc,CAAD,CAAvB;AACN,eAHM,MAGAD,OAAO,GAAGb,aAAa,CAACc,CAAD,CAAvB;;AACP;AACD,aAb4C,CAe7C;;;AACA,gBACEF,YAAY,CAACC,OAAb,IAAwBb,aAAa,CAACA,aAAa,CAACe,MAAd,GAAuB,CAAxB,CADvC,EAEE;AACAF,cAAAA,OAAO,GAAGb,aAAa,CAACA,aAAa,CAACe,MAAd,GAAuB,CAAxB,CAAvB;AACA;AACD;AACF;AACF;;AAED,eAAOZ,WAAW,CAACc,cAAZ,CAA2BV,GAA3B,EAAgC;AACrCM,UAAAA,OADqC;AAErCG,UAAAA,OAAO,EAAER,OAAO,CAACQ;AAFoB,SAAhC,CAAP;AAID;AACF,KAjDD,CAiDE,OAAOE,KAAP,EAAmB;AACnB,YAAMA,KAAK,CAACP,OAAZ;AACD;AACF;AAtDsB,CAAzB;AAyDA,eAAeN,KAAf","sourcesContent":["import { NativeModules } from 'react-native';\nimport {\n AUDIO_BITRATE,\n AudioType,\n DEFAULT_COMPRESS_AUDIO_OPTIONS,\n defaultResultType,\n checkUrlAndOptions,\n} from '../utils';\nconst NativeAudio = NativeModules.Compressor;\n\nconst Audio: AudioType = {\n compress: async (url, options = DEFAULT_COMPRESS_AUDIO_OPTIONS) => {\n try {\n const checkUrlAndOptionsResult: defaultResultType =\n await checkUrlAndOptions(url, options);\n if (!checkUrlAndOptionsResult.isCorrect) {\n throw checkUrlAndOptionsResult.message;\n } else {\n // Get resulting output file path\n\n // Get media details\n // const mediaDetails: any = await getDetails(url).catch(() => null);\n const mediaDetails: any = {\n bitrate: 0,\n };\n\n // Initialize bitrate\n let bitrate: any = DEFAULT_COMPRESS_AUDIO_OPTIONS.bitrate;\n\n if (mediaDetails && mediaDetails.bitrate) {\n // Check and return the appropriate bitrate according to quality expected\n for (let i = 0; i < AUDIO_BITRATE.length; i++) {\n // Check a particular bitrate to return its nearest lower according to quality\n if (mediaDetails.bitrate > AUDIO_BITRATE[i]) {\n if (i + 2 < AUDIO_BITRATE.length) {\n if (options.quality === 'low') bitrate = AUDIO_BITRATE[i + 2];\n else if (options.quality === 'medium')\n bitrate = AUDIO_BITRATE[i + 1];\n else bitrate = AUDIO_BITRATE[i];\n } else if (i + 1 < AUDIO_BITRATE.length) {\n if (options.quality === 'low') bitrate = AUDIO_BITRATE[i + 1];\n else bitrate = AUDIO_BITRATE[i];\n } else bitrate = AUDIO_BITRATE[i];\n break;\n }\n\n // Check if the matching bitrate is the last in the array\n if (\n mediaDetails.bitrate <= AUDIO_BITRATE[AUDIO_BITRATE.length - 1]\n ) {\n bitrate = AUDIO_BITRATE[AUDIO_BITRATE.length - 1];\n break;\n }\n }\n }\n\n return NativeAudio.compress_audio(url, {\n bitrate,\n quality: options.quality,\n });\n }\n } catch (error: any) {\n throw error.message;\n }\n },\n};\n\nexport default Audio;\n"]}
@@ -2,6 +2,39 @@ import { NativeModules, NativeEventEmitter, Platform } from 'react-native';
2
2
  import { uuidv4 } from '../utils';
3
3
  const VideoCompressEventEmitter = new NativeEventEmitter(NativeModules.VideoCompressor);
4
4
  const NativeVideoCompressor = NativeModules.VideoCompressor;
5
+ export const backgroundUpload = async (url, fileUrl, options, onProgress) => {
6
+ const uuid = uuidv4();
7
+ let subscription = null;
8
+
9
+ try {
10
+ if (onProgress) {
11
+ subscription = VideoCompressEventEmitter.addListener('VideoCompressorProgress', event => {
12
+ if (event.uuid === uuid) {
13
+ onProgress(event.data.written, event.data.total);
14
+ }
15
+ });
16
+ }
17
+
18
+ if (Platform.OS === 'android' && fileUrl.includes('file://')) {
19
+ fileUrl = fileUrl.replace('file://', '');
20
+ }
21
+
22
+ const result = await NativeVideoCompressor.upload(fileUrl, {
23
+ uuid,
24
+ method: options.httpMethod,
25
+ headers: options.headers,
26
+ url
27
+ });
28
+ return result;
29
+ } finally {
30
+ if (subscription) {
31
+ VideoCompressEventEmitter.removeSubscription(subscription);
32
+ }
33
+ }
34
+ };
35
+ export const cancelCompression = cancellationId => {
36
+ return NativeVideoCompressor.cancelCompression(cancellationId);
37
+ };
5
38
  const Video = {
6
39
  compress: async (fileUrl, options, onProgress) => {
7
40
  const uuid = uuidv4();
@@ -37,37 +70,11 @@ const Video = {
37
70
  modifiedOptions.minimumFileSizeForCompress = options === null || options === void 0 ? void 0 : options.minimumFileSizeForCompress;
38
71
  }
39
72
 
40
- const result = await NativeVideoCompressor.compress(fileUrl, modifiedOptions);
41
- return result;
42
- } finally {
43
- if (subscription) {
44
- VideoCompressEventEmitter.removeSubscription(subscription);
45
- }
46
- }
47
- },
48
- backgroundUpload: async (url, fileUrl, options, onProgress) => {
49
- const uuid = uuidv4();
50
- let subscription = null;
51
-
52
- try {
53
- if (onProgress) {
54
- subscription = VideoCompressEventEmitter.addListener('VideoCompressorProgress', event => {
55
- if (event.uuid === uuid) {
56
- onProgress(event.data.written, event.data.total);
57
- }
58
- });
73
+ if (options !== null && options !== void 0 && options.getCancellationId) {
74
+ options === null || options === void 0 ? void 0 : options.getCancellationId(uuid);
59
75
  }
60
76
 
61
- if (Platform.OS === 'android' && fileUrl.includes('file://')) {
62
- fileUrl = fileUrl.replace('file://', '');
63
- }
64
-
65
- const result = await NativeVideoCompressor.upload(fileUrl, {
66
- uuid,
67
- method: options.httpMethod,
68
- headers: options.headers,
69
- url
70
- });
77
+ const result = await NativeVideoCompressor.compress(fileUrl, modifiedOptions);
71
78
  return result;
72
79
  } finally {
73
80
  if (subscription) {
@@ -75,6 +82,8 @@ const Video = {
75
82
  }
76
83
  }
77
84
  },
85
+ backgroundUpload: backgroundUpload,
86
+ cancelCompression,
78
87
 
79
88
  activateBackgroundTask(onExpired) {
80
89
  if (onExpired) {
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["NativeModules","NativeEventEmitter","Platform","uuidv4","VideoCompressEventEmitter","VideoCompressor","NativeVideoCompressor","Video","compress","fileUrl","options","onProgress","uuid","subscription","addListener","event","data","progress","modifiedOptions","bitrate","compressionMethod","maxSize","minimumFileSizeForCompress","result","removeSubscription","backgroundUpload","url","written","total","OS","includes","replace","upload","method","httpMethod","headers","activateBackgroundTask","onExpired","deactivateBackgroundTask","removeAllListeners"],"mappings":"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","sourcesContent":["import { NativeModules, NativeEventEmitter, Platform } from 'react-native';\nimport { uuidv4 } from '../utils';\n\nexport declare enum FileSystemUploadType {\n BINARY_CONTENT = 0,\n MULTIPART = 1,\n}\n\nexport declare type FileSystemAcceptedUploadHttpMethod =\n | 'POST'\n | 'PUT'\n | 'PATCH';\nexport type compressionMethod = 'auto' | 'manual';\ntype videoCompresssionType = {\n bitrate?: number;\n maxSize?: number;\n compressionMethod?: compressionMethod;\n minimumFileSizeForCompress?: number;\n};\n\nexport declare enum FileSystemSessionType {\n BACKGROUND = 0,\n FOREGROUND = 1,\n}\n\nexport declare type HTTPResponse = {\n status: number;\n headers: Record<string, string>;\n body: string;\n};\n\nexport declare type FileSystemUploadOptions = (\n | {\n uploadType?: FileSystemUploadType.BINARY_CONTENT;\n }\n | {\n uploadType: FileSystemUploadType.MULTIPART;\n fieldName?: string;\n mimeType?: string;\n parameters?: Record<string, string>;\n }\n) & {\n headers?: Record<string, string>;\n httpMethod?: FileSystemAcceptedUploadHttpMethod;\n sessionType?: FileSystemSessionType;\n};\n\nexport type VideoCompressorType = {\n compress(\n fileUrl: string,\n options?: videoCompresssionType,\n onProgress?: (progress: number) => void\n ): Promise<string>;\n backgroundUpload(\n url: string,\n fileUrl: string,\n options: FileSystemUploadOptions,\n onProgress?: (writtem: number, total: number) => void\n ): Promise<any>;\n activateBackgroundTask(onExpired?: (data: any) => void): Promise<any>;\n deactivateBackgroundTask(): Promise<any>;\n};\n\nconst VideoCompressEventEmitter = new NativeEventEmitter(\n NativeModules.VideoCompressor\n);\n\nconst NativeVideoCompressor = NativeModules.VideoCompressor;\n\nconst Video: VideoCompressorType = {\n compress: async (\n fileUrl: string,\n options?: {\n bitrate?: number;\n compressionMethod?: compressionMethod;\n maxSize?: number;\n minimumFileSizeForCompress?: number;\n },\n onProgress?: (progress: number) => void\n ) => {\n const uuid = uuidv4();\n let subscription = null;\n try {\n if (onProgress) {\n subscription = VideoCompressEventEmitter.addListener(\n 'videoCompressProgress',\n (event: any) => {\n if (event.uuid === uuid) {\n onProgress(event.data.progress);\n }\n }\n );\n }\n const modifiedOptions: {\n uuid: string;\n bitrate?: number;\n compressionMethod?: compressionMethod;\n maxSize?: number;\n minimumFileSizeForCompress?: number;\n } = { uuid };\n if (options?.bitrate) modifiedOptions.bitrate = options?.bitrate;\n if (options?.compressionMethod) {\n modifiedOptions.compressionMethod = options?.compressionMethod;\n } else {\n modifiedOptions.compressionMethod = 'manual';\n }\n if (options?.maxSize) {\n modifiedOptions.maxSize = options?.maxSize;\n } else {\n modifiedOptions.maxSize = 640;\n }\n if (options?.minimumFileSizeForCompress) {\n modifiedOptions.minimumFileSizeForCompress =\n options?.minimumFileSizeForCompress;\n }\n const result = await NativeVideoCompressor.compress(\n fileUrl,\n modifiedOptions\n );\n return result;\n } finally {\n if (subscription) {\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n }\n },\n backgroundUpload: async (url, fileUrl, options, onProgress) => {\n const uuid = uuidv4();\n let subscription = null;\n try {\n if (onProgress) {\n subscription = VideoCompressEventEmitter.addListener(\n 'VideoCompressorProgress',\n (event: any) => {\n if (event.uuid === uuid) {\n onProgress(event.data.written, event.data.total);\n }\n }\n );\n }\n if (Platform.OS === 'android' && fileUrl.includes('file://')) {\n fileUrl = fileUrl.replace('file://', '');\n }\n const result = await NativeVideoCompressor.upload(fileUrl, {\n uuid,\n method: options.httpMethod,\n headers: options.headers,\n url,\n });\n return result;\n } finally {\n if (subscription) {\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n }\n },\n activateBackgroundTask(onExpired?) {\n if (onExpired) {\n const subscription = VideoCompressEventEmitter.addListener(\n 'backgroundTaskExpired',\n (event: any) => {\n onExpired(event);\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n );\n }\n return NativeVideoCompressor.activateBackgroundTask({});\n },\n deactivateBackgroundTask() {\n VideoCompressEventEmitter.removeAllListeners('backgroundTaskExpired');\n return NativeVideoCompressor.deactivateBackgroundTask({});\n },\n} as VideoCompressorType;\n\nexport default Video;\n"]}
1
+ {"version":3,"sources":["index.tsx"],"names":["NativeModules","NativeEventEmitter","Platform","uuidv4","VideoCompressEventEmitter","VideoCompressor","NativeVideoCompressor","backgroundUpload","url","fileUrl","options","onProgress","uuid","subscription","addListener","event","data","written","total","OS","includes","replace","result","upload","method","httpMethod","headers","removeSubscription","cancelCompression","cancellationId","Video","compress","progress","modifiedOptions","bitrate","compressionMethod","maxSize","minimumFileSizeForCompress","getCancellationId","activateBackgroundTask","onExpired","deactivateBackgroundTask","removeAllListeners"],"mappings":"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","sourcesContent":["import { NativeModules, NativeEventEmitter, Platform } from 'react-native';\nimport { uuidv4 } from '../utils';\n\nexport declare enum FileSystemUploadType {\n BINARY_CONTENT = 0,\n MULTIPART = 1,\n}\n\nexport declare type FileSystemAcceptedUploadHttpMethod =\n | 'POST'\n | 'PUT'\n | 'PATCH';\nexport type compressionMethod = 'auto' | 'manual';\ntype videoCompresssionType = {\n bitrate?: number;\n maxSize?: number;\n compressionMethod?: compressionMethod;\n minimumFileSizeForCompress?: number;\n getCancellationId?: (cancellationId: string) => void;\n};\n\nexport declare enum FileSystemSessionType {\n BACKGROUND = 0,\n FOREGROUND = 1,\n}\n\nexport declare type HTTPResponse = {\n status: number;\n headers: Record<string, string>;\n body: string;\n};\n\nexport declare type FileSystemUploadOptions = (\n | {\n uploadType?: FileSystemUploadType.BINARY_CONTENT;\n }\n | {\n uploadType: FileSystemUploadType.MULTIPART;\n fieldName?: string;\n mimeType?: string;\n parameters?: Record<string, string>;\n }\n) & {\n headers?: Record<string, string>;\n httpMethod?: FileSystemAcceptedUploadHttpMethod;\n sessionType?: FileSystemSessionType;\n};\n\nexport type VideoCompressorType = {\n compress(\n fileUrl: string,\n options?: videoCompresssionType,\n onProgress?: (progress: number) => void\n ): Promise<string>;\n cancelCompression(cancellationId: string): void;\n backgroundUpload(\n url: string,\n fileUrl: string,\n options: FileSystemUploadOptions,\n onProgress?: (writtem: number, total: number) => void\n ): Promise<any>;\n activateBackgroundTask(onExpired?: (data: any) => void): Promise<any>;\n deactivateBackgroundTask(): Promise<any>;\n};\n\nconst VideoCompressEventEmitter = new NativeEventEmitter(\n NativeModules.VideoCompressor\n);\n\nconst NativeVideoCompressor = NativeModules.VideoCompressor;\n\nexport const backgroundUpload = async (\n url: string,\n fileUrl: string,\n options: FileSystemUploadOptions,\n onProgress?: (writtem: number, total: number) => void\n): Promise<any> => {\n const uuid = uuidv4();\n let subscription = null;\n try {\n if (onProgress) {\n subscription = VideoCompressEventEmitter.addListener(\n 'VideoCompressorProgress',\n (event: any) => {\n if (event.uuid === uuid) {\n onProgress(event.data.written, event.data.total);\n }\n }\n );\n }\n if (Platform.OS === 'android' && fileUrl.includes('file://')) {\n fileUrl = fileUrl.replace('file://', '');\n }\n const result = await NativeVideoCompressor.upload(fileUrl, {\n uuid,\n method: options.httpMethod,\n headers: options.headers,\n url,\n });\n return result;\n } finally {\n if (subscription) {\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n }\n};\n\nexport const cancelCompression = (cancellationId: string) => {\n return NativeVideoCompressor.cancelCompression(cancellationId);\n};\n\nconst Video: VideoCompressorType = {\n compress: async (\n fileUrl: string,\n options?: videoCompresssionType,\n onProgress?: (progress: number) => void\n ) => {\n const uuid = uuidv4();\n let subscription = null;\n try {\n if (onProgress) {\n subscription = VideoCompressEventEmitter.addListener(\n 'videoCompressProgress',\n (event: any) => {\n if (event.uuid === uuid) {\n onProgress(event.data.progress);\n }\n }\n );\n }\n const modifiedOptions: {\n uuid: string;\n bitrate?: number;\n compressionMethod?: compressionMethod;\n maxSize?: number;\n minimumFileSizeForCompress?: number;\n } = { uuid };\n if (options?.bitrate) modifiedOptions.bitrate = options?.bitrate;\n if (options?.compressionMethod) {\n modifiedOptions.compressionMethod = options?.compressionMethod;\n } else {\n modifiedOptions.compressionMethod = 'manual';\n }\n if (options?.maxSize) {\n modifiedOptions.maxSize = options?.maxSize;\n } else {\n modifiedOptions.maxSize = 640;\n }\n if (options?.minimumFileSizeForCompress) {\n modifiedOptions.minimumFileSizeForCompress =\n options?.minimumFileSizeForCompress;\n }\n if (options?.getCancellationId) {\n options?.getCancellationId(uuid);\n }\n const result = await NativeVideoCompressor.compress(\n fileUrl,\n modifiedOptions\n );\n return result;\n } finally {\n if (subscription) {\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n }\n },\n backgroundUpload: backgroundUpload,\n cancelCompression,\n activateBackgroundTask(onExpired?) {\n if (onExpired) {\n const subscription = VideoCompressEventEmitter.addListener(\n 'backgroundTaskExpired',\n (event: any) => {\n onExpired(event);\n VideoCompressEventEmitter.removeSubscription(subscription);\n }\n );\n }\n return NativeVideoCompressor.activateBackgroundTask({});\n },\n deactivateBackgroundTask() {\n VideoCompressEventEmitter.removeAllListeners('backgroundTaskExpired');\n return NativeVideoCompressor.deactivateBackgroundTask({});\n },\n} as VideoCompressorType;\n\nexport default Video;\n"]}
@@ -9,6 +9,7 @@ declare type videoCompresssionType = {
9
9
  maxSize?: number;
10
10
  compressionMethod?: compressionMethod;
11
11
  minimumFileSizeForCompress?: number;
12
+ getCancellationId?: (cancellationId: string) => void;
12
13
  };
13
14
  export declare enum FileSystemSessionType {
14
15
  BACKGROUND = 0,
@@ -33,9 +34,12 @@ export declare type FileSystemUploadOptions = ({
33
34
  };
34
35
  export declare type VideoCompressorType = {
35
36
  compress(fileUrl: string, options?: videoCompresssionType, onProgress?: (progress: number) => void): Promise<string>;
37
+ cancelCompression(cancellationId: string): void;
36
38
  backgroundUpload(url: string, fileUrl: string, options: FileSystemUploadOptions, onProgress?: (writtem: number, total: number) => void): Promise<any>;
37
39
  activateBackgroundTask(onExpired?: (data: any) => void): Promise<any>;
38
40
  deactivateBackgroundTask(): Promise<any>;
39
41
  };
42
+ export declare const backgroundUpload: (url: string, fileUrl: string, options: FileSystemUploadOptions, onProgress?: ((writtem: number, total: number) => void) | undefined) => Promise<any>;
43
+ export declare const cancelCompression: (cancellationId: string) => any;
40
44
  declare const Video: VideoCompressorType;
41
45
  export default Video;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-compressor",
3
- "version": "0.5.11",
3
+ "version": "0.5.15",
4
4
  "description": "This library compress image, video and audio",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -10,7 +10,7 @@ Pod::Spec.new do |s|
10
10
  s.license = package["license"]
11
11
  s.authors = package["author"]
12
12
 
13
- s.platforms = { :ios => "10.0" }
13
+ s.platforms = { :ios => "11.0" }
14
14
  s.source = { :git => "https://github.com/Shobbak/react-native-compressor.git", :tag => "#{s.version}" }
15
15
 
16
16
  s.source_files = "ios/**/*.{h,m,mm,swift}"
@@ -59,7 +59,7 @@ const Audio: AudioType = {
59
59
  quality: options.quality,
60
60
  });
61
61
  }
62
- } catch (error) {
62
+ } catch (error: any) {
63
63
  throw error.message;
64
64
  }
65
65
  },
@@ -16,6 +16,7 @@ type videoCompresssionType = {
16
16
  maxSize?: number;
17
17
  compressionMethod?: compressionMethod;
18
18
  minimumFileSizeForCompress?: number;
19
+ getCancellationId?: (cancellationId: string) => void;
19
20
  };
20
21
 
21
22
  export declare enum FileSystemSessionType {
@@ -51,6 +52,7 @@ export type VideoCompressorType = {
51
52
  options?: videoCompresssionType,
52
53
  onProgress?: (progress: number) => void
53
54
  ): Promise<string>;
55
+ cancelCompression(cancellationId: string): void;
54
56
  backgroundUpload(
55
57
  url: string,
56
58
  fileUrl: string,
@@ -67,15 +69,50 @@ const VideoCompressEventEmitter = new NativeEventEmitter(
67
69
 
68
70
  const NativeVideoCompressor = NativeModules.VideoCompressor;
69
71
 
72
+ export const backgroundUpload = async (
73
+ url: string,
74
+ fileUrl: string,
75
+ options: FileSystemUploadOptions,
76
+ onProgress?: (writtem: number, total: number) => void
77
+ ): Promise<any> => {
78
+ const uuid = uuidv4();
79
+ let subscription = null;
80
+ try {
81
+ if (onProgress) {
82
+ subscription = VideoCompressEventEmitter.addListener(
83
+ 'VideoCompressorProgress',
84
+ (event: any) => {
85
+ if (event.uuid === uuid) {
86
+ onProgress(event.data.written, event.data.total);
87
+ }
88
+ }
89
+ );
90
+ }
91
+ if (Platform.OS === 'android' && fileUrl.includes('file://')) {
92
+ fileUrl = fileUrl.replace('file://', '');
93
+ }
94
+ const result = await NativeVideoCompressor.upload(fileUrl, {
95
+ uuid,
96
+ method: options.httpMethod,
97
+ headers: options.headers,
98
+ url,
99
+ });
100
+ return result;
101
+ } finally {
102
+ if (subscription) {
103
+ VideoCompressEventEmitter.removeSubscription(subscription);
104
+ }
105
+ }
106
+ };
107
+
108
+ export const cancelCompression = (cancellationId: string) => {
109
+ return NativeVideoCompressor.cancelCompression(cancellationId);
110
+ };
111
+
70
112
  const Video: VideoCompressorType = {
71
113
  compress: async (
72
114
  fileUrl: string,
73
- options?: {
74
- bitrate?: number;
75
- compressionMethod?: compressionMethod;
76
- maxSize?: number;
77
- minimumFileSizeForCompress?: number;
78
- },
115
+ options?: videoCompresssionType,
79
116
  onProgress?: (progress: number) => void
80
117
  ) => {
81
118
  const uuid = uuidv4();
@@ -113,6 +150,9 @@ const Video: VideoCompressorType = {
113
150
  modifiedOptions.minimumFileSizeForCompress =
114
151
  options?.minimumFileSizeForCompress;
115
152
  }
153
+ if (options?.getCancellationId) {
154
+ options?.getCancellationId(uuid);
155
+ }
116
156
  const result = await NativeVideoCompressor.compress(
117
157
  fileUrl,
118
158
  modifiedOptions
@@ -124,36 +164,8 @@ const Video: VideoCompressorType = {
124
164
  }
125
165
  }
126
166
  },
127
- backgroundUpload: async (url, fileUrl, options, onProgress) => {
128
- const uuid = uuidv4();
129
- let subscription = null;
130
- try {
131
- if (onProgress) {
132
- subscription = VideoCompressEventEmitter.addListener(
133
- 'VideoCompressorProgress',
134
- (event: any) => {
135
- if (event.uuid === uuid) {
136
- onProgress(event.data.written, event.data.total);
137
- }
138
- }
139
- );
140
- }
141
- if (Platform.OS === 'android' && fileUrl.includes('file://')) {
142
- fileUrl = fileUrl.replace('file://', '');
143
- }
144
- const result = await NativeVideoCompressor.upload(fileUrl, {
145
- uuid,
146
- method: options.httpMethod,
147
- headers: options.headers,
148
- url,
149
- });
150
- return result;
151
- } finally {
152
- if (subscription) {
153
- VideoCompressEventEmitter.removeSubscription(subscription);
154
- }
155
- }
156
- },
167
+ backgroundUpload: backgroundUpload,
168
+ cancelCompression,
157
169
  activateBackgroundTask(onExpired?) {
158
170
  if (onExpired) {
159
171
  const subscription = VideoCompressEventEmitter.addListener(
@@ -1,13 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.annotation:annotation:1.0.0">
3
- <CLASSES>
4
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.0.0/45599f2cd5965ac05a1488fa2a5c0cdd7c499ead/annotation-1.0.0.jar!/" />
5
- </CLASSES>
6
- <JAVADOC>
7
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.0.0/3ad9d83e5da3918fd93775080f401222f2d4d26a/annotation-1.0.0-javadoc.jar!/" />
8
- </JAVADOC>
9
- <SOURCES>
10
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.0.0/c5897dbbda33e66ca6f3224a2534891bbfcbda5a/annotation-1.0.0-sources.jar!/" />
11
- </SOURCES>
12
- </library>
13
- </component>
@@ -1,20 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.core:core:1.0.1@aar">
3
- <ANNOTATIONS>
4
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/72e23efd7c231bfbde600330f21b626b/core-1.0.1/annotations.zip!/" />
5
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f2d424e161909cc78a47bc198ec6c153/core-1.0.1/annotations.zip!/" />
6
- </ANNOTATIONS>
7
- <CLASSES>
8
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/72e23efd7c231bfbde600330f21b626b/core-1.0.1/res" />
9
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/72e23efd7c231bfbde600330f21b626b/core-1.0.1/AndroidManifest.xml" />
10
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/72e23efd7c231bfbde600330f21b626b/core-1.0.1/jars/classes.jar!/" />
11
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f2d424e161909cc78a47bc198ec6c153/core-1.0.1/AndroidManifest.xml" />
12
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f2d424e161909cc78a47bc198ec6c153/core-1.0.1/jars/classes.jar!/" />
13
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f2d424e161909cc78a47bc198ec6c153/core-1.0.1/res" />
14
- </CLASSES>
15
- <JAVADOC />
16
- <SOURCES>
17
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.core/core/1.0.1/ae10d2e1965b944830c2c2aaf154765ceb32e0bc/core-1.0.1-sources.jar!/" />
18
- </SOURCES>
19
- </library>
20
- </component>
@@ -1,16 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.versionedparcelable:versionedparcelable:1.0.0@aar">
3
- <CLASSES>
4
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/18792893332f3f306e5a73b9074ea34a/versionedparcelable-1.0.0/res" />
5
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a16d9a484107f2ef4d0239df1e640149/versionedparcelable-1.0.0/jars/classes.jar!/" />
6
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a16d9a484107f2ef4d0239df1e640149/versionedparcelable-1.0.0/AndroidManifest.xml" />
7
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a16d9a484107f2ef4d0239df1e640149/versionedparcelable-1.0.0/res" />
8
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/18792893332f3f306e5a73b9074ea34a/versionedparcelable-1.0.0/AndroidManifest.xml" />
9
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/18792893332f3f306e5a73b9074ea34a/versionedparcelable-1.0.0/jars/classes.jar!/" />
10
- </CLASSES>
11
- <JAVADOC />
12
- <SOURCES>
13
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.versionedparcelable/versionedparcelable/1.0.0/df4c3c5d517f6a49017612e6b4dfdd007e7cc9b8/versionedparcelable-1.0.0-sources.jar!/" />
14
- </SOURCES>
15
- </library>
16
- </component>
@@ -1,13 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: com.facebook.fbjni:fbjni-java-only:0.0.3">
3
- <CLASSES>
4
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fbjni/fbjni-java-only/0.0.3/c4540aecb99b9ec380acef6c10bb6f700de8ac2c/fbjni-java-only-0.0.3.jar!/" />
5
- </CLASSES>
6
- <JAVADOC>
7
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fbjni/fbjni-java-only/0.0.3/968548ffa89f351bf709971f75eee154dcf085ab/fbjni-java-only-0.0.3-javadoc.jar!/" />
8
- </JAVADOC>
9
- <SOURCES>
10
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fbjni/fbjni-java-only/0.0.3/2a274312d2ca301c8282532dcaf4654ed7b6692/fbjni-java-only-0.0.3-sources.jar!/" />
11
- </SOURCES>
12
- </library>
13
- </component>
@@ -1,18 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: com.facebook.fresco:drawee:2.0.0@aar">
3
- <CLASSES>
4
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f0126cdedd26dcf8a6bfc612efabe47d/drawee-2.0.0/AndroidManifest.xml" />
5
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f0126cdedd26dcf8a6bfc612efabe47d/drawee-2.0.0/jars/classes.jar!/" />
6
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/f0126cdedd26dcf8a6bfc612efabe47d/drawee-2.0.0/res" />
7
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/299541486cee301ca253077b5332cbf9/drawee-2.0.0/res" />
8
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/299541486cee301ca253077b5332cbf9/drawee-2.0.0/jars/classes.jar!/" />
9
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/299541486cee301ca253077b5332cbf9/drawee-2.0.0/AndroidManifest.xml" />
10
- </CLASSES>
11
- <JAVADOC>
12
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/drawee/2.0.0/416ad28d3ec4edf504c4253b25dc27af1127872c/drawee-2.0.0-javadoc.jar!/" />
13
- </JAVADOC>
14
- <SOURCES>
15
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/drawee/2.0.0/fd8babf68363a8fb0585271b553e1d8537de137f/drawee-2.0.0-sources.jar!/" />
16
- </SOURCES>
17
- </library>
18
- </component>
@@ -1,22 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: com.facebook.fresco:fbcore:2.0.0@aar">
3
- <ANNOTATIONS>
4
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/292f691ae42284babe27a48e58f3c00c/fbcore-2.0.0/annotations.zip!/" />
5
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a3c0183cbeee9b5239a2eb7551f165d2/fbcore-2.0.0/annotations.zip!/" />
6
- </ANNOTATIONS>
7
- <CLASSES>
8
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a3c0183cbeee9b5239a2eb7551f165d2/fbcore-2.0.0/res" />
9
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/292f691ae42284babe27a48e58f3c00c/fbcore-2.0.0/AndroidManifest.xml" />
10
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/292f691ae42284babe27a48e58f3c00c/fbcore-2.0.0/res" />
11
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/292f691ae42284babe27a48e58f3c00c/fbcore-2.0.0/jars/classes.jar!/" />
12
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a3c0183cbeee9b5239a2eb7551f165d2/fbcore-2.0.0/AndroidManifest.xml" />
13
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/a3c0183cbeee9b5239a2eb7551f165d2/fbcore-2.0.0/jars/classes.jar!/" />
14
- </CLASSES>
15
- <JAVADOC>
16
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/fbcore/2.0.0/4c3bef1ba14c0daa24d8630cdaec88fa254c8c59/fbcore-2.0.0-javadoc.jar!/" />
17
- </JAVADOC>
18
- <SOURCES>
19
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/fbcore/2.0.0/63bfb99f5b76be2c561becd255d5a4aff49c5528/fbcore-2.0.0-sources.jar!/" />
20
- </SOURCES>
21
- </library>
22
- </component>
@@ -1,22 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: com.facebook.fresco:fresco:2.0.0@aar">
3
- <ANNOTATIONS>
4
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e19af412d9647b4ca2bf0cf80c637c71/fresco-2.0.0/annotations.zip!/" />
5
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/eca73a6e4c7444786a4400d1f30ec5fd/fresco-2.0.0/annotations.zip!/" />
6
- </ANNOTATIONS>
7
- <CLASSES>
8
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/eca73a6e4c7444786a4400d1f30ec5fd/fresco-2.0.0/res" />
9
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e19af412d9647b4ca2bf0cf80c637c71/fresco-2.0.0/AndroidManifest.xml" />
10
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e19af412d9647b4ca2bf0cf80c637c71/fresco-2.0.0/jars/classes.jar!/" />
11
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/e19af412d9647b4ca2bf0cf80c637c71/fresco-2.0.0/res" />
12
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/eca73a6e4c7444786a4400d1f30ec5fd/fresco-2.0.0/jars/classes.jar!/" />
13
- <root url="file://$USER_HOME$/.gradle/caches/transforms-2/files-2.1/eca73a6e4c7444786a4400d1f30ec5fd/fresco-2.0.0/AndroidManifest.xml" />
14
- </CLASSES>
15
- <JAVADOC>
16
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/fresco/2.0.0/e1bdf0d1daeed7b2af4d334ee012b81a2496ec93/fresco-2.0.0-javadoc.jar!/" />
17
- </JAVADOC>
18
- <SOURCES>
19
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/fresco/2.0.0/4fd7cb7438109299dd0175f2cbaa8d205d7ee78f/fresco-2.0.0-sources.jar!/" />
20
- </SOURCES>
21
- </library>
22
- </component>