react-native-video-trim 3.0.10 → 4.1.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 (92) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +80 -63
  3. package/VideoTrim.podspec +24 -0
  4. package/android/CMakeLists.txt +24 -0
  5. package/android/build.gradle +82 -49
  6. package/android/gradle.properties +7 -5
  7. package/android/src/main/AndroidManifest.xml +4 -2
  8. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  9. package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrim.kt +646 -0
  10. package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrimPackage.kt +22 -0
  11. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/enums/ErrorCode.java +1 -1
  12. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/interfaces/IVideoTrimmerView.java +1 -1
  13. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/interfaces/VideoTrimListener.java +6 -5
  14. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/MediaMetadataUtil.java +1 -1
  15. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/StorageUtil.java +3 -1
  16. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/VideoTrimmerUtil.java +51 -41
  17. package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/widgets/VideoTrimmerView.java +45 -69
  18. package/ios/AssetLoader.swift +2 -2
  19. package/ios/ErrorCode.swift +2 -2
  20. package/ios/ProgressAlertController.swift +2 -2
  21. package/ios/VideoTrim.swift +52 -835
  22. package/ios/VideoTrimImpl.swift +957 -0
  23. package/ios/VideoTrimmer.swift +2 -3
  24. package/ios/VideoTrimmerThumb.swift +33 -26
  25. package/ios/VideoTrimmerViewController.swift +47 -28
  26. package/lib/module/VideoTrim.nitro.js +4 -0
  27. package/lib/module/VideoTrim.nitro.js.map +1 -0
  28. package/lib/module/index.js +98 -22
  29. package/lib/module/index.js.map +1 -1
  30. package/lib/module/package.json +1 -0
  31. package/lib/typescript/package.json +1 -0
  32. package/lib/typescript/{index.d.ts → src/VideoTrim.nitro.d.ts} +125 -134
  33. package/lib/typescript/src/VideoTrim.nitro.d.ts.map +1 -0
  34. package/lib/typescript/src/index.d.ts +49 -0
  35. package/lib/typescript/src/index.d.ts.map +1 -0
  36. package/nitrogen/generated/android/c++/JEditorConfig.hpp +237 -0
  37. package/nitrogen/generated/android/c++/JFileValidationResult.hpp +61 -0
  38. package/nitrogen/generated/android/c++/JFunc_void.hpp +74 -0
  39. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__unordered_map_std__string__std__string_.hpp +89 -0
  40. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.cpp +151 -0
  41. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.hpp +68 -0
  42. package/nitrogen/generated/android/c++/JTrimOptions.hpp +109 -0
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/EditorConfig.kt +72 -0
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/FileValidationResult.kt +28 -0
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void.kt +80 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void_std__string_std__unordered_map_std__string__std__string_.kt +80 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/HybridVideoTrimSpec.kt +86 -0
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/TrimOptions.kt +40 -0
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/videotrimOnLoad.kt +35 -0
  50. package/nitrogen/generated/android/videotrim+autolinking.cmake +78 -0
  51. package/nitrogen/generated/android/videotrim+autolinking.gradle +27 -0
  52. package/nitrogen/generated/android/videotrimOnLoad.cpp +50 -0
  53. package/nitrogen/generated/android/videotrimOnLoad.hpp +25 -0
  54. package/nitrogen/generated/ios/VideoTrim+autolinking.rb +60 -0
  55. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.cpp +96 -0
  56. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.hpp +374 -0
  57. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Umbrella.hpp +56 -0
  58. package/nitrogen/generated/ios/VideoTrimAutolinking.mm +33 -0
  59. package/nitrogen/generated/ios/VideoTrimAutolinking.swift +25 -0
  60. package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.cpp +11 -0
  61. package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.hpp +127 -0
  62. package/nitrogen/generated/ios/swift/EditorConfig.swift +541 -0
  63. package/nitrogen/generated/ios/swift/FileValidationResult.swift +57 -0
  64. package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
  65. package/nitrogen/generated/ios/swift/Func_void_FileValidationResult.swift +46 -0
  66. package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
  67. package/nitrogen/generated/ios/swift/Func_void_double.swift +46 -0
  68. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
  69. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
  70. package/nitrogen/generated/ios/swift/Func_void_std__string_std__unordered_map_std__string__std__string_.swift +54 -0
  71. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +46 -0
  72. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec.swift +54 -0
  73. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec_cxx.swift +241 -0
  74. package/nitrogen/generated/ios/swift/TrimOptions.swift +189 -0
  75. package/nitrogen/generated/shared/c++/EditorConfig.hpp +253 -0
  76. package/nitrogen/generated/shared/c++/FileValidationResult.hpp +77 -0
  77. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.cpp +27 -0
  78. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.hpp +80 -0
  79. package/nitrogen/generated/shared/c++/TrimOptions.hpp +125 -0
  80. package/package.json +75 -71
  81. package/src/VideoTrim.nitro.ts +263 -0
  82. package/src/index.tsx +120 -257
  83. package/android/src/main/AndroidManifestDeprecated.xml +0 -3
  84. package/android/src/main/java/com/videotrim/VideoTrimModule.java +0 -603
  85. package/android/src/main/java/com/videotrim/VideoTrimPackage.java +0 -28
  86. package/ios/VideoTrim-Bridging-Header.h +0 -2
  87. package/ios/VideoTrim.mm +0 -17
  88. package/ios/VideoTrim.xcodeproj/project.pbxproj +0 -283
  89. package/lib/commonjs/index.js +0 -87
  90. package/lib/commonjs/index.js.map +0 -1
  91. package/lib/typescript/index.d.ts.map +0 -1
  92. package/react-native-video-trim.podspec +0 -43
@@ -0,0 +1,56 @@
1
+ ///
2
+ /// VideoTrim-Swift-Cxx-Umbrella.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ // Forward declarations of C++ defined types
11
+ // Forward declaration of `EditorConfig` to properly resolve imports.
12
+ namespace margelo::nitro::videotrim { struct EditorConfig; }
13
+ // Forward declaration of `FileValidationResult` to properly resolve imports.
14
+ namespace margelo::nitro::videotrim { struct FileValidationResult; }
15
+ // Forward declaration of `HybridVideoTrimSpec` to properly resolve imports.
16
+ namespace margelo::nitro::videotrim { class HybridVideoTrimSpec; }
17
+ // Forward declaration of `TrimOptions` to properly resolve imports.
18
+ namespace margelo::nitro::videotrim { struct TrimOptions; }
19
+
20
+ // Include C++ defined types
21
+ #include "EditorConfig.hpp"
22
+ #include "FileValidationResult.hpp"
23
+ #include "HybridVideoTrimSpec.hpp"
24
+ #include "TrimOptions.hpp"
25
+ #include <NitroModules/Promise.hpp>
26
+ #include <NitroModules/Result.hpp>
27
+ #include <exception>
28
+ #include <functional>
29
+ #include <memory>
30
+ #include <string>
31
+ #include <unordered_map>
32
+ #include <vector>
33
+
34
+ // C++ helpers for Swift
35
+ #include "VideoTrim-Swift-Cxx-Bridge.hpp"
36
+
37
+ // Common C++ types used in Swift
38
+ #include <NitroModules/ArrayBufferHolder.hpp>
39
+ #include <NitroModules/AnyMapHolder.hpp>
40
+ #include <NitroModules/RuntimeError.hpp>
41
+
42
+ // Forward declarations of Swift defined types
43
+ // Forward declaration of `HybridVideoTrimSpec_cxx` to properly resolve imports.
44
+ namespace VideoTrim { class HybridVideoTrimSpec_cxx; }
45
+
46
+ // Include Swift defined types
47
+ #if __has_include("VideoTrim-Swift.h")
48
+ // This header is generated by Xcode/Swift on every app build.
49
+ // If it cannot be found, make sure the Swift module's name (= podspec name) is actually "VideoTrim".
50
+ #include "VideoTrim-Swift.h"
51
+ // Same as above, but used when building with frameworks (`use_frameworks`)
52
+ #elif __has_include(<VideoTrim/VideoTrim-Swift.h>)
53
+ #include <VideoTrim/VideoTrim-Swift.h>
54
+ #else
55
+ #error VideoTrim's autogenerated Swift header cannot be found! Make sure the Swift module's name (= podspec name) is actually "VideoTrim", and try building the app first.
56
+ #endif
@@ -0,0 +1,33 @@
1
+ ///
2
+ /// VideoTrimAutolinking.mm
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #import <Foundation/Foundation.h>
9
+ #import <NitroModules/HybridObjectRegistry.hpp>
10
+ #import "VideoTrim-Swift-Cxx-Umbrella.hpp"
11
+ #import <type_traits>
12
+
13
+ #include "HybridVideoTrimSpecSwift.hpp"
14
+
15
+ @interface VideoTrimAutolinking : NSObject
16
+ @end
17
+
18
+ @implementation VideoTrimAutolinking
19
+
20
+ + (void) load {
21
+ using namespace margelo::nitro;
22
+ using namespace margelo::nitro::videotrim;
23
+
24
+ HybridObjectRegistry::registerHybridObjectConstructor(
25
+ "VideoTrim",
26
+ []() -> std::shared_ptr<HybridObject> {
27
+ std::shared_ptr<margelo::nitro::videotrim::HybridVideoTrimSpec> hybridObject = VideoTrim::VideoTrimAutolinking::createVideoTrim();
28
+ return hybridObject;
29
+ }
30
+ );
31
+ }
32
+
33
+ @end
@@ -0,0 +1,25 @@
1
+ ///
2
+ /// VideoTrimAutolinking.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ public final class VideoTrimAutolinking {
9
+ public typealias bridge = margelo.nitro.videotrim.bridge.swift
10
+
11
+ /**
12
+ * Creates an instance of a Swift class that implements `HybridVideoTrimSpec`,
13
+ * and wraps it in a Swift class that can directly interop with C++ (`HybridVideoTrimSpec_cxx`)
14
+ *
15
+ * This is generated by Nitrogen and will initialize the class specified
16
+ * in the `"autolinking"` property of `nitro.json` (in this case, `VideoTrim`).
17
+ */
18
+ public static func createVideoTrim() -> bridge.std__shared_ptr_margelo__nitro__videotrim__HybridVideoTrimSpec_ {
19
+ let hybridObject = VideoTrim()
20
+ return { () -> bridge.std__shared_ptr_margelo__nitro__videotrim__HybridVideoTrimSpec_ in
21
+ let __cxxWrapped = hybridObject.getCxxWrapper()
22
+ return __cxxWrapped.getCxxPart()
23
+ }()
24
+ }
25
+ }
@@ -0,0 +1,11 @@
1
+ ///
2
+ /// HybridVideoTrimSpecSwift.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "HybridVideoTrimSpecSwift.hpp"
9
+
10
+ namespace margelo::nitro::videotrim {
11
+ } // namespace margelo::nitro::videotrim
@@ -0,0 +1,127 @@
1
+ ///
2
+ /// HybridVideoTrimSpecSwift.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include "HybridVideoTrimSpec.hpp"
11
+
12
+ // Forward declaration of `HybridVideoTrimSpec_cxx` to properly resolve imports.
13
+ namespace VideoTrim { class HybridVideoTrimSpec_cxx; }
14
+
15
+ // Forward declaration of `EditorConfig` to properly resolve imports.
16
+ namespace margelo::nitro::videotrim { struct EditorConfig; }
17
+ // Forward declaration of `FileValidationResult` to properly resolve imports.
18
+ namespace margelo::nitro::videotrim { struct FileValidationResult; }
19
+ // Forward declaration of `TrimOptions` to properly resolve imports.
20
+ namespace margelo::nitro::videotrim { struct TrimOptions; }
21
+
22
+ #include <string>
23
+ #include "EditorConfig.hpp"
24
+ #include <functional>
25
+ #include <unordered_map>
26
+ #include <NitroModules/Promise.hpp>
27
+ #include <vector>
28
+ #include "FileValidationResult.hpp"
29
+ #include "TrimOptions.hpp"
30
+
31
+ #include "VideoTrim-Swift-Cxx-Umbrella.hpp"
32
+
33
+ namespace margelo::nitro::videotrim {
34
+
35
+ /**
36
+ * The C++ part of HybridVideoTrimSpec_cxx.swift.
37
+ *
38
+ * HybridVideoTrimSpecSwift (C++) accesses HybridVideoTrimSpec_cxx (Swift), and might
39
+ * contain some additional bridging code for C++ <> Swift interop.
40
+ *
41
+ * Since this obviously introduces an overhead, I hope at some point in
42
+ * the future, HybridVideoTrimSpec_cxx can directly inherit from the C++ class HybridVideoTrimSpec
43
+ * to simplify the whole structure and memory management.
44
+ */
45
+ class HybridVideoTrimSpecSwift: public virtual HybridVideoTrimSpec {
46
+ public:
47
+ // Constructor from a Swift instance
48
+ explicit HybridVideoTrimSpecSwift(const VideoTrim::HybridVideoTrimSpec_cxx& swiftPart):
49
+ HybridObject(HybridVideoTrimSpec::TAG),
50
+ _swiftPart(swiftPart) { }
51
+
52
+ public:
53
+ // Get the Swift part
54
+ inline VideoTrim::HybridVideoTrimSpec_cxx& getSwiftPart() noexcept {
55
+ return _swiftPart;
56
+ }
57
+
58
+ public:
59
+ // Get memory pressure
60
+ inline size_t getExternalMemorySize() noexcept override {
61
+ return _swiftPart.getMemorySize();
62
+ }
63
+
64
+ public:
65
+ // Properties
66
+
67
+
68
+ public:
69
+ // Methods
70
+ inline void showEditor(const std::string& filePath, const EditorConfig& config, const std::function<void(const std::string& /* eventName */, const std::unordered_map<std::string, std::string>& /* payload */)>& onEvent) override {
71
+ auto __result = _swiftPart.showEditor(filePath, config, onEvent);
72
+ if (__result.hasError()) [[unlikely]] {
73
+ std::rethrow_exception(__result.error());
74
+ }
75
+ }
76
+ inline std::shared_ptr<Promise<std::vector<std::string>>> listFiles() override {
77
+ auto __result = _swiftPart.listFiles();
78
+ if (__result.hasError()) [[unlikely]] {
79
+ std::rethrow_exception(__result.error());
80
+ }
81
+ auto __value = std::move(__result.value());
82
+ return __value;
83
+ }
84
+ inline std::shared_ptr<Promise<double>> cleanFiles() override {
85
+ auto __result = _swiftPart.cleanFiles();
86
+ if (__result.hasError()) [[unlikely]] {
87
+ std::rethrow_exception(__result.error());
88
+ }
89
+ auto __value = std::move(__result.value());
90
+ return __value;
91
+ }
92
+ inline std::shared_ptr<Promise<bool>> deleteFile(const std::string& filePath) override {
93
+ auto __result = _swiftPart.deleteFile(filePath);
94
+ if (__result.hasError()) [[unlikely]] {
95
+ std::rethrow_exception(__result.error());
96
+ }
97
+ auto __value = std::move(__result.value());
98
+ return __value;
99
+ }
100
+ inline void closeEditor(const std::function<void()>& onComplete) override {
101
+ auto __result = _swiftPart.closeEditor(onComplete);
102
+ if (__result.hasError()) [[unlikely]] {
103
+ std::rethrow_exception(__result.error());
104
+ }
105
+ }
106
+ inline std::shared_ptr<Promise<FileValidationResult>> isValidFile(const std::string& url) override {
107
+ auto __result = _swiftPart.isValidFile(url);
108
+ if (__result.hasError()) [[unlikely]] {
109
+ std::rethrow_exception(__result.error());
110
+ }
111
+ auto __value = std::move(__result.value());
112
+ return __value;
113
+ }
114
+ inline std::shared_ptr<Promise<std::string>> trim(const std::string& url, const TrimOptions& options) override {
115
+ auto __result = _swiftPart.trim(url, options);
116
+ if (__result.hasError()) [[unlikely]] {
117
+ std::rethrow_exception(__result.error());
118
+ }
119
+ auto __value = std::move(__result.value());
120
+ return __value;
121
+ }
122
+
123
+ private:
124
+ VideoTrim::HybridVideoTrimSpec_cxx _swiftPart;
125
+ };
126
+
127
+ } // namespace margelo::nitro::videotrim