react-native-video-trim 4.0.0 → 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 (38) hide show
  1. package/README.md +36 -8
  2. package/VideoTrim.podspec +1 -1
  3. package/android/build.gradle +9 -1
  4. package/android/gradle.properties +2 -0
  5. package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrim.kt +138 -121
  6. package/android/src/main/java/com/margelo/nitro/videotrim/utils/VideoTrimmerUtil.java +29 -21
  7. package/android/src/main/java/com/margelo/nitro/videotrim/widgets/VideoTrimmerView.java +10 -6
  8. package/ios/VideoTrim.swift +7 -0
  9. package/ios/VideoTrimImpl.swift +221 -124
  10. package/lib/module/index.js +38 -11
  11. package/lib/module/index.js.map +1 -1
  12. package/lib/typescript/src/VideoTrim.nitro.d.ts +74 -57
  13. package/lib/typescript/src/VideoTrim.nitro.d.ts.map +1 -1
  14. package/lib/typescript/src/index.d.ts +9 -1
  15. package/lib/typescript/src/index.d.ts.map +1 -1
  16. package/nitrogen/generated/android/c++/JEditorConfig.hpp +54 -46
  17. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.cpp +20 -0
  18. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.hpp +1 -0
  19. package/nitrogen/generated/android/c++/JTrimOptions.hpp +109 -0
  20. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/EditorConfig.kt +14 -12
  21. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/HybridVideoTrimSpec.kt +4 -0
  22. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/TrimOptions.kt +40 -0
  23. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.cpp +8 -0
  24. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.hpp +43 -0
  25. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Umbrella.hpp +3 -0
  26. package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.hpp +11 -0
  27. package/nitrogen/generated/ios/swift/EditorConfig.swift +116 -94
  28. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
  29. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec.swift +1 -0
  30. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec_cxx.swift +19 -0
  31. package/nitrogen/generated/ios/swift/TrimOptions.swift +189 -0
  32. package/nitrogen/generated/shared/c++/EditorConfig.hpp +54 -46
  33. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.cpp +1 -0
  34. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.hpp +4 -0
  35. package/nitrogen/generated/shared/c++/TrimOptions.hpp +125 -0
  36. package/package.json +1 -1
  37. package/src/VideoTrim.nitro.ts +76 -57
  38. package/src/index.tsx +45 -11
@@ -0,0 +1,189 @@
1
+ ///
2
+ /// TrimOptions.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
+ import NitroModules
9
+
10
+ /**
11
+ * Represents an instance of `TrimOptions`, backed by a C++ struct.
12
+ */
13
+ public typealias TrimOptions = margelo.nitro.videotrim.TrimOptions
14
+
15
+ public extension TrimOptions {
16
+ private typealias bridge = margelo.nitro.videotrim.bridge.swift
17
+
18
+ /**
19
+ * Create a new instance of `TrimOptions`.
20
+ */
21
+ init(startTime: Double, endTime: Double, saveToPhoto: Bool, type: String, outputExt: String, openDocumentsOnFinish: Bool, openShareSheetOnFinish: Bool, removeAfterSavedToPhoto: Bool, removeAfterFailedToSavePhoto: Bool, removeAfterSavedToDocuments: Bool, removeAfterFailedToSaveDocuments: Bool, removeAfterShared: Bool, removeAfterFailedToShare: Bool, enableRotation: Bool, rotationAngle: Double) {
22
+ self.init(startTime, endTime, saveToPhoto, std.string(type), std.string(outputExt), openDocumentsOnFinish, openShareSheetOnFinish, removeAfterSavedToPhoto, removeAfterFailedToSavePhoto, removeAfterSavedToDocuments, removeAfterFailedToSaveDocuments, removeAfterShared, removeAfterFailedToShare, enableRotation, rotationAngle)
23
+ }
24
+
25
+ var startTime: Double {
26
+ @inline(__always)
27
+ get {
28
+ return self.__startTime
29
+ }
30
+ @inline(__always)
31
+ set {
32
+ self.__startTime = newValue
33
+ }
34
+ }
35
+
36
+ var endTime: Double {
37
+ @inline(__always)
38
+ get {
39
+ return self.__endTime
40
+ }
41
+ @inline(__always)
42
+ set {
43
+ self.__endTime = newValue
44
+ }
45
+ }
46
+
47
+ var saveToPhoto: Bool {
48
+ @inline(__always)
49
+ get {
50
+ return self.__saveToPhoto
51
+ }
52
+ @inline(__always)
53
+ set {
54
+ self.__saveToPhoto = newValue
55
+ }
56
+ }
57
+
58
+ var type: String {
59
+ @inline(__always)
60
+ get {
61
+ return String(self.__type)
62
+ }
63
+ @inline(__always)
64
+ set {
65
+ self.__type = std.string(newValue)
66
+ }
67
+ }
68
+
69
+ var outputExt: String {
70
+ @inline(__always)
71
+ get {
72
+ return String(self.__outputExt)
73
+ }
74
+ @inline(__always)
75
+ set {
76
+ self.__outputExt = std.string(newValue)
77
+ }
78
+ }
79
+
80
+ var openDocumentsOnFinish: Bool {
81
+ @inline(__always)
82
+ get {
83
+ return self.__openDocumentsOnFinish
84
+ }
85
+ @inline(__always)
86
+ set {
87
+ self.__openDocumentsOnFinish = newValue
88
+ }
89
+ }
90
+
91
+ var openShareSheetOnFinish: Bool {
92
+ @inline(__always)
93
+ get {
94
+ return self.__openShareSheetOnFinish
95
+ }
96
+ @inline(__always)
97
+ set {
98
+ self.__openShareSheetOnFinish = newValue
99
+ }
100
+ }
101
+
102
+ var removeAfterSavedToPhoto: Bool {
103
+ @inline(__always)
104
+ get {
105
+ return self.__removeAfterSavedToPhoto
106
+ }
107
+ @inline(__always)
108
+ set {
109
+ self.__removeAfterSavedToPhoto = newValue
110
+ }
111
+ }
112
+
113
+ var removeAfterFailedToSavePhoto: Bool {
114
+ @inline(__always)
115
+ get {
116
+ return self.__removeAfterFailedToSavePhoto
117
+ }
118
+ @inline(__always)
119
+ set {
120
+ self.__removeAfterFailedToSavePhoto = newValue
121
+ }
122
+ }
123
+
124
+ var removeAfterSavedToDocuments: Bool {
125
+ @inline(__always)
126
+ get {
127
+ return self.__removeAfterSavedToDocuments
128
+ }
129
+ @inline(__always)
130
+ set {
131
+ self.__removeAfterSavedToDocuments = newValue
132
+ }
133
+ }
134
+
135
+ var removeAfterFailedToSaveDocuments: Bool {
136
+ @inline(__always)
137
+ get {
138
+ return self.__removeAfterFailedToSaveDocuments
139
+ }
140
+ @inline(__always)
141
+ set {
142
+ self.__removeAfterFailedToSaveDocuments = newValue
143
+ }
144
+ }
145
+
146
+ var removeAfterShared: Bool {
147
+ @inline(__always)
148
+ get {
149
+ return self.__removeAfterShared
150
+ }
151
+ @inline(__always)
152
+ set {
153
+ self.__removeAfterShared = newValue
154
+ }
155
+ }
156
+
157
+ var removeAfterFailedToShare: Bool {
158
+ @inline(__always)
159
+ get {
160
+ return self.__removeAfterFailedToShare
161
+ }
162
+ @inline(__always)
163
+ set {
164
+ self.__removeAfterFailedToShare = newValue
165
+ }
166
+ }
167
+
168
+ var enableRotation: Bool {
169
+ @inline(__always)
170
+ get {
171
+ return self.__enableRotation
172
+ }
173
+ @inline(__always)
174
+ set {
175
+ self.__enableRotation = newValue
176
+ }
177
+ }
178
+
179
+ var rotationAngle: Double {
180
+ @inline(__always)
181
+ get {
182
+ return self.__rotationAngle
183
+ }
184
+ @inline(__always)
185
+ set {
186
+ self.__rotationAngle = newValue
187
+ }
188
+ }
189
+ }
@@ -30,7 +30,6 @@ namespace margelo::nitro::videotrim {
30
30
  struct EditorConfig {
31
31
  public:
32
32
  bool enableHapticFeedback SWIFT_PRIVATE;
33
- bool saveToPhoto SWIFT_PRIVATE;
34
33
  double maxDuration SWIFT_PRIVATE;
35
34
  double minDuration SWIFT_PRIVATE;
36
35
  std::string cancelButtonText SWIFT_PRIVATE;
@@ -47,16 +46,6 @@ namespace margelo::nitro::videotrim {
47
46
  std::string saveDialogConfirmText SWIFT_PRIVATE;
48
47
  std::string trimmingText SWIFT_PRIVATE;
49
48
  bool fullScreenModalIOS SWIFT_PRIVATE;
50
- std::string type SWIFT_PRIVATE;
51
- std::string outputExt SWIFT_PRIVATE;
52
- bool openDocumentsOnFinish SWIFT_PRIVATE;
53
- bool openShareSheetOnFinish SWIFT_PRIVATE;
54
- bool removeAfterSavedToPhoto SWIFT_PRIVATE;
55
- bool removeAfterFailedToSavePhoto SWIFT_PRIVATE;
56
- bool removeAfterSavedToDocuments SWIFT_PRIVATE;
57
- bool removeAfterFailedToSaveDocuments SWIFT_PRIVATE;
58
- bool removeAfterShared SWIFT_PRIVATE;
59
- bool removeAfterFailedToShare SWIFT_PRIVATE;
60
49
  bool autoplay SWIFT_PRIVATE;
61
50
  double jumpToPositionOnLoad SWIFT_PRIVATE;
62
51
  bool closeWhenFinish SWIFT_PRIVATE;
@@ -74,10 +63,23 @@ namespace margelo::nitro::videotrim {
74
63
  std::string alertOnFailTitle SWIFT_PRIVATE;
75
64
  std::string alertOnFailMessage SWIFT_PRIVATE;
76
65
  std::string alertOnFailCloseText SWIFT_PRIVATE;
66
+ bool saveToPhoto SWIFT_PRIVATE;
67
+ std::string type SWIFT_PRIVATE;
68
+ std::string outputExt SWIFT_PRIVATE;
69
+ bool openDocumentsOnFinish SWIFT_PRIVATE;
70
+ bool openShareSheetOnFinish SWIFT_PRIVATE;
71
+ bool removeAfterSavedToPhoto SWIFT_PRIVATE;
72
+ bool removeAfterFailedToSavePhoto SWIFT_PRIVATE;
73
+ bool removeAfterSavedToDocuments SWIFT_PRIVATE;
74
+ bool removeAfterFailedToSaveDocuments SWIFT_PRIVATE;
75
+ bool removeAfterShared SWIFT_PRIVATE;
76
+ bool removeAfterFailedToShare SWIFT_PRIVATE;
77
+ bool enableRotation SWIFT_PRIVATE;
78
+ double rotationAngle SWIFT_PRIVATE;
77
79
 
78
80
  public:
79
81
  EditorConfig() = default;
80
- explicit EditorConfig(bool enableHapticFeedback, bool saveToPhoto, double maxDuration, double minDuration, std::string cancelButtonText, std::string saveButtonText, bool enableCancelDialog, std::string cancelDialogTitle, std::string cancelDialogMessage, std::string cancelDialogCancelText, std::string cancelDialogConfirmText, bool enableSaveDialog, std::string saveDialogTitle, std::string saveDialogMessage, std::string saveDialogCancelText, std::string saveDialogConfirmText, std::string trimmingText, bool fullScreenModalIOS, std::string type, std::string outputExt, bool openDocumentsOnFinish, bool openShareSheetOnFinish, bool removeAfterSavedToPhoto, bool removeAfterFailedToSavePhoto, bool removeAfterSavedToDocuments, bool removeAfterFailedToSaveDocuments, bool removeAfterShared, bool removeAfterFailedToShare, bool autoplay, double jumpToPositionOnLoad, bool closeWhenFinish, bool enableCancelTrimming, std::string cancelTrimmingButtonText, bool enableCancelTrimmingDialog, std::string cancelTrimmingDialogTitle, std::string cancelTrimmingDialogMessage, std::string cancelTrimmingDialogCancelText, std::string cancelTrimmingDialogConfirmText, std::string headerText, double headerTextSize, double headerTextColor, bool alertOnFailToLoad, std::string alertOnFailTitle, std::string alertOnFailMessage, std::string alertOnFailCloseText): enableHapticFeedback(enableHapticFeedback), saveToPhoto(saveToPhoto), maxDuration(maxDuration), minDuration(minDuration), cancelButtonText(cancelButtonText), saveButtonText(saveButtonText), enableCancelDialog(enableCancelDialog), cancelDialogTitle(cancelDialogTitle), cancelDialogMessage(cancelDialogMessage), cancelDialogCancelText(cancelDialogCancelText), cancelDialogConfirmText(cancelDialogConfirmText), enableSaveDialog(enableSaveDialog), saveDialogTitle(saveDialogTitle), saveDialogMessage(saveDialogMessage), saveDialogCancelText(saveDialogCancelText), saveDialogConfirmText(saveDialogConfirmText), trimmingText(trimmingText), fullScreenModalIOS(fullScreenModalIOS), type(type), outputExt(outputExt), openDocumentsOnFinish(openDocumentsOnFinish), openShareSheetOnFinish(openShareSheetOnFinish), removeAfterSavedToPhoto(removeAfterSavedToPhoto), removeAfterFailedToSavePhoto(removeAfterFailedToSavePhoto), removeAfterSavedToDocuments(removeAfterSavedToDocuments), removeAfterFailedToSaveDocuments(removeAfterFailedToSaveDocuments), removeAfterShared(removeAfterShared), removeAfterFailedToShare(removeAfterFailedToShare), autoplay(autoplay), jumpToPositionOnLoad(jumpToPositionOnLoad), closeWhenFinish(closeWhenFinish), enableCancelTrimming(enableCancelTrimming), cancelTrimmingButtonText(cancelTrimmingButtonText), enableCancelTrimmingDialog(enableCancelTrimmingDialog), cancelTrimmingDialogTitle(cancelTrimmingDialogTitle), cancelTrimmingDialogMessage(cancelTrimmingDialogMessage), cancelTrimmingDialogCancelText(cancelTrimmingDialogCancelText), cancelTrimmingDialogConfirmText(cancelTrimmingDialogConfirmText), headerText(headerText), headerTextSize(headerTextSize), headerTextColor(headerTextColor), alertOnFailToLoad(alertOnFailToLoad), alertOnFailTitle(alertOnFailTitle), alertOnFailMessage(alertOnFailMessage), alertOnFailCloseText(alertOnFailCloseText) {}
82
+ explicit EditorConfig(bool enableHapticFeedback, double maxDuration, double minDuration, std::string cancelButtonText, std::string saveButtonText, bool enableCancelDialog, std::string cancelDialogTitle, std::string cancelDialogMessage, std::string cancelDialogCancelText, std::string cancelDialogConfirmText, bool enableSaveDialog, std::string saveDialogTitle, std::string saveDialogMessage, std::string saveDialogCancelText, std::string saveDialogConfirmText, std::string trimmingText, bool fullScreenModalIOS, bool autoplay, double jumpToPositionOnLoad, bool closeWhenFinish, bool enableCancelTrimming, std::string cancelTrimmingButtonText, bool enableCancelTrimmingDialog, std::string cancelTrimmingDialogTitle, std::string cancelTrimmingDialogMessage, std::string cancelTrimmingDialogCancelText, std::string cancelTrimmingDialogConfirmText, std::string headerText, double headerTextSize, double headerTextColor, bool alertOnFailToLoad, std::string alertOnFailTitle, std::string alertOnFailMessage, std::string alertOnFailCloseText, bool saveToPhoto, std::string type, std::string outputExt, bool openDocumentsOnFinish, bool openShareSheetOnFinish, bool removeAfterSavedToPhoto, bool removeAfterFailedToSavePhoto, bool removeAfterSavedToDocuments, bool removeAfterFailedToSaveDocuments, bool removeAfterShared, bool removeAfterFailedToShare, bool enableRotation, double rotationAngle): enableHapticFeedback(enableHapticFeedback), maxDuration(maxDuration), minDuration(minDuration), cancelButtonText(cancelButtonText), saveButtonText(saveButtonText), enableCancelDialog(enableCancelDialog), cancelDialogTitle(cancelDialogTitle), cancelDialogMessage(cancelDialogMessage), cancelDialogCancelText(cancelDialogCancelText), cancelDialogConfirmText(cancelDialogConfirmText), enableSaveDialog(enableSaveDialog), saveDialogTitle(saveDialogTitle), saveDialogMessage(saveDialogMessage), saveDialogCancelText(saveDialogCancelText), saveDialogConfirmText(saveDialogConfirmText), trimmingText(trimmingText), fullScreenModalIOS(fullScreenModalIOS), autoplay(autoplay), jumpToPositionOnLoad(jumpToPositionOnLoad), closeWhenFinish(closeWhenFinish), enableCancelTrimming(enableCancelTrimming), cancelTrimmingButtonText(cancelTrimmingButtonText), enableCancelTrimmingDialog(enableCancelTrimmingDialog), cancelTrimmingDialogTitle(cancelTrimmingDialogTitle), cancelTrimmingDialogMessage(cancelTrimmingDialogMessage), cancelTrimmingDialogCancelText(cancelTrimmingDialogCancelText), cancelTrimmingDialogConfirmText(cancelTrimmingDialogConfirmText), headerText(headerText), headerTextSize(headerTextSize), headerTextColor(headerTextColor), alertOnFailToLoad(alertOnFailToLoad), alertOnFailTitle(alertOnFailTitle), alertOnFailMessage(alertOnFailMessage), alertOnFailCloseText(alertOnFailCloseText), saveToPhoto(saveToPhoto), type(type), outputExt(outputExt), openDocumentsOnFinish(openDocumentsOnFinish), openShareSheetOnFinish(openShareSheetOnFinish), removeAfterSavedToPhoto(removeAfterSavedToPhoto), removeAfterFailedToSavePhoto(removeAfterFailedToSavePhoto), removeAfterSavedToDocuments(removeAfterSavedToDocuments), removeAfterFailedToSaveDocuments(removeAfterFailedToSaveDocuments), removeAfterShared(removeAfterShared), removeAfterFailedToShare(removeAfterFailedToShare), enableRotation(enableRotation), rotationAngle(rotationAngle) {}
81
83
  };
82
84
 
83
85
  } // namespace margelo::nitro::videotrim
@@ -93,7 +95,6 @@ namespace margelo::nitro {
93
95
  jsi::Object obj = arg.asObject(runtime);
94
96
  return EditorConfig(
95
97
  JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "enableHapticFeedback")),
96
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "saveToPhoto")),
97
98
  JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "maxDuration")),
98
99
  JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "minDuration")),
99
100
  JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "cancelButtonText")),
@@ -110,16 +111,6 @@ namespace margelo::nitro {
110
111
  JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "saveDialogConfirmText")),
111
112
  JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "trimmingText")),
112
113
  JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "fullScreenModalIOS")),
113
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "type")),
114
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "outputExt")),
115
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openDocumentsOnFinish")),
116
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openShareSheetOnFinish")),
117
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto")),
118
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto")),
119
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments")),
120
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments")),
121
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterShared")),
122
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToShare")),
123
114
  JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "autoplay")),
124
115
  JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "jumpToPositionOnLoad")),
125
116
  JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "closeWhenFinish")),
@@ -136,13 +127,25 @@ namespace margelo::nitro {
136
127
  JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailToLoad")),
137
128
  JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailTitle")),
138
129
  JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailMessage")),
139
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailCloseText"))
130
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailCloseText")),
131
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "saveToPhoto")),
132
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "type")),
133
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "outputExt")),
134
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openDocumentsOnFinish")),
135
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openShareSheetOnFinish")),
136
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto")),
137
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto")),
138
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments")),
139
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments")),
140
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterShared")),
141
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToShare")),
142
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "enableRotation")),
143
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "rotationAngle"))
140
144
  );
141
145
  }
142
146
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const EditorConfig& arg) {
143
147
  jsi::Object obj(runtime);
144
148
  obj.setProperty(runtime, "enableHapticFeedback", JSIConverter<bool>::toJSI(runtime, arg.enableHapticFeedback));
145
- obj.setProperty(runtime, "saveToPhoto", JSIConverter<bool>::toJSI(runtime, arg.saveToPhoto));
146
149
  obj.setProperty(runtime, "maxDuration", JSIConverter<double>::toJSI(runtime, arg.maxDuration));
147
150
  obj.setProperty(runtime, "minDuration", JSIConverter<double>::toJSI(runtime, arg.minDuration));
148
151
  obj.setProperty(runtime, "cancelButtonText", JSIConverter<std::string>::toJSI(runtime, arg.cancelButtonText));
@@ -159,16 +162,6 @@ namespace margelo::nitro {
159
162
  obj.setProperty(runtime, "saveDialogConfirmText", JSIConverter<std::string>::toJSI(runtime, arg.saveDialogConfirmText));
160
163
  obj.setProperty(runtime, "trimmingText", JSIConverter<std::string>::toJSI(runtime, arg.trimmingText));
161
164
  obj.setProperty(runtime, "fullScreenModalIOS", JSIConverter<bool>::toJSI(runtime, arg.fullScreenModalIOS));
162
- obj.setProperty(runtime, "type", JSIConverter<std::string>::toJSI(runtime, arg.type));
163
- obj.setProperty(runtime, "outputExt", JSIConverter<std::string>::toJSI(runtime, arg.outputExt));
164
- obj.setProperty(runtime, "openDocumentsOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openDocumentsOnFinish));
165
- obj.setProperty(runtime, "openShareSheetOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openShareSheetOnFinish));
166
- obj.setProperty(runtime, "removeAfterSavedToPhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToPhoto));
167
- obj.setProperty(runtime, "removeAfterFailedToSavePhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSavePhoto));
168
- obj.setProperty(runtime, "removeAfterSavedToDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToDocuments));
169
- obj.setProperty(runtime, "removeAfterFailedToSaveDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSaveDocuments));
170
- obj.setProperty(runtime, "removeAfterShared", JSIConverter<bool>::toJSI(runtime, arg.removeAfterShared));
171
- obj.setProperty(runtime, "removeAfterFailedToShare", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToShare));
172
165
  obj.setProperty(runtime, "autoplay", JSIConverter<bool>::toJSI(runtime, arg.autoplay));
173
166
  obj.setProperty(runtime, "jumpToPositionOnLoad", JSIConverter<double>::toJSI(runtime, arg.jumpToPositionOnLoad));
174
167
  obj.setProperty(runtime, "closeWhenFinish", JSIConverter<bool>::toJSI(runtime, arg.closeWhenFinish));
@@ -186,6 +179,19 @@ namespace margelo::nitro {
186
179
  obj.setProperty(runtime, "alertOnFailTitle", JSIConverter<std::string>::toJSI(runtime, arg.alertOnFailTitle));
187
180
  obj.setProperty(runtime, "alertOnFailMessage", JSIConverter<std::string>::toJSI(runtime, arg.alertOnFailMessage));
188
181
  obj.setProperty(runtime, "alertOnFailCloseText", JSIConverter<std::string>::toJSI(runtime, arg.alertOnFailCloseText));
182
+ obj.setProperty(runtime, "saveToPhoto", JSIConverter<bool>::toJSI(runtime, arg.saveToPhoto));
183
+ obj.setProperty(runtime, "type", JSIConverter<std::string>::toJSI(runtime, arg.type));
184
+ obj.setProperty(runtime, "outputExt", JSIConverter<std::string>::toJSI(runtime, arg.outputExt));
185
+ obj.setProperty(runtime, "openDocumentsOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openDocumentsOnFinish));
186
+ obj.setProperty(runtime, "openShareSheetOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openShareSheetOnFinish));
187
+ obj.setProperty(runtime, "removeAfterSavedToPhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToPhoto));
188
+ obj.setProperty(runtime, "removeAfterFailedToSavePhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSavePhoto));
189
+ obj.setProperty(runtime, "removeAfterSavedToDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToDocuments));
190
+ obj.setProperty(runtime, "removeAfterFailedToSaveDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSaveDocuments));
191
+ obj.setProperty(runtime, "removeAfterShared", JSIConverter<bool>::toJSI(runtime, arg.removeAfterShared));
192
+ obj.setProperty(runtime, "removeAfterFailedToShare", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToShare));
193
+ obj.setProperty(runtime, "enableRotation", JSIConverter<bool>::toJSI(runtime, arg.enableRotation));
194
+ obj.setProperty(runtime, "rotationAngle", JSIConverter<double>::toJSI(runtime, arg.rotationAngle));
189
195
  return obj;
190
196
  }
191
197
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -194,7 +200,6 @@ namespace margelo::nitro {
194
200
  }
195
201
  jsi::Object obj = value.getObject(runtime);
196
202
  if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "enableHapticFeedback"))) return false;
197
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "saveToPhoto"))) return false;
198
203
  if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "maxDuration"))) return false;
199
204
  if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "minDuration"))) return false;
200
205
  if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "cancelButtonText"))) return false;
@@ -211,16 +216,6 @@ namespace margelo::nitro {
211
216
  if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "saveDialogConfirmText"))) return false;
212
217
  if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "trimmingText"))) return false;
213
218
  if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "fullScreenModalIOS"))) return false;
214
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "type"))) return false;
215
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "outputExt"))) return false;
216
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openDocumentsOnFinish"))) return false;
217
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openShareSheetOnFinish"))) return false;
218
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto"))) return false;
219
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto"))) return false;
220
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments"))) return false;
221
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments"))) return false;
222
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterShared"))) return false;
223
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToShare"))) return false;
224
219
  if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "autoplay"))) return false;
225
220
  if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "jumpToPositionOnLoad"))) return false;
226
221
  if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "closeWhenFinish"))) return false;
@@ -238,6 +233,19 @@ namespace margelo::nitro {
238
233
  if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "alertOnFailTitle"))) return false;
239
234
  if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "alertOnFailMessage"))) return false;
240
235
  if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "alertOnFailCloseText"))) return false;
236
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "saveToPhoto"))) return false;
237
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "type"))) return false;
238
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "outputExt"))) return false;
239
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openDocumentsOnFinish"))) return false;
240
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openShareSheetOnFinish"))) return false;
241
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto"))) return false;
242
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto"))) return false;
243
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments"))) return false;
244
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments"))) return false;
245
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterShared"))) return false;
246
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToShare"))) return false;
247
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "enableRotation"))) return false;
248
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "rotationAngle"))) return false;
241
249
  return true;
242
250
  }
243
251
  };
@@ -20,6 +20,7 @@ namespace margelo::nitro::videotrim {
20
20
  prototype.registerHybridMethod("deleteFile", &HybridVideoTrimSpec::deleteFile);
21
21
  prototype.registerHybridMethod("closeEditor", &HybridVideoTrimSpec::closeEditor);
22
22
  prototype.registerHybridMethod("isValidFile", &HybridVideoTrimSpec::isValidFile);
23
+ prototype.registerHybridMethod("trim", &HybridVideoTrimSpec::trim);
23
24
  });
24
25
  }
25
26
 
@@ -17,6 +17,8 @@
17
17
  namespace margelo::nitro::videotrim { struct EditorConfig; }
18
18
  // Forward declaration of `FileValidationResult` to properly resolve imports.
19
19
  namespace margelo::nitro::videotrim { struct FileValidationResult; }
20
+ // Forward declaration of `TrimOptions` to properly resolve imports.
21
+ namespace margelo::nitro::videotrim { struct TrimOptions; }
20
22
 
21
23
  #include <string>
22
24
  #include "EditorConfig.hpp"
@@ -25,6 +27,7 @@ namespace margelo::nitro::videotrim { struct FileValidationResult; }
25
27
  #include <NitroModules/Promise.hpp>
26
28
  #include <vector>
27
29
  #include "FileValidationResult.hpp"
30
+ #include "TrimOptions.hpp"
28
31
 
29
32
  namespace margelo::nitro::videotrim {
30
33
 
@@ -63,6 +66,7 @@ namespace margelo::nitro::videotrim {
63
66
  virtual std::shared_ptr<Promise<bool>> deleteFile(const std::string& filePath) = 0;
64
67
  virtual void closeEditor(const std::function<void()>& onComplete) = 0;
65
68
  virtual std::shared_ptr<Promise<FileValidationResult>> isValidFile(const std::string& url) = 0;
69
+ virtual std::shared_ptr<Promise<std::string>> trim(const std::string& url, const TrimOptions& options) = 0;
66
70
 
67
71
  protected:
68
72
  // Hybrid Setup
@@ -0,0 +1,125 @@
1
+ ///
2
+ /// TrimOptions.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
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+
21
+
22
+
23
+ #include <string>
24
+
25
+ namespace margelo::nitro::videotrim {
26
+
27
+ /**
28
+ * A struct which can be represented as a JavaScript object (TrimOptions).
29
+ */
30
+ struct TrimOptions {
31
+ public:
32
+ double startTime SWIFT_PRIVATE;
33
+ double endTime SWIFT_PRIVATE;
34
+ bool saveToPhoto SWIFT_PRIVATE;
35
+ std::string type SWIFT_PRIVATE;
36
+ std::string outputExt SWIFT_PRIVATE;
37
+ bool openDocumentsOnFinish SWIFT_PRIVATE;
38
+ bool openShareSheetOnFinish SWIFT_PRIVATE;
39
+ bool removeAfterSavedToPhoto SWIFT_PRIVATE;
40
+ bool removeAfterFailedToSavePhoto SWIFT_PRIVATE;
41
+ bool removeAfterSavedToDocuments SWIFT_PRIVATE;
42
+ bool removeAfterFailedToSaveDocuments SWIFT_PRIVATE;
43
+ bool removeAfterShared SWIFT_PRIVATE;
44
+ bool removeAfterFailedToShare SWIFT_PRIVATE;
45
+ bool enableRotation SWIFT_PRIVATE;
46
+ double rotationAngle SWIFT_PRIVATE;
47
+
48
+ public:
49
+ TrimOptions() = default;
50
+ explicit TrimOptions(double startTime, double endTime, bool saveToPhoto, std::string type, std::string outputExt, bool openDocumentsOnFinish, bool openShareSheetOnFinish, bool removeAfterSavedToPhoto, bool removeAfterFailedToSavePhoto, bool removeAfterSavedToDocuments, bool removeAfterFailedToSaveDocuments, bool removeAfterShared, bool removeAfterFailedToShare, bool enableRotation, double rotationAngle): startTime(startTime), endTime(endTime), saveToPhoto(saveToPhoto), type(type), outputExt(outputExt), openDocumentsOnFinish(openDocumentsOnFinish), openShareSheetOnFinish(openShareSheetOnFinish), removeAfterSavedToPhoto(removeAfterSavedToPhoto), removeAfterFailedToSavePhoto(removeAfterFailedToSavePhoto), removeAfterSavedToDocuments(removeAfterSavedToDocuments), removeAfterFailedToSaveDocuments(removeAfterFailedToSaveDocuments), removeAfterShared(removeAfterShared), removeAfterFailedToShare(removeAfterFailedToShare), enableRotation(enableRotation), rotationAngle(rotationAngle) {}
51
+ };
52
+
53
+ } // namespace margelo::nitro::videotrim
54
+
55
+ namespace margelo::nitro {
56
+
57
+ using namespace margelo::nitro::videotrim;
58
+
59
+ // C++ TrimOptions <> JS TrimOptions (object)
60
+ template <>
61
+ struct JSIConverter<TrimOptions> final {
62
+ static inline TrimOptions fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
63
+ jsi::Object obj = arg.asObject(runtime);
64
+ return TrimOptions(
65
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "startTime")),
66
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "endTime")),
67
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "saveToPhoto")),
68
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "type")),
69
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "outputExt")),
70
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openDocumentsOnFinish")),
71
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "openShareSheetOnFinish")),
72
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto")),
73
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto")),
74
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments")),
75
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments")),
76
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterShared")),
77
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "removeAfterFailedToShare")),
78
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "enableRotation")),
79
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "rotationAngle"))
80
+ );
81
+ }
82
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const TrimOptions& arg) {
83
+ jsi::Object obj(runtime);
84
+ obj.setProperty(runtime, "startTime", JSIConverter<double>::toJSI(runtime, arg.startTime));
85
+ obj.setProperty(runtime, "endTime", JSIConverter<double>::toJSI(runtime, arg.endTime));
86
+ obj.setProperty(runtime, "saveToPhoto", JSIConverter<bool>::toJSI(runtime, arg.saveToPhoto));
87
+ obj.setProperty(runtime, "type", JSIConverter<std::string>::toJSI(runtime, arg.type));
88
+ obj.setProperty(runtime, "outputExt", JSIConverter<std::string>::toJSI(runtime, arg.outputExt));
89
+ obj.setProperty(runtime, "openDocumentsOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openDocumentsOnFinish));
90
+ obj.setProperty(runtime, "openShareSheetOnFinish", JSIConverter<bool>::toJSI(runtime, arg.openShareSheetOnFinish));
91
+ obj.setProperty(runtime, "removeAfterSavedToPhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToPhoto));
92
+ obj.setProperty(runtime, "removeAfterFailedToSavePhoto", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSavePhoto));
93
+ obj.setProperty(runtime, "removeAfterSavedToDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterSavedToDocuments));
94
+ obj.setProperty(runtime, "removeAfterFailedToSaveDocuments", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToSaveDocuments));
95
+ obj.setProperty(runtime, "removeAfterShared", JSIConverter<bool>::toJSI(runtime, arg.removeAfterShared));
96
+ obj.setProperty(runtime, "removeAfterFailedToShare", JSIConverter<bool>::toJSI(runtime, arg.removeAfterFailedToShare));
97
+ obj.setProperty(runtime, "enableRotation", JSIConverter<bool>::toJSI(runtime, arg.enableRotation));
98
+ obj.setProperty(runtime, "rotationAngle", JSIConverter<double>::toJSI(runtime, arg.rotationAngle));
99
+ return obj;
100
+ }
101
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
102
+ if (!value.isObject()) {
103
+ return false;
104
+ }
105
+ jsi::Object obj = value.getObject(runtime);
106
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "startTime"))) return false;
107
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "endTime"))) return false;
108
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "saveToPhoto"))) return false;
109
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "type"))) return false;
110
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "outputExt"))) return false;
111
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openDocumentsOnFinish"))) return false;
112
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "openShareSheetOnFinish"))) return false;
113
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToPhoto"))) return false;
114
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSavePhoto"))) return false;
115
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterSavedToDocuments"))) return false;
116
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToSaveDocuments"))) return false;
117
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterShared"))) return false;
118
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "removeAfterFailedToShare"))) return false;
119
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "enableRotation"))) return false;
120
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "rotationAngle"))) return false;
121
+ return true;
122
+ }
123
+ };
124
+
125
+ } // namespace margelo::nitro
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-video-trim",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "Video trimmer for your React Native app",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",