react-native-yolo 0.0.3 → 0.0.5

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 (50) 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 +265 -42
  11. package/android/src/main/java/com/yolo/YoloPackage.kt +20 -20
  12. package/android/src/main/java/com/yolo/loader/YoloModelLoader.kt +31 -0
  13. package/android/src/main/java/com/yolo/utils/BitmapOrientationFixer.kt +56 -0
  14. package/android/src/main/java/com/yolo/utils/FrameJpegConverter.kt +27 -0
  15. package/android/src/main/java/com/yolo/utils/FrameValidator.kt +29 -0
  16. package/android/src/main/java/com/yolo/utils/Nv21JpegEncoder.kt +34 -0
  17. package/android/src/main/java/com/yolo/utils/Yuv420ToNv21Converter.kt +62 -0
  18. package/ios/Bridge.h +8 -8
  19. package/ios/HybridYolo.swift +14 -14
  20. package/lib/commonjs/index.js +10 -1
  21. package/lib/commonjs/index.js.map +1 -1
  22. package/lib/module/index.js +10 -1
  23. package/lib/module/index.js.map +1 -1
  24. package/lib/typescript/src/index.d.ts +3 -1
  25. package/lib/typescript/src/index.d.ts.map +1 -1
  26. package/lib/typescript/src/specs/yolo.nitro.d.ts +15 -0
  27. package/lib/typescript/src/specs/yolo.nitro.d.ts.map +1 -1
  28. package/nitro.json +29 -29
  29. package/nitrogen/generated/android/c++/JBoundingBox.hpp +69 -0
  30. package/nitrogen/generated/android/c++/JDetection.hpp +66 -0
  31. package/nitrogen/generated/android/c++/JHybridYoloSpec.cpp +33 -1
  32. package/nitrogen/generated/android/c++/JHybridYoloSpec.hpp +2 -0
  33. package/nitrogen/generated/android/kotlin/com/margelo/nitro/yolo/BoundingBox.kt +66 -0
  34. package/nitrogen/generated/android/kotlin/com/margelo/nitro/yolo/Detection.kt +61 -0
  35. package/nitrogen/generated/android/kotlin/com/margelo/nitro/yolo/HybridYoloSpec.kt +9 -0
  36. package/nitrogen/generated/ios/Yolo-Swift-Cxx-Bridge.cpp +11 -0
  37. package/nitrogen/generated/ios/Yolo-Swift-Cxx-Bridge.hpp +54 -0
  38. package/nitrogen/generated/ios/Yolo-Swift-Cxx-Umbrella.hpp +12 -0
  39. package/nitrogen/generated/ios/c++/HybridYoloSpecSwift.hpp +27 -1
  40. package/nitrogen/generated/ios/swift/BoundingBox.swift +44 -0
  41. package/nitrogen/generated/ios/swift/Detection.swift +39 -0
  42. package/nitrogen/generated/ios/swift/HybridYoloSpec.swift +3 -0
  43. package/nitrogen/generated/ios/swift/HybridYoloSpec_cxx.swift +39 -0
  44. package/nitrogen/generated/shared/c++/BoundingBox.hpp +95 -0
  45. package/nitrogen/generated/shared/c++/Detection.hpp +92 -0
  46. package/nitrogen/generated/shared/c++/HybridYoloSpec.cpp +2 -0
  47. package/nitrogen/generated/shared/c++/HybridYoloSpec.hpp +10 -1
  48. package/package.json +127 -122
  49. package/src/index.ts +11 -11
  50. package/src/specs/yolo.nitro.ts +24 -7
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.5",
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,24 @@
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
7
- }
1
+ import type { HybridObject } from 'react-native-nitro-modules'
2
+ import type { Frame } from 'react-native-vision-camera'
3
+
4
+ export type Detection = {
5
+ classId: number
6
+ score: number
7
+ boundingBox: BoundingBox
8
+ }
9
+ export type BoundingBox = {
10
+ x1: number
11
+ y1: number
12
+ x2: number
13
+ y2: number
14
+ }
15
+
16
+ export interface Yolo extends HybridObject<{
17
+ ios: 'swift'
18
+ android: 'kotlin'
19
+ }> {
20
+ sum(num1: number, num2: number): number
21
+ loadModel(modelPath: string): void
22
+ frameToBase64(frame: Frame): string
23
+ detect(frame: Frame): Detection[]
24
+ }