react-native-yolo 0.0.3 → 0.0.4

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 (41) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +51 -51
  3. package/Yolo.podspec +31 -31
  4. package/android/CMakeLists.txt +35 -32
  5. package/android/build.gradle +154 -152
  6. package/android/fix-prefab.gradle +50 -50
  7. package/android/gradle.properties +5 -5
  8. package/android/src/main/AndroidManifest.xml +3 -2
  9. package/android/src/main/cpp/cpp-adapter.cpp +8 -8
  10. package/android/src/main/java/com/yolo/HybridYolo.kt +65 -42
  11. package/android/src/main/java/com/yolo/YoloPackage.kt +20 -20
  12. package/android/src/main/java/com/yolo/utils/BitmapOrientationFixer.kt +56 -0
  13. package/android/src/main/java/com/yolo/utils/FrameJpegConverter.kt +27 -0
  14. package/android/src/main/java/com/yolo/utils/FrameValidator.kt +29 -0
  15. package/android/src/main/java/com/yolo/utils/Nv21JpegEncoder.kt +34 -0
  16. package/android/src/main/java/com/yolo/utils/Yuv420ToNv21Converter.kt +62 -0
  17. package/ios/Bridge.h +8 -8
  18. package/ios/HybridYolo.swift +14 -14
  19. package/lib/commonjs/index.js +10 -1
  20. package/lib/commonjs/index.js.map +1 -1
  21. package/lib/module/index.js +10 -1
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/typescript/src/index.d.ts +3 -1
  24. package/lib/typescript/src/index.d.ts.map +1 -1
  25. package/lib/typescript/src/specs/yolo.nitro.d.ts +2 -0
  26. package/lib/typescript/src/specs/yolo.nitro.d.ts.map +1 -1
  27. package/nitro.json +29 -29
  28. package/nitrogen/generated/android/c++/JHybridYoloSpec.cpp +10 -1
  29. package/nitrogen/generated/android/c++/JHybridYoloSpec.hpp +1 -0
  30. package/nitrogen/generated/android/kotlin/com/margelo/nitro/yolo/HybridYoloSpec.kt +5 -0
  31. package/nitrogen/generated/ios/Yolo-Swift-Cxx-Bridge.cpp +11 -0
  32. package/nitrogen/generated/ios/Yolo-Swift-Cxx-Bridge.hpp +27 -0
  33. package/nitrogen/generated/ios/Yolo-Swift-Cxx-Umbrella.hpp +5 -0
  34. package/nitrogen/generated/ios/c++/HybridYoloSpecSwift.hpp +12 -1
  35. package/nitrogen/generated/ios/swift/HybridYoloSpec.swift +2 -0
  36. package/nitrogen/generated/ios/swift/HybridYoloSpec_cxx.swift +17 -0
  37. package/nitrogen/generated/shared/c++/HybridYoloSpec.cpp +1 -0
  38. package/nitrogen/generated/shared/c++/HybridYoloSpec.hpp +5 -1
  39. package/package.json +127 -122
  40. package/src/index.ts +11 -11
  41. package/src/specs/yolo.nitro.ts +7 -6
package/nitro.json CHANGED
@@ -1,30 +1,30 @@
1
- {
2
- "$schema": "https://nitro.margelo.com/nitro.schema.json",
3
- "cxxNamespace": [
4
- "yolo"
5
- ],
6
- "ios": {
7
- "iosModuleName": "Yolo"
8
- },
9
- "android": {
10
- "androidNamespace": [
11
- "yolo"
12
- ],
13
- "androidCxxLibName": "Yolo"
14
- },
15
- "autolinking": {
16
- "Yolo": {
17
- "ios": {
18
- "language": "swift",
19
- "implementationClassName": "HybridYolo"
20
- },
21
- "android": {
22
- "language": "kotlin",
23
- "implementationClassName": "HybridYolo"
24
- }
25
- }
26
- },
27
- "ignorePaths": [
28
- "**/node_modules"
29
- ]
1
+ {
2
+ "$schema": "https://nitro.margelo.com/nitro.schema.json",
3
+ "cxxNamespace": [
4
+ "yolo"
5
+ ],
6
+ "ios": {
7
+ "iosModuleName": "Yolo"
8
+ },
9
+ "android": {
10
+ "androidNamespace": [
11
+ "yolo"
12
+ ],
13
+ "androidCxxLibName": "Yolo"
14
+ },
15
+ "autolinking": {
16
+ "Yolo": {
17
+ "ios": {
18
+ "language": "swift",
19
+ "implementationClassName": "HybridYolo"
20
+ },
21
+ "android": {
22
+ "language": "kotlin",
23
+ "implementationClassName": "HybridYolo"
24
+ }
25
+ }
26
+ },
27
+ "ignorePaths": [
28
+ "**/node_modules"
29
+ ]
30
30
  }
@@ -7,9 +7,13 @@
7
7
 
8
8
  #include "JHybridYoloSpec.hpp"
9
9
 
10
-
10
+ // Forward declaration of `HybridFrameSpec` to properly resolve imports.
11
+ namespace margelo::nitro::camera { class HybridFrameSpec; }
11
12
 
12
13
  #include <string>
14
+ #include <memory>
15
+ #include <VisionCamera/HybridFrameSpec.hpp>
16
+ #include <VisionCamera/JHybridFrameSpec.hpp>
13
17
 
14
18
  namespace margelo::nitro::yolo {
15
19
 
@@ -53,5 +57,10 @@ namespace margelo::nitro::yolo {
53
57
  static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* modelPath */)>("loadModel");
54
58
  method(_javaPart, jni::make_jstring(modelPath));
55
59
  }
60
+ std::string JHybridYoloSpec::frameToBase64(const std::shared_ptr<margelo::nitro::camera::HybridFrameSpec>& frame) {
61
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>(jni::alias_ref<margelo::nitro::camera::JHybridFrameSpec::JavaPart> /* frame */)>("frameToBase64");
62
+ auto __result = method(_javaPart, std::dynamic_pointer_cast<margelo::nitro::camera::JHybridFrameSpec>(frame)->getJavaPart());
63
+ return __result->toStdString();
64
+ }
56
65
 
57
66
  } // namespace margelo::nitro::yolo
@@ -56,6 +56,7 @@ namespace margelo::nitro::yolo {
56
56
  // Methods
57
57
  double sum(double num1, double num2) override;
58
58
  void loadModel(const std::string& modelPath) override;
59
+ std::string frameToBase64(const std::shared_ptr<margelo::nitro::camera::HybridFrameSpec>& frame) override;
59
60
 
60
61
  private:
61
62
  jni::global_ref<JHybridYoloSpec::JavaPart> _javaPart;
@@ -10,6 +10,7 @@ package com.margelo.nitro.yolo
10
10
  import androidx.annotation.Keep
11
11
  import com.facebook.jni.HybridData
12
12
  import com.facebook.proguard.annotations.DoNotStrip
13
+ import com.margelo.nitro.camera.HybridFrameSpec
13
14
  import com.margelo.nitro.core.HybridObject
14
15
 
15
16
  /**
@@ -35,6 +36,10 @@ abstract class HybridYoloSpec: HybridObject() {
35
36
  @DoNotStrip
36
37
  @Keep
37
38
  abstract fun loadModel(modelPath: String): Unit
39
+
40
+ @DoNotStrip
41
+ @Keep
42
+ abstract fun frameToBase64(frame: com.margelo.nitro.camera.HybridFrameSpec): String
38
43
 
39
44
  // Default implementation of `HybridObject.toString()`
40
45
  override fun toString(): String {
@@ -11,9 +11,20 @@
11
11
  #include "HybridYoloSpecSwift.hpp"
12
12
  #include "Yolo-Swift-Cxx-Umbrella.hpp"
13
13
  #include <NitroModules/NitroDefines.hpp>
14
+ #include <VisionCamera/VisionCamera-Swift-Cxx-Bridge.hpp>
14
15
 
15
16
  namespace margelo::nitro::yolo::bridge::swift {
16
17
 
18
+ // pragma MARK: std::shared_ptr<margelo::nitro::camera::HybridFrameSpec>
19
+ std::shared_ptr<margelo::nitro::camera::HybridFrameSpec> create_std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_(void* NON_NULL swiftUnsafePointer) noexcept {
20
+ // Implemented in VisionCamera
21
+ return margelo::nitro::camera::bridge::swift::create_std__shared_ptr_HybridFrameSpec_(swiftUnsafePointer);
22
+ }
23
+ void* NON_NULL get_std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_(std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_ cppType) {
24
+ // Implemented in VisionCamera
25
+ return margelo::nitro::camera::bridge::swift::get_std__shared_ptr_HybridFrameSpec_(cppType);
26
+ }
27
+
17
28
  // pragma MARK: std::shared_ptr<HybridYoloSpec>
18
29
  std::shared_ptr<HybridYoloSpec> create_std__shared_ptr_HybridYoloSpec_(void* NON_NULL swiftUnsafePointer) noexcept {
19
30
  Yolo::HybridYoloSpec_cxx swiftPart = Yolo::HybridYoloSpec_cxx::fromUnsafe(swiftUnsafePointer);
@@ -8,18 +8,24 @@
8
8
  #pragma once
9
9
 
10
10
  // Forward declarations of C++ defined types
11
+ // Forward declaration of `HybridFrameSpec` to properly resolve imports.
12
+ namespace margelo::nitro::camera { class HybridFrameSpec; }
11
13
  // Forward declaration of `HybridYoloSpec` to properly resolve imports.
12
14
  namespace margelo::nitro::yolo { class HybridYoloSpec; }
13
15
 
14
16
  // Forward declarations of Swift defined types
17
+ // Forward declaration of `HybridFrameSpec_cxx` to properly resolve imports.
18
+ namespace VisionCamera { class HybridFrameSpec_cxx; }
15
19
  // Forward declaration of `HybridYoloSpec_cxx` to properly resolve imports.
16
20
  namespace Yolo { class HybridYoloSpec_cxx; }
17
21
 
18
22
  // Include C++ defined types
19
23
  #include "HybridYoloSpec.hpp"
20
24
  #include <NitroModules/Result.hpp>
25
+ #include <VisionCamera/HybridFrameSpec.hpp>
21
26
  #include <exception>
22
27
  #include <memory>
28
+ #include <string>
23
29
 
24
30
  /**
25
31
  * Contains specialized versions of C++ templated types so they can be accessed from Swift,
@@ -27,6 +33,18 @@ namespace Yolo { class HybridYoloSpec_cxx; }
27
33
  */
28
34
  namespace margelo::nitro::yolo::bridge::swift {
29
35
 
36
+ // pragma MARK: std::shared_ptr<margelo::nitro::camera::HybridFrameSpec>
37
+ /**
38
+ * Specialized version of `std::shared_ptr<margelo::nitro::camera::HybridFrameSpec>`.
39
+ */
40
+ using std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_ = std::shared_ptr<margelo::nitro::camera::HybridFrameSpec>;
41
+ std::shared_ptr<margelo::nitro::camera::HybridFrameSpec> create_std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_(void* NON_NULL swiftUnsafePointer) noexcept;
42
+ void* NON_NULL get_std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_(std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_ cppType);
43
+
44
+ // pragma MARK: std::weak_ptr<margelo::nitro::camera::HybridFrameSpec>
45
+ using std__weak_ptr_margelo__nitro__camera__HybridFrameSpec_ = std::weak_ptr<margelo::nitro::camera::HybridFrameSpec>;
46
+ inline std__weak_ptr_margelo__nitro__camera__HybridFrameSpec_ weakify_std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_(const std::shared_ptr<margelo::nitro::camera::HybridFrameSpec>& strong) noexcept { return strong; }
47
+
30
48
  // pragma MARK: std::shared_ptr<HybridYoloSpec>
31
49
  /**
32
50
  * Specialized version of `std::shared_ptr<HybridYoloSpec>`.
@@ -56,5 +74,14 @@ namespace margelo::nitro::yolo::bridge::swift {
56
74
  inline Result_void_ create_Result_void_(const std::exception_ptr& error) noexcept {
57
75
  return Result<void>::withError(error);
58
76
  }
77
+
78
+ // pragma MARK: Result<std::string>
79
+ using Result_std__string_ = Result<std::string>;
80
+ inline Result_std__string_ create_Result_std__string_(const std::string& value) noexcept {
81
+ return Result<std::string>::withValue(value);
82
+ }
83
+ inline Result_std__string_ create_Result_std__string_(const std::exception_ptr& error) noexcept {
84
+ return Result<std::string>::withError(error);
85
+ }
59
86
 
60
87
  } // namespace margelo::nitro::yolo::bridge::swift
@@ -8,12 +8,15 @@
8
8
  #pragma once
9
9
 
10
10
  // Forward declarations of C++ defined types
11
+ // Forward declaration of `HybridFrameSpec` to properly resolve imports.
12
+ namespace margelo::nitro::camera { class HybridFrameSpec; }
11
13
  // Forward declaration of `HybridYoloSpec` to properly resolve imports.
12
14
  namespace margelo::nitro::yolo { class HybridYoloSpec; }
13
15
 
14
16
  // Include C++ defined types
15
17
  #include "HybridYoloSpec.hpp"
16
18
  #include <NitroModules/Result.hpp>
19
+ #include <VisionCamera/HybridFrameSpec.hpp>
17
20
  #include <exception>
18
21
  #include <memory>
19
22
  #include <string>
@@ -28,6 +31,8 @@ namespace margelo::nitro::yolo { class HybridYoloSpec; }
28
31
  #include <NitroModules/DateToChronoDate.hpp>
29
32
 
30
33
  // Forward declarations of Swift defined types
34
+ // Forward declaration of `HybridFrameSpec_cxx` to properly resolve imports.
35
+ namespace VisionCamera { class HybridFrameSpec_cxx; }
31
36
  // Forward declaration of `HybridYoloSpec_cxx` to properly resolve imports.
32
37
  namespace Yolo { class HybridYoloSpec_cxx; }
33
38
 
@@ -12,9 +12,12 @@
12
12
  // Forward declaration of `HybridYoloSpec_cxx` to properly resolve imports.
13
13
  namespace Yolo { class HybridYoloSpec_cxx; }
14
14
 
15
-
15
+ // Forward declaration of `HybridFrameSpec` to properly resolve imports.
16
+ namespace margelo::nitro::camera { class HybridFrameSpec; }
16
17
 
17
18
  #include <string>
19
+ #include <memory>
20
+ #include <VisionCamera/HybridFrameSpec.hpp>
18
21
 
19
22
  #include "Yolo-Swift-Cxx-Umbrella.hpp"
20
23
 
@@ -80,6 +83,14 @@ namespace margelo::nitro::yolo {
80
83
  std::rethrow_exception(__result.error());
81
84
  }
82
85
  }
86
+ inline std::string frameToBase64(const std::shared_ptr<margelo::nitro::camera::HybridFrameSpec>& frame) override {
87
+ auto __result = _swiftPart.frameToBase64(frame);
88
+ if (__result.hasError()) [[unlikely]] {
89
+ std::rethrow_exception(__result.error());
90
+ }
91
+ auto __value = std::move(__result.value());
92
+ return __value;
93
+ }
83
94
 
84
95
  private:
85
96
  Yolo::HybridYoloSpec_cxx _swiftPart;
@@ -5,6 +5,7 @@
5
5
  /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import VisionCamera
8
9
  import NitroModules
9
10
 
10
11
  /// See ``HybridYoloSpec``
@@ -15,6 +16,7 @@ public protocol HybridYoloSpec_protocol: HybridObject {
15
16
  // Methods
16
17
  func sum(num1: Double, num2: Double) throws -> Double
17
18
  func loadModel(modelPath: String) throws -> Void
19
+ func frameToBase64(frame: (any HybridFrameSpec)) throws -> String
18
20
  }
19
21
 
20
22
  public extension HybridYoloSpec_protocol {
@@ -6,6 +6,7 @@
6
6
  ///
7
7
 
8
8
  import NitroModules
9
+ import VisionCamera
9
10
 
10
11
  /**
11
12
  * A class implementation that bridges HybridYoloSpec over to C++.
@@ -146,4 +147,20 @@ open class HybridYoloSpec_cxx {
146
147
  return bridge.create_Result_void_(__exceptionPtr)
147
148
  }
148
149
  }
150
+
151
+ @inline(__always)
152
+ public final func frameToBase64(frame: bridge.std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_) -> bridge.Result_std__string_ {
153
+ do {
154
+ let __result = try self.__implementation.frameToBase64(frame: { () -> any HybridFrameSpec in
155
+ let __unsafePointer = bridge.get_std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_(frame)
156
+ let __instance = HybridFrameSpec_cxx.fromUnsafe(__unsafePointer)
157
+ return __instance.getHybridFrameSpec()
158
+ }())
159
+ let __resultCpp = std.string(__result)
160
+ return bridge.create_Result_std__string_(__resultCpp)
161
+ } catch (let __error) {
162
+ let __exceptionPtr = __error.toCpp()
163
+ return bridge.create_Result_std__string_(__exceptionPtr)
164
+ }
165
+ }
149
166
  }
@@ -16,6 +16,7 @@ namespace margelo::nitro::yolo {
16
16
  registerHybrids(this, [](Prototype& prototype) {
17
17
  prototype.registerHybridMethod("sum", &HybridYoloSpec::sum);
18
18
  prototype.registerHybridMethod("loadModel", &HybridYoloSpec::loadModel);
19
+ prototype.registerHybridMethod("frameToBase64", &HybridYoloSpec::frameToBase64);
19
20
  });
20
21
  }
21
22
 
@@ -13,9 +13,12 @@
13
13
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
14
  #endif
15
15
 
16
-
16
+ // Forward declaration of `HybridFrameSpec` to properly resolve imports.
17
+ namespace margelo::nitro::camera { class HybridFrameSpec; }
17
18
 
18
19
  #include <string>
20
+ #include <memory>
21
+ #include <VisionCamera/HybridFrameSpec.hpp>
19
22
 
20
23
  namespace margelo::nitro::yolo {
21
24
 
@@ -50,6 +53,7 @@ namespace margelo::nitro::yolo {
50
53
  // Methods
51
54
  virtual double sum(double num1, double num2) = 0;
52
55
  virtual void loadModel(const std::string& modelPath) = 0;
56
+ virtual std::string frameToBase64(const std::shared_ptr<margelo::nitro::camera::HybridFrameSpec>& frame) = 0;
53
57
 
54
58
  protected:
55
59
  // Hybrid Setup
package/package.json CHANGED
@@ -1,122 +1,127 @@
1
- {
2
- "name": "react-native-yolo",
3
- "version": "0.0.3",
4
- "description": "react-native-yolo is a react native package built with Nitro",
5
- "main": "./lib/commonjs/index.js",
6
- "module": "./lib/module/index.js",
7
- "types": "./lib/typescript/src/index.d.ts",
8
- "react-native": "src/index",
9
- "source": "src/index",
10
- "scripts": {
11
- "typecheck": "tsc --noEmit",
12
- "clean": "git clean -dfX",
13
- "release": "semantic-release",
14
- "build": "npm run typecheck && bob build",
15
- "codegen": "nitrogen --logLevel=\"debug\" && npm run build && node post-script.js"
16
- },
17
- "keywords": [
18
- "react-native",
19
- "react-native-yolo"
20
- ],
21
- "files": [
22
- "src",
23
- "react-native.config.js",
24
- "lib",
25
- "nitrogen",
26
- "cpp",
27
- "nitro.json",
28
- "android/build.gradle",
29
- "android/fix-prefab.gradle",
30
- "android/gradle.properties",
31
- "android/CMakeLists.txt",
32
- "android/src",
33
- "ios/**/*.h",
34
- "ios/**/*.m",
35
- "ios/**/*.mm",
36
- "ios/**/*.cpp",
37
- "ios/**/*.swift",
38
- "app.plugin.js",
39
- "*.podspec",
40
- "README.md"
41
- ],
42
- "workspaces": [
43
- "example"
44
- ],
45
- "repository": "https://github.com/khaoula-ghalimi/react-native-yolo.git",
46
- "author": "Khaoula-Ghalimi",
47
- "license": "MIT",
48
- "bugs": "https://github.com/khaoula-ghalimi/react-native-yolo/issues",
49
- "homepage": "https://github.com/khaoula-ghalimi/react-native-yolo#readme",
50
- "publishConfig": {
51
- "access": "public",
52
- "registry": "https://registry.npmjs.org/"
53
- },
54
- "devDependencies": {
55
- "@jamesacarr/eslint-formatter-github-actions": "^0.2.0",
56
- "@semantic-release/changelog": "^6.0.3",
57
- "@semantic-release/git": "^10.0.1",
58
- "@types/jest": "^29.5.12",
59
- "@types/react": "19.2.0",
60
- "nitrogen": "0.35.9",
61
- "react": "19.2.3",
62
- "react-native": "0.84.1",
63
- "react-native-builder-bob": "^0.40.18",
64
- "react-native-nitro-modules": "0.35.9",
65
- "conventional-changelog-conventionalcommits": "^9.1.0",
66
- "semantic-release": "^25.0.3",
67
- "typescript": "^5.8.3"
68
- },
69
- "peerDependencies": {
70
- "react": "*",
71
- "react-native": "*",
72
- "react-native-nitro-modules": "*"
73
- },
74
- "eslintConfig": {
75
- "root": true,
76
- "extends": [
77
- "@react-native",
78
- "prettier"
79
- ],
80
- "plugins": [
81
- "prettier"
82
- ],
83
- "rules": {
84
- "prettier/prettier": [
85
- "warn",
86
- {
87
- "quoteProps": "consistent",
88
- "singleQuote": true,
89
- "tabWidth": 2,
90
- "trailingComma": "es5",
91
- "useTabs": false
92
- }
93
- ]
94
- }
95
- },
96
- "eslintIgnore": [
97
- "node_modules/",
98
- "lib/"
99
- ],
100
- "prettier": {
101
- "quoteProps": "consistent",
102
- "singleQuote": true,
103
- "tabWidth": 2,
104
- "trailingComma": "es5",
105
- "useTabs": false,
106
- "semi": false
107
- },
108
- "react-native-builder-bob": {
109
- "source": "src",
110
- "output": "lib",
111
- "targets": [
112
- "commonjs",
113
- "module",
114
- [
115
- "typescript",
116
- {
117
- "project": "tsconfig.json"
118
- }
119
- ]
120
- ]
121
- }
122
- }
1
+ {
2
+ "name": "react-native-yolo",
3
+ "version": "0.0.4",
4
+ "description": "react-native-yolo is a react native package built with Nitro",
5
+ "main": "./lib/commonjs/index.js",
6
+ "module": "./lib/module/index.js",
7
+ "types": "./lib/typescript/src/index.d.ts",
8
+ "react-native": "src/index",
9
+ "source": "src/index",
10
+ "scripts": {
11
+ "typecheck": "tsc --noEmit",
12
+ "clean": "git clean -dfX",
13
+ "release": "semantic-release",
14
+ "build": "npm run typecheck && bob build",
15
+ "codegen": "nitrogen --logLevel=\"debug\" && npm run build && node post-script.js"
16
+ },
17
+ "keywords": [
18
+ "react-native",
19
+ "react-native-yolo"
20
+ ],
21
+ "files": [
22
+ "src",
23
+ "react-native.config.js",
24
+ "lib",
25
+ "nitrogen",
26
+ "cpp",
27
+ "nitro.json",
28
+ "android/build.gradle",
29
+ "android/fix-prefab.gradle",
30
+ "android/gradle.properties",
31
+ "android/CMakeLists.txt",
32
+ "android/src",
33
+ "ios/**/*.h",
34
+ "ios/**/*.m",
35
+ "ios/**/*.mm",
36
+ "ios/**/*.cpp",
37
+ "ios/**/*.swift",
38
+ "app.plugin.js",
39
+ "*.podspec",
40
+ "README.md"
41
+ ],
42
+ "repository": "https://github.com/khaoula-ghalimi/react-native-yolo.git",
43
+ "author": "Khaoula-Ghalimi",
44
+ "license": "MIT",
45
+ "bugs": "https://github.com/khaoula-ghalimi/react-native-yolo/issues",
46
+ "homepage": "https://github.com/khaoula-ghalimi/react-native-yolo#readme",
47
+ "publishConfig": {
48
+ "access": "public",
49
+ "registry": "https://registry.npmjs.org/"
50
+ },
51
+ "devDependencies": {
52
+ "@jamesacarr/eslint-formatter-github-actions": "^0.2.0",
53
+ "@semantic-release/changelog": "^6.0.3",
54
+ "@semantic-release/git": "^10.0.1",
55
+ "@types/jest": "^29.5.12",
56
+ "@types/react": "19.2.0",
57
+ "conventional-changelog-conventionalcommits": "^9.1.0",
58
+ "nitrogen": "0.35.9",
59
+ "react": "19.2.3",
60
+ "react-native": "0.84.1",
61
+ "react-native-builder-bob": "^0.40.18",
62
+ "react-native-nitro-image": "^0.15.1",
63
+ "react-native-nitro-modules": "0.35.9",
64
+ "react-native-vision-camera": "^5.0.11",
65
+ "react-native-vision-camera-worklets": "^5.0.11",
66
+ "react-native-reanimated": "4.3.1",
67
+ "react-native-safe-area-context": "~5.7.0",
68
+ "react-native-worklets": "0.8.3",
69
+ "semantic-release": "^25.0.3",
70
+ "typescript": "^5.8.3"
71
+ },
72
+ "peerDependencies": {
73
+ "react": "*",
74
+ "react-native": "*",
75
+ "react-native-nitro-image": "^0.15.1",
76
+ "react-native-nitro-modules": "*",
77
+ "react-native-vision-camera": ">= 5.0"
78
+ },
79
+ "eslintConfig": {
80
+ "root": true,
81
+ "extends": [
82
+ "@react-native",
83
+ "prettier"
84
+ ],
85
+ "plugins": [
86
+ "prettier"
87
+ ],
88
+ "rules": {
89
+ "prettier/prettier": [
90
+ "warn",
91
+ {
92
+ "quoteProps": "consistent",
93
+ "singleQuote": true,
94
+ "tabWidth": 2,
95
+ "trailingComma": "es5",
96
+ "useTabs": false
97
+ }
98
+ ]
99
+ }
100
+ },
101
+ "eslintIgnore": [
102
+ "node_modules/",
103
+ "lib/"
104
+ ],
105
+ "prettier": {
106
+ "quoteProps": "consistent",
107
+ "singleQuote": true,
108
+ "tabWidth": 2,
109
+ "trailingComma": "es5",
110
+ "useTabs": false,
111
+ "semi": false
112
+ },
113
+ "react-native-builder-bob": {
114
+ "source": "src",
115
+ "output": "lib",
116
+ "targets": [
117
+ "commonjs",
118
+ "module",
119
+ [
120
+ "typescript",
121
+ {
122
+ "project": "tsconfig.json"
123
+ }
124
+ ]
125
+ ]
126
+ }
127
+ }
package/src/index.ts CHANGED
@@ -1,12 +1,12 @@
1
- import { NitroModules } from 'react-native-nitro-modules'
2
- import type { Yolo as YoloSpec } from './specs/yolo.nitro'
3
- import { Image } from 'react-native'
4
-
5
- const NativeYolo = NitroModules.createHybridObject<YoloSpec>('Yolo')
6
-
7
- export const Yolo = Object.assign(NativeYolo, {
8
- loadModelTest(modelAssetId: number){
9
- const { uri } = Image.resolveAssetSource(modelAssetId);
10
- return NativeYolo.loadModel(uri)
11
- },
1
+ import { NitroModules } from 'react-native-nitro-modules'
2
+ import type { Yolo as YoloSpec } from './specs/yolo.nitro'
3
+ import { Image } from 'react-native'
4
+
5
+ const NativeYolo = NitroModules.createHybridObject<YoloSpec>('Yolo')
6
+
7
+ export const Yolo = Object.assign(NativeYolo, {
8
+ loadModelTest(modelAssetId: number){
9
+ const { uri } = Image.resolveAssetSource(modelAssetId);
10
+ return NativeYolo.loadModel(uri)
11
+ },
12
12
  })
@@ -1,7 +1,8 @@
1
- import type { HybridObject } from 'react-native-nitro-modules'
2
-
3
-
4
- export interface Yolo extends HybridObject<{ ios: 'swift', android: 'kotlin' }> {
5
- sum(num1: number, num2: number): number
6
- loadModel(modelPath: string): void
1
+ import type { HybridObject } from 'react-native-nitro-modules'
2
+ import type { Frame } from 'react-native-vision-camera'
3
+
4
+ export interface Yolo extends HybridObject<{ ios: 'swift', android: 'kotlin' }> {
5
+ sum(num1: number, num2: number): number
6
+ loadModel(modelPath: string): void
7
+ frameToBase64(frame: Frame): string
7
8
  }