react-native-video-trim 4.0.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +124 -83
  3. package/VideoTrim.podspec +4 -4
  4. package/android/build.gradle +15 -54
  5. package/android/gradle.properties +2 -0
  6. package/android/src/main/AndroidManifest.xml +1 -1
  7. package/android/src/main/java/com/videotrim/VideoTrimModule.kt +660 -0
  8. package/android/src/main/java/com/videotrim/VideoTrimPackage.kt +33 -0
  9. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/enums/ErrorCode.java +1 -1
  10. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/interfaces/IVideoTrimmerView.java +1 -1
  11. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/interfaces/VideoTrimListener.java +5 -4
  12. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/utils/MediaMetadataUtil.java +1 -1
  13. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/utils/StorageUtil.java +1 -1
  14. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/utils/VideoTrimmerUtil.java +49 -39
  15. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/widgets/VideoTrimmerView.java +49 -46
  16. package/ios/AssetLoader.h +19 -0
  17. package/ios/AssetLoader.mm +87 -0
  18. package/ios/ErrorCode.h +9 -0
  19. package/ios/ProgressAlertController.h +15 -0
  20. package/ios/ProgressAlertController.mm +78 -0
  21. package/ios/VideoTrim.h +31 -0
  22. package/ios/VideoTrim.mm +663 -0
  23. package/ios/VideoTrimmer.h +67 -0
  24. package/ios/VideoTrimmer.mm +863 -0
  25. package/ios/VideoTrimmerThumb.h +23 -0
  26. package/ios/VideoTrimmerThumb.mm +175 -0
  27. package/ios/VideoTrimmerViewController.h +52 -0
  28. package/ios/VideoTrimmerViewController.mm +533 -0
  29. package/lib/module/NativeVideoTrim.js +5 -0
  30. package/lib/module/NativeVideoTrim.js.map +1 -0
  31. package/lib/module/index.js +59 -34
  32. package/lib/module/index.js.map +1 -1
  33. package/lib/typescript/src/NativeVideoTrim.d.ts +107 -0
  34. package/lib/typescript/src/NativeVideoTrim.d.ts.map +1 -0
  35. package/lib/typescript/src/index.d.ts +21 -10
  36. package/lib/typescript/src/index.d.ts.map +1 -1
  37. package/package.json +15 -18
  38. package/src/NativeVideoTrim.ts +113 -0
  39. package/src/index.tsx +68 -39
  40. package/android/CMakeLists.txt +0 -24
  41. package/android/src/main/cpp/cpp-adapter.cpp +0 -6
  42. package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrim.kt +0 -629
  43. package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrimPackage.kt +0 -22
  44. package/ios/AssetLoader.swift +0 -99
  45. package/ios/ErrorCode.swift +0 -17
  46. package/ios/ProgressAlertController.swift +0 -100
  47. package/ios/VideoTrim.swift +0 -60
  48. package/ios/VideoTrimImpl.swift +0 -860
  49. package/ios/VideoTrimmer.swift +0 -872
  50. package/ios/VideoTrimmerThumb.swift +0 -175
  51. package/ios/VideoTrimmerViewController.swift +0 -557
  52. package/lib/module/VideoTrim.nitro.js +0 -4
  53. package/lib/module/VideoTrim.nitro.js.map +0 -1
  54. package/lib/typescript/src/VideoTrim.nitro.d.ts +0 -240
  55. package/lib/typescript/src/VideoTrim.nitro.d.ts.map +0 -1
  56. package/nitrogen/generated/android/c++/JEditorConfig.hpp +0 -229
  57. package/nitrogen/generated/android/c++/JFileValidationResult.hpp +0 -61
  58. package/nitrogen/generated/android/c++/JFunc_void.hpp +0 -74
  59. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__unordered_map_std__string__std__string_.hpp +0 -89
  60. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.cpp +0 -131
  61. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.hpp +0 -67
  62. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/EditorConfig.kt +0 -70
  63. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/FileValidationResult.kt +0 -28
  64. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void.kt +0 -80
  65. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void_std__string_std__unordered_map_std__string__std__string_.kt +0 -80
  66. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/HybridVideoTrimSpec.kt +0 -82
  67. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/videotrimOnLoad.kt +0 -35
  68. package/nitrogen/generated/android/videotrim+autolinking.cmake +0 -78
  69. package/nitrogen/generated/android/videotrim+autolinking.gradle +0 -27
  70. package/nitrogen/generated/android/videotrimOnLoad.cpp +0 -50
  71. package/nitrogen/generated/android/videotrimOnLoad.hpp +0 -25
  72. package/nitrogen/generated/ios/VideoTrim+autolinking.rb +0 -60
  73. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.cpp +0 -88
  74. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.hpp +0 -331
  75. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Umbrella.hpp +0 -53
  76. package/nitrogen/generated/ios/VideoTrimAutolinking.mm +0 -33
  77. package/nitrogen/generated/ios/VideoTrimAutolinking.swift +0 -25
  78. package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.cpp +0 -11
  79. package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.hpp +0 -116
  80. package/nitrogen/generated/ios/swift/EditorConfig.swift +0 -519
  81. package/nitrogen/generated/ios/swift/FileValidationResult.swift +0 -57
  82. package/nitrogen/generated/ios/swift/Func_void.swift +0 -46
  83. package/nitrogen/generated/ios/swift/Func_void_FileValidationResult.swift +0 -46
  84. package/nitrogen/generated/ios/swift/Func_void_bool.swift +0 -46
  85. package/nitrogen/generated/ios/swift/Func_void_double.swift +0 -46
  86. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +0 -46
  87. package/nitrogen/generated/ios/swift/Func_void_std__string_std__unordered_map_std__string__std__string_.swift +0 -54
  88. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +0 -46
  89. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec.swift +0 -53
  90. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec_cxx.swift +0 -222
  91. package/nitrogen/generated/shared/c++/EditorConfig.hpp +0 -245
  92. package/nitrogen/generated/shared/c++/FileValidationResult.hpp +0 -77
  93. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.cpp +0 -26
  94. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.hpp +0 -76
  95. package/src/VideoTrim.nitro.ts +0 -244
@@ -1,245 +0,0 @@
1
- ///
2
- /// EditorConfig.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 (EditorConfig).
29
- */
30
- struct EditorConfig {
31
- public:
32
- bool enableHapticFeedback SWIFT_PRIVATE;
33
- bool saveToPhoto SWIFT_PRIVATE;
34
- double maxDuration SWIFT_PRIVATE;
35
- double minDuration SWIFT_PRIVATE;
36
- std::string cancelButtonText SWIFT_PRIVATE;
37
- std::string saveButtonText SWIFT_PRIVATE;
38
- bool enableCancelDialog SWIFT_PRIVATE;
39
- std::string cancelDialogTitle SWIFT_PRIVATE;
40
- std::string cancelDialogMessage SWIFT_PRIVATE;
41
- std::string cancelDialogCancelText SWIFT_PRIVATE;
42
- std::string cancelDialogConfirmText SWIFT_PRIVATE;
43
- bool enableSaveDialog SWIFT_PRIVATE;
44
- std::string saveDialogTitle SWIFT_PRIVATE;
45
- std::string saveDialogMessage SWIFT_PRIVATE;
46
- std::string saveDialogCancelText SWIFT_PRIVATE;
47
- std::string saveDialogConfirmText SWIFT_PRIVATE;
48
- std::string trimmingText SWIFT_PRIVATE;
49
- 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
- bool autoplay SWIFT_PRIVATE;
61
- double jumpToPositionOnLoad SWIFT_PRIVATE;
62
- bool closeWhenFinish SWIFT_PRIVATE;
63
- bool enableCancelTrimming SWIFT_PRIVATE;
64
- std::string cancelTrimmingButtonText SWIFT_PRIVATE;
65
- bool enableCancelTrimmingDialog SWIFT_PRIVATE;
66
- std::string cancelTrimmingDialogTitle SWIFT_PRIVATE;
67
- std::string cancelTrimmingDialogMessage SWIFT_PRIVATE;
68
- std::string cancelTrimmingDialogCancelText SWIFT_PRIVATE;
69
- std::string cancelTrimmingDialogConfirmText SWIFT_PRIVATE;
70
- std::string headerText SWIFT_PRIVATE;
71
- double headerTextSize SWIFT_PRIVATE;
72
- double headerTextColor SWIFT_PRIVATE;
73
- bool alertOnFailToLoad SWIFT_PRIVATE;
74
- std::string alertOnFailTitle SWIFT_PRIVATE;
75
- std::string alertOnFailMessage SWIFT_PRIVATE;
76
- std::string alertOnFailCloseText SWIFT_PRIVATE;
77
-
78
- public:
79
- 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) {}
81
- };
82
-
83
- } // namespace margelo::nitro::videotrim
84
-
85
- namespace margelo::nitro {
86
-
87
- using namespace margelo::nitro::videotrim;
88
-
89
- // C++ EditorConfig <> JS EditorConfig (object)
90
- template <>
91
- struct JSIConverter<EditorConfig> final {
92
- static inline EditorConfig fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
93
- jsi::Object obj = arg.asObject(runtime);
94
- return EditorConfig(
95
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "enableHapticFeedback")),
96
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "saveToPhoto")),
97
- JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "maxDuration")),
98
- JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "minDuration")),
99
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "cancelButtonText")),
100
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "saveButtonText")),
101
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "enableCancelDialog")),
102
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "cancelDialogTitle")),
103
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "cancelDialogMessage")),
104
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "cancelDialogCancelText")),
105
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "cancelDialogConfirmText")),
106
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "enableSaveDialog")),
107
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "saveDialogTitle")),
108
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "saveDialogMessage")),
109
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "saveDialogCancelText")),
110
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "saveDialogConfirmText")),
111
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "trimmingText")),
112
- 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
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "autoplay")),
124
- JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "jumpToPositionOnLoad")),
125
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "closeWhenFinish")),
126
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "enableCancelTrimming")),
127
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "cancelTrimmingButtonText")),
128
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "enableCancelTrimmingDialog")),
129
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "cancelTrimmingDialogTitle")),
130
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "cancelTrimmingDialogMessage")),
131
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "cancelTrimmingDialogCancelText")),
132
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "cancelTrimmingDialogConfirmText")),
133
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "headerText")),
134
- JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "headerTextSize")),
135
- JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "headerTextColor")),
136
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailToLoad")),
137
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailTitle")),
138
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailMessage")),
139
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "alertOnFailCloseText"))
140
- );
141
- }
142
- static inline jsi::Value toJSI(jsi::Runtime& runtime, const EditorConfig& arg) {
143
- jsi::Object obj(runtime);
144
- obj.setProperty(runtime, "enableHapticFeedback", JSIConverter<bool>::toJSI(runtime, arg.enableHapticFeedback));
145
- obj.setProperty(runtime, "saveToPhoto", JSIConverter<bool>::toJSI(runtime, arg.saveToPhoto));
146
- obj.setProperty(runtime, "maxDuration", JSIConverter<double>::toJSI(runtime, arg.maxDuration));
147
- obj.setProperty(runtime, "minDuration", JSIConverter<double>::toJSI(runtime, arg.minDuration));
148
- obj.setProperty(runtime, "cancelButtonText", JSIConverter<std::string>::toJSI(runtime, arg.cancelButtonText));
149
- obj.setProperty(runtime, "saveButtonText", JSIConverter<std::string>::toJSI(runtime, arg.saveButtonText));
150
- obj.setProperty(runtime, "enableCancelDialog", JSIConverter<bool>::toJSI(runtime, arg.enableCancelDialog));
151
- obj.setProperty(runtime, "cancelDialogTitle", JSIConverter<std::string>::toJSI(runtime, arg.cancelDialogTitle));
152
- obj.setProperty(runtime, "cancelDialogMessage", JSIConverter<std::string>::toJSI(runtime, arg.cancelDialogMessage));
153
- obj.setProperty(runtime, "cancelDialogCancelText", JSIConverter<std::string>::toJSI(runtime, arg.cancelDialogCancelText));
154
- obj.setProperty(runtime, "cancelDialogConfirmText", JSIConverter<std::string>::toJSI(runtime, arg.cancelDialogConfirmText));
155
- obj.setProperty(runtime, "enableSaveDialog", JSIConverter<bool>::toJSI(runtime, arg.enableSaveDialog));
156
- obj.setProperty(runtime, "saveDialogTitle", JSIConverter<std::string>::toJSI(runtime, arg.saveDialogTitle));
157
- obj.setProperty(runtime, "saveDialogMessage", JSIConverter<std::string>::toJSI(runtime, arg.saveDialogMessage));
158
- obj.setProperty(runtime, "saveDialogCancelText", JSIConverter<std::string>::toJSI(runtime, arg.saveDialogCancelText));
159
- obj.setProperty(runtime, "saveDialogConfirmText", JSIConverter<std::string>::toJSI(runtime, arg.saveDialogConfirmText));
160
- obj.setProperty(runtime, "trimmingText", JSIConverter<std::string>::toJSI(runtime, arg.trimmingText));
161
- 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
- obj.setProperty(runtime, "autoplay", JSIConverter<bool>::toJSI(runtime, arg.autoplay));
173
- obj.setProperty(runtime, "jumpToPositionOnLoad", JSIConverter<double>::toJSI(runtime, arg.jumpToPositionOnLoad));
174
- obj.setProperty(runtime, "closeWhenFinish", JSIConverter<bool>::toJSI(runtime, arg.closeWhenFinish));
175
- obj.setProperty(runtime, "enableCancelTrimming", JSIConverter<bool>::toJSI(runtime, arg.enableCancelTrimming));
176
- obj.setProperty(runtime, "cancelTrimmingButtonText", JSIConverter<std::string>::toJSI(runtime, arg.cancelTrimmingButtonText));
177
- obj.setProperty(runtime, "enableCancelTrimmingDialog", JSIConverter<bool>::toJSI(runtime, arg.enableCancelTrimmingDialog));
178
- obj.setProperty(runtime, "cancelTrimmingDialogTitle", JSIConverter<std::string>::toJSI(runtime, arg.cancelTrimmingDialogTitle));
179
- obj.setProperty(runtime, "cancelTrimmingDialogMessage", JSIConverter<std::string>::toJSI(runtime, arg.cancelTrimmingDialogMessage));
180
- obj.setProperty(runtime, "cancelTrimmingDialogCancelText", JSIConverter<std::string>::toJSI(runtime, arg.cancelTrimmingDialogCancelText));
181
- obj.setProperty(runtime, "cancelTrimmingDialogConfirmText", JSIConverter<std::string>::toJSI(runtime, arg.cancelTrimmingDialogConfirmText));
182
- obj.setProperty(runtime, "headerText", JSIConverter<std::string>::toJSI(runtime, arg.headerText));
183
- obj.setProperty(runtime, "headerTextSize", JSIConverter<double>::toJSI(runtime, arg.headerTextSize));
184
- obj.setProperty(runtime, "headerTextColor", JSIConverter<double>::toJSI(runtime, arg.headerTextColor));
185
- obj.setProperty(runtime, "alertOnFailToLoad", JSIConverter<bool>::toJSI(runtime, arg.alertOnFailToLoad));
186
- obj.setProperty(runtime, "alertOnFailTitle", JSIConverter<std::string>::toJSI(runtime, arg.alertOnFailTitle));
187
- obj.setProperty(runtime, "alertOnFailMessage", JSIConverter<std::string>::toJSI(runtime, arg.alertOnFailMessage));
188
- obj.setProperty(runtime, "alertOnFailCloseText", JSIConverter<std::string>::toJSI(runtime, arg.alertOnFailCloseText));
189
- return obj;
190
- }
191
- static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
192
- if (!value.isObject()) {
193
- return false;
194
- }
195
- jsi::Object obj = value.getObject(runtime);
196
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "enableHapticFeedback"))) return false;
197
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "saveToPhoto"))) return false;
198
- if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "maxDuration"))) return false;
199
- if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "minDuration"))) return false;
200
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "cancelButtonText"))) return false;
201
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "saveButtonText"))) return false;
202
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "enableCancelDialog"))) return false;
203
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "cancelDialogTitle"))) return false;
204
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "cancelDialogMessage"))) return false;
205
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "cancelDialogCancelText"))) return false;
206
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "cancelDialogConfirmText"))) return false;
207
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "enableSaveDialog"))) return false;
208
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "saveDialogTitle"))) return false;
209
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "saveDialogMessage"))) return false;
210
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "saveDialogCancelText"))) return false;
211
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "saveDialogConfirmText"))) return false;
212
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "trimmingText"))) return false;
213
- 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
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "autoplay"))) return false;
225
- if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "jumpToPositionOnLoad"))) return false;
226
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "closeWhenFinish"))) return false;
227
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "enableCancelTrimming"))) return false;
228
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "cancelTrimmingButtonText"))) return false;
229
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "enableCancelTrimmingDialog"))) return false;
230
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "cancelTrimmingDialogTitle"))) return false;
231
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "cancelTrimmingDialogMessage"))) return false;
232
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "cancelTrimmingDialogCancelText"))) return false;
233
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "cancelTrimmingDialogConfirmText"))) return false;
234
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "headerText"))) return false;
235
- if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "headerTextSize"))) return false;
236
- if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "headerTextColor"))) return false;
237
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "alertOnFailToLoad"))) return false;
238
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "alertOnFailTitle"))) return false;
239
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "alertOnFailMessage"))) return false;
240
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "alertOnFailCloseText"))) return false;
241
- return true;
242
- }
243
- };
244
-
245
- } // namespace margelo::nitro
@@ -1,77 +0,0 @@
1
- ///
2
- /// FileValidationResult.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 (FileValidationResult).
29
- */
30
- struct FileValidationResult {
31
- public:
32
- bool isValid SWIFT_PRIVATE;
33
- std::string fileType SWIFT_PRIVATE;
34
- double duration SWIFT_PRIVATE;
35
-
36
- public:
37
- FileValidationResult() = default;
38
- explicit FileValidationResult(bool isValid, std::string fileType, double duration): isValid(isValid), fileType(fileType), duration(duration) {}
39
- };
40
-
41
- } // namespace margelo::nitro::videotrim
42
-
43
- namespace margelo::nitro {
44
-
45
- using namespace margelo::nitro::videotrim;
46
-
47
- // C++ FileValidationResult <> JS FileValidationResult (object)
48
- template <>
49
- struct JSIConverter<FileValidationResult> final {
50
- static inline FileValidationResult fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
51
- jsi::Object obj = arg.asObject(runtime);
52
- return FileValidationResult(
53
- JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "isValid")),
54
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "fileType")),
55
- JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "duration"))
56
- );
57
- }
58
- static inline jsi::Value toJSI(jsi::Runtime& runtime, const FileValidationResult& arg) {
59
- jsi::Object obj(runtime);
60
- obj.setProperty(runtime, "isValid", JSIConverter<bool>::toJSI(runtime, arg.isValid));
61
- obj.setProperty(runtime, "fileType", JSIConverter<std::string>::toJSI(runtime, arg.fileType));
62
- obj.setProperty(runtime, "duration", JSIConverter<double>::toJSI(runtime, arg.duration));
63
- return obj;
64
- }
65
- static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
66
- if (!value.isObject()) {
67
- return false;
68
- }
69
- jsi::Object obj = value.getObject(runtime);
70
- if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "isValid"))) return false;
71
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "fileType"))) return false;
72
- if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "duration"))) return false;
73
- return true;
74
- }
75
- };
76
-
77
- } // namespace margelo::nitro
@@ -1,26 +0,0 @@
1
- ///
2
- /// HybridVideoTrimSpec.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 "HybridVideoTrimSpec.hpp"
9
-
10
- namespace margelo::nitro::videotrim {
11
-
12
- void HybridVideoTrimSpec::loadHybridMethods() {
13
- // load base methods/properties
14
- HybridObject::loadHybridMethods();
15
- // load custom methods/properties
16
- registerHybrids(this, [](Prototype& prototype) {
17
- prototype.registerHybridMethod("showEditor", &HybridVideoTrimSpec::showEditor);
18
- prototype.registerHybridMethod("listFiles", &HybridVideoTrimSpec::listFiles);
19
- prototype.registerHybridMethod("cleanFiles", &HybridVideoTrimSpec::cleanFiles);
20
- prototype.registerHybridMethod("deleteFile", &HybridVideoTrimSpec::deleteFile);
21
- prototype.registerHybridMethod("closeEditor", &HybridVideoTrimSpec::closeEditor);
22
- prototype.registerHybridMethod("isValidFile", &HybridVideoTrimSpec::isValidFile);
23
- });
24
- }
25
-
26
- } // namespace margelo::nitro::videotrim
@@ -1,76 +0,0 @@
1
- ///
2
- /// HybridVideoTrimSpec.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/HybridObject.hpp>)
11
- #include <NitroModules/HybridObject.hpp>
12
- #else
13
- #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
- #endif
15
-
16
- // Forward declaration of `EditorConfig` to properly resolve imports.
17
- namespace margelo::nitro::videotrim { struct EditorConfig; }
18
- // Forward declaration of `FileValidationResult` to properly resolve imports.
19
- namespace margelo::nitro::videotrim { struct FileValidationResult; }
20
-
21
- #include <string>
22
- #include "EditorConfig.hpp"
23
- #include <functional>
24
- #include <unordered_map>
25
- #include <NitroModules/Promise.hpp>
26
- #include <vector>
27
- #include "FileValidationResult.hpp"
28
-
29
- namespace margelo::nitro::videotrim {
30
-
31
- using namespace margelo::nitro;
32
-
33
- /**
34
- * An abstract base class for `VideoTrim`
35
- * Inherit this class to create instances of `HybridVideoTrimSpec` in C++.
36
- * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
37
- * @example
38
- * ```cpp
39
- * class HybridVideoTrim: public HybridVideoTrimSpec {
40
- * public:
41
- * HybridVideoTrim(...): HybridObject(TAG) { ... }
42
- * // ...
43
- * };
44
- * ```
45
- */
46
- class HybridVideoTrimSpec: public virtual HybridObject {
47
- public:
48
- // Constructor
49
- explicit HybridVideoTrimSpec(): HybridObject(TAG) { }
50
-
51
- // Destructor
52
- ~HybridVideoTrimSpec() override = default;
53
-
54
- public:
55
- // Properties
56
-
57
-
58
- public:
59
- // Methods
60
- virtual 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) = 0;
61
- virtual std::shared_ptr<Promise<std::vector<std::string>>> listFiles() = 0;
62
- virtual std::shared_ptr<Promise<double>> cleanFiles() = 0;
63
- virtual std::shared_ptr<Promise<bool>> deleteFile(const std::string& filePath) = 0;
64
- virtual void closeEditor(const std::function<void()>& onComplete) = 0;
65
- virtual std::shared_ptr<Promise<FileValidationResult>> isValidFile(const std::string& url) = 0;
66
-
67
- protected:
68
- // Hybrid Setup
69
- void loadHybridMethods() override;
70
-
71
- protected:
72
- // Tag for logging
73
- static constexpr auto TAG = "VideoTrim";
74
- };
75
-
76
- } // namespace margelo::nitro::videotrim