@salve-software/mako-react-native 1.0.1

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 (323) hide show
  1. package/LICENSE +21 -0
  2. package/NitroMako.podspec +31 -0
  3. package/README.md +90 -0
  4. package/android/CMakeLists.txt +32 -0
  5. package/android/build.gradle +148 -0
  6. package/android/fix-prefab.gradle +51 -0
  7. package/android/gradle.properties +5 -0
  8. package/android/src/main/AndroidManifest.xml +2 -0
  9. package/android/src/main/cpp/cpp-adapter.cpp +9 -0
  10. package/android/src/main/java/com/margelo/nitro/mako/HybridMako.kt +235 -0
  11. package/android/src/main/java/com/margelo/nitro/mako/MakoPackage.kt +18 -0
  12. package/android/src/main/java/com/margelo/nitro/mako/PerformanceMonitor.kt +260 -0
  13. package/ios/Bridge.h +8 -0
  14. package/ios/HybridMako.swift +245 -0
  15. package/ios/PerformanceMonitor.swift +223 -0
  16. package/lib/commonjs/index.js +17 -0
  17. package/lib/commonjs/index.js.map +1 -0
  18. package/lib/commonjs/library/client/constants.js +34 -0
  19. package/lib/commonjs/library/client/constants.js.map +1 -0
  20. package/lib/commonjs/library/client/index.js +28 -0
  21. package/lib/commonjs/library/client/index.js.map +1 -0
  22. package/lib/commonjs/library/client/mako-client.js +419 -0
  23. package/lib/commonjs/library/client/mako-client.js.map +1 -0
  24. package/lib/commonjs/library/component-handler/component-handler.js +158 -0
  25. package/lib/commonjs/library/component-handler/component-handler.js.map +1 -0
  26. package/lib/commonjs/library/component-handler/index.js +39 -0
  27. package/lib/commonjs/library/component-handler/index.js.map +1 -0
  28. package/lib/commonjs/library/component-handler/types.js +6 -0
  29. package/lib/commonjs/library/component-handler/types.js.map +1 -0
  30. package/lib/commonjs/library/component-handler/utils/index.js +26 -0
  31. package/lib/commonjs/library/component-handler/utils/index.js.map +1 -0
  32. package/lib/commonjs/library/device/device-handler.js +80 -0
  33. package/lib/commonjs/library/device/device-handler.js.map +1 -0
  34. package/lib/commonjs/library/device/index.js +9 -0
  35. package/lib/commonjs/library/device/index.js.map +1 -0
  36. package/lib/commonjs/library/device/types.js +2 -0
  37. package/lib/commonjs/library/device/types.js.map +1 -0
  38. package/lib/commonjs/library/device/utils/generate-uuid.js +14 -0
  39. package/lib/commonjs/library/device/utils/generate-uuid.js.map +1 -0
  40. package/lib/commonjs/library/index.js +156 -0
  41. package/lib/commonjs/library/index.js.map +1 -0
  42. package/lib/commonjs/library/interceptors/index.js +13 -0
  43. package/lib/commonjs/library/interceptors/index.js.map +1 -0
  44. package/lib/commonjs/library/interceptors/js-console.js +88 -0
  45. package/lib/commonjs/library/interceptors/js-console.js.map +1 -0
  46. package/lib/commonjs/library/interceptors/react-devtools.js +219 -0
  47. package/lib/commonjs/library/interceptors/react-devtools.js.map +1 -0
  48. package/lib/commonjs/library/interceptors/xhr.js +74 -0
  49. package/lib/commonjs/library/interceptors/xhr.js.map +1 -0
  50. package/lib/commonjs/library/network-handler/index.js +17 -0
  51. package/lib/commonjs/library/network-handler/index.js.map +1 -0
  52. package/lib/commonjs/library/network-handler/network-handler.js +103 -0
  53. package/lib/commonjs/library/network-handler/network-handler.js.map +1 -0
  54. package/lib/commonjs/library/network-handler/types.js +6 -0
  55. package/lib/commonjs/library/network-handler/types.js.map +1 -0
  56. package/lib/commonjs/library/network-handler/utils/generate-request-id.js +13 -0
  57. package/lib/commonjs/library/network-handler/utils/generate-request-id.js.map +1 -0
  58. package/lib/commonjs/library/network-handler/utils/index.js +41 -0
  59. package/lib/commonjs/library/network-handler/utils/index.js.map +1 -0
  60. package/lib/commonjs/library/network-handler/utils/parse-response-headers.js +26 -0
  61. package/lib/commonjs/library/network-handler/utils/parse-response-headers.js.map +1 -0
  62. package/lib/commonjs/library/network-handler/utils/read-blob-as-text.js +18 -0
  63. package/lib/commonjs/library/network-handler/utils/read-blob-as-text.js.map +1 -0
  64. package/lib/commonjs/library/network-handler/utils/response-to-string.js +35 -0
  65. package/lib/commonjs/library/network-handler/utils/response-to-string.js.map +1 -0
  66. package/lib/commonjs/library/network-handler/utils/should-ignore-url.js +13 -0
  67. package/lib/commonjs/library/network-handler/utils/should-ignore-url.js.map +1 -0
  68. package/lib/commonjs/library/performance-handler/index.js +13 -0
  69. package/lib/commonjs/library/performance-handler/index.js.map +1 -0
  70. package/lib/commonjs/library/performance-handler/performance-handler.js +94 -0
  71. package/lib/commonjs/library/performance-handler/performance-handler.js.map +1 -0
  72. package/lib/commonjs/library/performance-handler/types.js +6 -0
  73. package/lib/commonjs/library/performance-handler/types.js.map +1 -0
  74. package/lib/commonjs/library/project/index.js +15 -0
  75. package/lib/commonjs/library/project/index.js.map +1 -0
  76. package/lib/commonjs/library/project/project-handler.js +31 -0
  77. package/lib/commonjs/library/project/project-handler.js.map +1 -0
  78. package/lib/commonjs/library/types.js +2 -0
  79. package/lib/commonjs/library/types.js.map +1 -0
  80. package/lib/commonjs/package.json +1 -0
  81. package/lib/commonjs/specs/mako.nitro.js +6 -0
  82. package/lib/commonjs/specs/mako.nitro.js.map +1 -0
  83. package/lib/module/index.js +6 -0
  84. package/lib/module/index.js.map +1 -0
  85. package/lib/module/library/client/constants.js +30 -0
  86. package/lib/module/library/client/constants.js.map +1 -0
  87. package/lib/module/library/client/index.js +6 -0
  88. package/lib/module/library/client/index.js.map +1 -0
  89. package/lib/module/library/client/mako-client.js +415 -0
  90. package/lib/module/library/client/mako-client.js.map +1 -0
  91. package/lib/module/library/component-handler/component-handler.js +153 -0
  92. package/lib/module/library/component-handler/component-handler.js.map +1 -0
  93. package/lib/module/library/component-handler/index.js +6 -0
  94. package/lib/module/library/component-handler/index.js.map +1 -0
  95. package/lib/module/library/component-handler/types.js +4 -0
  96. package/lib/module/library/component-handler/types.js.map +1 -0
  97. package/lib/module/library/component-handler/utils/index.js +21 -0
  98. package/lib/module/library/component-handler/utils/index.js.map +1 -0
  99. package/lib/module/library/device/device-handler.js +75 -0
  100. package/lib/module/library/device/device-handler.js.map +1 -0
  101. package/lib/module/library/device/index.js +5 -0
  102. package/lib/module/library/device/index.js.map +1 -0
  103. package/lib/module/library/device/types.js +2 -0
  104. package/lib/module/library/device/types.js.map +1 -0
  105. package/lib/module/library/device/utils/generate-uuid.js +10 -0
  106. package/lib/module/library/device/utils/generate-uuid.js.map +1 -0
  107. package/lib/module/library/index.js +155 -0
  108. package/lib/module/library/index.js.map +1 -0
  109. package/lib/module/library/interceptors/index.js +9 -0
  110. package/lib/module/library/interceptors/index.js.map +1 -0
  111. package/lib/module/library/interceptors/js-console.js +83 -0
  112. package/lib/module/library/interceptors/js-console.js.map +1 -0
  113. package/lib/module/library/interceptors/react-devtools.js +214 -0
  114. package/lib/module/library/interceptors/react-devtools.js.map +1 -0
  115. package/lib/module/library/interceptors/xhr.js +69 -0
  116. package/lib/module/library/interceptors/xhr.js.map +1 -0
  117. package/lib/module/library/network-handler/index.js +4 -0
  118. package/lib/module/library/network-handler/index.js.map +1 -0
  119. package/lib/module/library/network-handler/network-handler.js +98 -0
  120. package/lib/module/library/network-handler/network-handler.js.map +1 -0
  121. package/lib/module/library/network-handler/types.js +4 -0
  122. package/lib/module/library/network-handler/types.js.map +1 -0
  123. package/lib/module/library/network-handler/utils/generate-request-id.js +9 -0
  124. package/lib/module/library/network-handler/utils/generate-request-id.js.map +1 -0
  125. package/lib/module/library/network-handler/utils/index.js +8 -0
  126. package/lib/module/library/network-handler/utils/index.js.map +1 -0
  127. package/lib/module/library/network-handler/utils/parse-response-headers.js +22 -0
  128. package/lib/module/library/network-handler/utils/parse-response-headers.js.map +1 -0
  129. package/lib/module/library/network-handler/utils/read-blob-as-text.js +14 -0
  130. package/lib/module/library/network-handler/utils/read-blob-as-text.js.map +1 -0
  131. package/lib/module/library/network-handler/utils/response-to-string.js +31 -0
  132. package/lib/module/library/network-handler/utils/response-to-string.js.map +1 -0
  133. package/lib/module/library/network-handler/utils/should-ignore-url.js +9 -0
  134. package/lib/module/library/network-handler/utils/should-ignore-url.js.map +1 -0
  135. package/lib/module/library/performance-handler/index.js +4 -0
  136. package/lib/module/library/performance-handler/index.js.map +1 -0
  137. package/lib/module/library/performance-handler/performance-handler.js +89 -0
  138. package/lib/module/library/performance-handler/performance-handler.js.map +1 -0
  139. package/lib/module/library/performance-handler/types.js +4 -0
  140. package/lib/module/library/performance-handler/types.js.map +1 -0
  141. package/lib/module/library/project/index.js +6 -0
  142. package/lib/module/library/project/index.js.map +1 -0
  143. package/lib/module/library/project/project-handler.js +26 -0
  144. package/lib/module/library/project/project-handler.js.map +1 -0
  145. package/lib/module/library/types.js +2 -0
  146. package/lib/module/library/types.js.map +1 -0
  147. package/lib/module/specs/mako.nitro.js +4 -0
  148. package/lib/module/specs/mako.nitro.js.map +1 -0
  149. package/lib/typescript/src/index.d.ts +4 -0
  150. package/lib/typescript/src/index.d.ts.map +1 -0
  151. package/lib/typescript/src/library/client/constants.d.ts +24 -0
  152. package/lib/typescript/src/library/client/constants.d.ts.map +1 -0
  153. package/lib/typescript/src/library/client/index.d.ts +4 -0
  154. package/lib/typescript/src/library/client/index.d.ts.map +1 -0
  155. package/lib/typescript/src/library/client/mako-client.d.ts +87 -0
  156. package/lib/typescript/src/library/client/mako-client.d.ts.map +1 -0
  157. package/lib/typescript/src/library/component-handler/component-handler.d.ts +21 -0
  158. package/lib/typescript/src/library/component-handler/component-handler.d.ts.map +1 -0
  159. package/lib/typescript/src/library/component-handler/index.d.ts +4 -0
  160. package/lib/typescript/src/library/component-handler/index.d.ts.map +1 -0
  161. package/lib/typescript/src/library/component-handler/types.d.ts +22 -0
  162. package/lib/typescript/src/library/component-handler/types.d.ts.map +1 -0
  163. package/lib/typescript/src/library/component-handler/utils/index.d.ts +13 -0
  164. package/lib/typescript/src/library/component-handler/utils/index.d.ts.map +1 -0
  165. package/lib/typescript/src/library/device/__tests__/device-handler.test.d.ts +2 -0
  166. package/lib/typescript/src/library/device/__tests__/device-handler.test.d.ts.map +1 -0
  167. package/lib/typescript/src/library/device/device-handler.d.ts +11 -0
  168. package/lib/typescript/src/library/device/device-handler.d.ts.map +1 -0
  169. package/lib/typescript/src/library/device/index.d.ts +3 -0
  170. package/lib/typescript/src/library/device/index.d.ts.map +1 -0
  171. package/lib/typescript/src/library/device/types.d.ts +8 -0
  172. package/lib/typescript/src/library/device/types.d.ts.map +1 -0
  173. package/lib/typescript/src/library/device/utils/generate-uuid.d.ts +2 -0
  174. package/lib/typescript/src/library/device/utils/generate-uuid.d.ts.map +1 -0
  175. package/lib/typescript/src/library/index.d.ts +120 -0
  176. package/lib/typescript/src/library/index.d.ts.map +1 -0
  177. package/lib/typescript/src/library/interceptors/__tests__/js-console.test.d.ts +2 -0
  178. package/lib/typescript/src/library/interceptors/__tests__/js-console.test.d.ts.map +1 -0
  179. package/lib/typescript/src/library/interceptors/__tests__/react-devtools.test.d.ts +2 -0
  180. package/lib/typescript/src/library/interceptors/__tests__/react-devtools.test.d.ts.map +1 -0
  181. package/lib/typescript/src/library/interceptors/__tests__/xhr.test.d.ts +2 -0
  182. package/lib/typescript/src/library/interceptors/__tests__/xhr.test.d.ts.map +1 -0
  183. package/lib/typescript/src/library/interceptors/index.d.ts +7 -0
  184. package/lib/typescript/src/library/interceptors/index.d.ts.map +1 -0
  185. package/lib/typescript/src/library/interceptors/js-console.d.ts +17 -0
  186. package/lib/typescript/src/library/interceptors/js-console.d.ts.map +1 -0
  187. package/lib/typescript/src/library/interceptors/react-devtools.d.ts +54 -0
  188. package/lib/typescript/src/library/interceptors/react-devtools.d.ts.map +1 -0
  189. package/lib/typescript/src/library/interceptors/xhr.d.ts +14 -0
  190. package/lib/typescript/src/library/interceptors/xhr.d.ts.map +1 -0
  191. package/lib/typescript/src/library/network-handler/__tests__/network-handler.test.d.ts +2 -0
  192. package/lib/typescript/src/library/network-handler/__tests__/network-handler.test.d.ts.map +1 -0
  193. package/lib/typescript/src/library/network-handler/index.d.ts +2 -0
  194. package/lib/typescript/src/library/network-handler/index.d.ts.map +1 -0
  195. package/lib/typescript/src/library/network-handler/network-handler.d.ts +19 -0
  196. package/lib/typescript/src/library/network-handler/network-handler.d.ts.map +1 -0
  197. package/lib/typescript/src/library/network-handler/types.d.ts +6 -0
  198. package/lib/typescript/src/library/network-handler/types.d.ts.map +1 -0
  199. package/lib/typescript/src/library/network-handler/utils/__tests__/generate-request-id.test.d.ts +2 -0
  200. package/lib/typescript/src/library/network-handler/utils/__tests__/generate-request-id.test.d.ts.map +1 -0
  201. package/lib/typescript/src/library/network-handler/utils/__tests__/parse-response-headers.test.d.ts +2 -0
  202. package/lib/typescript/src/library/network-handler/utils/__tests__/parse-response-headers.test.d.ts.map +1 -0
  203. package/lib/typescript/src/library/network-handler/utils/__tests__/read-blob-as-text.test.d.ts +2 -0
  204. package/lib/typescript/src/library/network-handler/utils/__tests__/read-blob-as-text.test.d.ts.map +1 -0
  205. package/lib/typescript/src/library/network-handler/utils/__tests__/response-to-string.test.d.ts +2 -0
  206. package/lib/typescript/src/library/network-handler/utils/__tests__/response-to-string.test.d.ts.map +1 -0
  207. package/lib/typescript/src/library/network-handler/utils/__tests__/should-ignore-url.test.d.ts +2 -0
  208. package/lib/typescript/src/library/network-handler/utils/__tests__/should-ignore-url.test.d.ts.map +1 -0
  209. package/lib/typescript/src/library/network-handler/utils/generate-request-id.d.ts +5 -0
  210. package/lib/typescript/src/library/network-handler/utils/generate-request-id.d.ts.map +1 -0
  211. package/lib/typescript/src/library/network-handler/utils/index.d.ts +6 -0
  212. package/lib/typescript/src/library/network-handler/utils/index.d.ts.map +1 -0
  213. package/lib/typescript/src/library/network-handler/utils/parse-response-headers.d.ts +5 -0
  214. package/lib/typescript/src/library/network-handler/utils/parse-response-headers.d.ts.map +1 -0
  215. package/lib/typescript/src/library/network-handler/utils/read-blob-as-text.d.ts +5 -0
  216. package/lib/typescript/src/library/network-handler/utils/read-blob-as-text.d.ts.map +1 -0
  217. package/lib/typescript/src/library/network-handler/utils/response-to-string.d.ts +5 -0
  218. package/lib/typescript/src/library/network-handler/utils/response-to-string.d.ts.map +1 -0
  219. package/lib/typescript/src/library/network-handler/utils/should-ignore-url.d.ts +5 -0
  220. package/lib/typescript/src/library/network-handler/utils/should-ignore-url.d.ts.map +1 -0
  221. package/lib/typescript/src/library/performance-handler/index.d.ts +3 -0
  222. package/lib/typescript/src/library/performance-handler/index.d.ts.map +1 -0
  223. package/lib/typescript/src/library/performance-handler/performance-handler.d.ts +27 -0
  224. package/lib/typescript/src/library/performance-handler/performance-handler.d.ts.map +1 -0
  225. package/lib/typescript/src/library/performance-handler/types.d.ts +20 -0
  226. package/lib/typescript/src/library/performance-handler/types.d.ts.map +1 -0
  227. package/lib/typescript/src/library/project/index.d.ts +4 -0
  228. package/lib/typescript/src/library/project/index.d.ts.map +1 -0
  229. package/lib/typescript/src/library/project/project-handler.d.ts +7 -0
  230. package/lib/typescript/src/library/project/project-handler.d.ts.map +1 -0
  231. package/lib/typescript/src/library/types.d.ts +41 -0
  232. package/lib/typescript/src/library/types.d.ts.map +1 -0
  233. package/lib/typescript/src/specs/mako.nitro.d.ts +100 -0
  234. package/lib/typescript/src/specs/mako.nitro.d.ts.map +1 -0
  235. package/nitro.json +24 -0
  236. package/nitrogen/generated/.gitattributes +1 -0
  237. package/nitrogen/generated/android/NitroMako+autolinking.cmake +81 -0
  238. package/nitrogen/generated/android/NitroMako+autolinking.gradle +27 -0
  239. package/nitrogen/generated/android/NitroMakoOnLoad.cpp +58 -0
  240. package/nitrogen/generated/android/NitroMakoOnLoad.hpp +34 -0
  241. package/nitrogen/generated/android/c++/JDeviceInfoResult.hpp +69 -0
  242. package/nitrogen/generated/android/c++/JFunc_void_NativeLogEntry.hpp +80 -0
  243. package/nitrogen/generated/android/c++/JFunc_void_PerformanceMetrics.hpp +77 -0
  244. package/nitrogen/generated/android/c++/JHybridNitroMakoSpec.cpp +124 -0
  245. package/nitrogen/generated/android/c++/JHybridNitroMakoSpec.hpp +74 -0
  246. package/nitrogen/generated/android/c++/JNativeLogEntry.hpp +71 -0
  247. package/nitrogen/generated/android/c++/JNativeLogLevel.hpp +64 -0
  248. package/nitrogen/generated/android/c++/JPerformanceMetrics.hpp +69 -0
  249. package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/DeviceInfoResult.kt +47 -0
  250. package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/Func_void_NativeLogEntry.kt +80 -0
  251. package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/Func_void_PerformanceMetrics.kt +80 -0
  252. package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/HybridNitroMakoSpec.kt +108 -0
  253. package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/NativeLogEntry.kt +47 -0
  254. package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/NativeLogLevel.kt +25 -0
  255. package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/NitroMakoOnLoad.kt +35 -0
  256. package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/PerformanceMetrics.kt +47 -0
  257. package/nitrogen/generated/ios/NitroMako+autolinking.rb +62 -0
  258. package/nitrogen/generated/ios/NitroMako-Swift-Cxx-Bridge.cpp +49 -0
  259. package/nitrogen/generated/ios/NitroMako-Swift-Cxx-Bridge.hpp +185 -0
  260. package/nitrogen/generated/ios/NitroMako-Swift-Cxx-Umbrella.hpp +58 -0
  261. package/nitrogen/generated/ios/NitroMakoAutolinking.mm +33 -0
  262. package/nitrogen/generated/ios/NitroMakoAutolinking.swift +26 -0
  263. package/nitrogen/generated/ios/c++/HybridNitroMakoSpecSwift.cpp +11 -0
  264. package/nitrogen/generated/ios/c++/HybridNitroMakoSpecSwift.hpp +175 -0
  265. package/nitrogen/generated/ios/swift/DeviceInfoResult.swift +44 -0
  266. package/nitrogen/generated/ios/swift/Func_void_NativeLogEntry.swift +46 -0
  267. package/nitrogen/generated/ios/swift/Func_void_PerformanceMetrics.swift +46 -0
  268. package/nitrogen/generated/ios/swift/HybridNitroMakoSpec.swift +66 -0
  269. package/nitrogen/generated/ios/swift/HybridNitroMakoSpec_cxx.swift +289 -0
  270. package/nitrogen/generated/ios/swift/NativeLogEntry.swift +44 -0
  271. package/nitrogen/generated/ios/swift/NativeLogLevel.swift +48 -0
  272. package/nitrogen/generated/ios/swift/PerformanceMetrics.swift +44 -0
  273. package/nitrogen/generated/shared/c++/DeviceInfoResult.hpp +95 -0
  274. package/nitrogen/generated/shared/c++/HybridNitroMakoSpec.cpp +32 -0
  275. package/nitrogen/generated/shared/c++/HybridNitroMakoSpec.hpp +83 -0
  276. package/nitrogen/generated/shared/c++/NativeLogEntry.hpp +97 -0
  277. package/nitrogen/generated/shared/c++/NativeLogLevel.hpp +84 -0
  278. package/nitrogen/generated/shared/c++/PerformanceMetrics.hpp +95 -0
  279. package/package.json +128 -0
  280. package/react-native.config.js +16 -0
  281. package/src/index.ts +7 -0
  282. package/src/library/client/constants.ts +36 -0
  283. package/src/library/client/index.ts +9 -0
  284. package/src/library/client/mako-client.ts +494 -0
  285. package/src/library/component-handler/component-handler.ts +162 -0
  286. package/src/library/component-handler/index.ts +3 -0
  287. package/src/library/component-handler/types.ts +24 -0
  288. package/src/library/component-handler/utils/index.ts +23 -0
  289. package/src/library/device/__tests__/device-handler.test.ts +86 -0
  290. package/src/library/device/device-handler.ts +85 -0
  291. package/src/library/device/index.ts +3 -0
  292. package/src/library/device/types.ts +7 -0
  293. package/src/library/device/utils/generate-uuid.ts +7 -0
  294. package/src/library/index.ts +183 -0
  295. package/src/library/interceptors/__tests__/js-console.test.ts +186 -0
  296. package/src/library/interceptors/__tests__/react-devtools.test.ts +848 -0
  297. package/src/library/interceptors/__tests__/xhr.test.ts +313 -0
  298. package/src/library/interceptors/index.ts +7 -0
  299. package/src/library/interceptors/js-console.ts +93 -0
  300. package/src/library/interceptors/react-devtools.ts +268 -0
  301. package/src/library/interceptors/xhr.ts +123 -0
  302. package/src/library/network-handler/__tests__/network-handler.test.ts +265 -0
  303. package/src/library/network-handler/index.ts +1 -0
  304. package/src/library/network-handler/network-handler.ts +141 -0
  305. package/src/library/network-handler/types.ts +6 -0
  306. package/src/library/network-handler/utils/__tests__/generate-request-id.test.ts +22 -0
  307. package/src/library/network-handler/utils/__tests__/parse-response-headers.test.ts +71 -0
  308. package/src/library/network-handler/utils/__tests__/read-blob-as-text.test.ts +79 -0
  309. package/src/library/network-handler/utils/__tests__/response-to-string.test.ts +85 -0
  310. package/src/library/network-handler/utils/__tests__/should-ignore-url.test.ts +45 -0
  311. package/src/library/network-handler/utils/generate-request-id.ts +6 -0
  312. package/src/library/network-handler/utils/index.ts +5 -0
  313. package/src/library/network-handler/utils/parse-response-headers.ts +20 -0
  314. package/src/library/network-handler/utils/read-blob-as-text.ts +11 -0
  315. package/src/library/network-handler/utils/response-to-string.ts +32 -0
  316. package/src/library/network-handler/utils/should-ignore-url.ts +6 -0
  317. package/src/library/performance-handler/index.ts +2 -0
  318. package/src/library/performance-handler/performance-handler.ts +104 -0
  319. package/src/library/performance-handler/types.ts +22 -0
  320. package/src/library/project/index.ts +4 -0
  321. package/src/library/project/project-handler.ts +28 -0
  322. package/src/library/types.ts +82 -0
  323. package/src/specs/mako.nitro.ts +114 -0
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Performance handler types
3
+ */
4
+ import type { NitroMako as NitroMakoSpec } from '../../specs/mako.nitro';
5
+ export interface PerformanceHandlerConfig {
6
+ nitroMako: NitroMakoSpec;
7
+ onEvent: (event: PerformanceMetricsEvent) => void;
8
+ intervalMs?: number;
9
+ }
10
+ export interface PerformanceMetricsEvent {
11
+ type: 'performance_metrics';
12
+ timestamp: number;
13
+ deviceId?: string;
14
+ projectId?: string;
15
+ uiFps: number;
16
+ jsFps: number;
17
+ memoryUsage: number;
18
+ cpuUsage: number;
19
+ }
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/library/performance-handler/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAExE,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,aAAa,CAAA;IACxB,OAAO,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAA;IACjD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,qBAAqB,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB"}
@@ -0,0 +1,4 @@
1
+ import { ProjectHandler } from './project-handler';
2
+ export { ProjectHandler };
3
+ export declare const projectHandler: ProjectHandler;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/library/project/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,CAAA;AACzB,eAAO,MAAM,cAAc,gBAAuB,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { ProjectInfoEvent } from '../types';
2
+ export declare class ProjectHandler {
3
+ private cachedProjectId;
4
+ getProjectId(): string;
5
+ getProjectInfo(): Omit<ProjectInfoEvent, 'type'>;
6
+ }
7
+ //# sourceMappingURL=project-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-handler.d.ts","sourceRoot":"","sources":["../../../../../src/library/project/project-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,qBAAa,cAAc;IACzB,OAAO,CAAC,eAAe,CAAsB;IAE7C,YAAY,IAAI,MAAM;IAUtB,cAAc,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC;CAWjD"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Mako SDK Types
3
+ */
4
+ export type { LogLevel, LogSource, NativeLogSource, LogEvent, NativeLogEvent, NetworkStage, NetworkRequestEvent, NetworkResponseEvent, NetworkEvent, DeviceInfoEvent, ProjectInfoEvent, ComponentRenderEvent, ComponentTreeEvent, PerformanceMetricsEvent, EventType, MakoEvent, } from '@salve-software/mako-types';
5
+ export interface MakoConfig {
6
+ /** Host IP/hostname of the Mako macOS app (default: 'localhost') */
7
+ host?: string;
8
+ /** WebSocket port (default: 8765) */
9
+ port?: number;
10
+ /** Enable network request/response capture (default: true) */
11
+ enableNetworkCapture?: boolean;
12
+ /** Enable component inspector for React render tracking (default: false) */
13
+ enableComponentInspector?: boolean;
14
+ /** Enable performance monitoring for FPS, memory, and CPU tracking (default: false) */
15
+ enablePerformanceMonitoring?: boolean;
16
+ /** URL patterns to ignore (default includes Metro bundler URLs) */
17
+ ignoredUrls?: RegExp[];
18
+ /** Callback when connected to Mako */
19
+ onConnect?: () => void;
20
+ /** Callback when disconnected from Mako */
21
+ onDisconnect?: () => void;
22
+ /** Callback on connection error */
23
+ onError?: (error: Error) => void;
24
+ }
25
+ export interface PendingRequest {
26
+ id: string;
27
+ method: string;
28
+ url: string;
29
+ headers: Record<string, string>;
30
+ body?: string;
31
+ startTime: number;
32
+ responseHeaders?: Record<string, string>;
33
+ }
34
+ export interface NetworkCallbacks {
35
+ onOpen: (method: string, url: string, xhr: XMLHttpRequest) => void;
36
+ onSend: (data: unknown, xhr: XMLHttpRequest) => void;
37
+ onRequestHeader: (header: string, value: string, xhr: XMLHttpRequest) => void;
38
+ onHeaderReceived: (responseContentType: string | undefined, responseSize: number | undefined, responseHeaders: string, xhr: XMLHttpRequest) => void;
39
+ onResponse: (status: number, timeout: boolean, response: unknown, responseURL: string, responseType: string, xhr: XMLHttpRequest) => void;
40
+ }
41
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/library/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,QAAQ,EACR,SAAS,EACT,eAAe,EACf,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,SAAS,EACT,SAAS,GACV,MAAM,4BAA4B,CAAC;AAMpC,MAAM,WAAW,UAAU;IACzB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,4EAA4E;IAC5E,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,uFAAuF;IACvF,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,mCAAmC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAMD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IACnE,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IACrD,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9E,gBAAgB,EAAE,CAChB,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,cAAc,KAChB,IAAI,CAAC;IACV,UAAU,EAAE,CACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,cAAc,KAChB,IAAI,CAAC;CACX"}
@@ -0,0 +1,100 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules';
2
+ /**
3
+ * Log level for native logs
4
+ * Note: Using 'verbose' instead of 'debug' to avoid conflict with iOS DEBUG preprocessor macro
5
+ */
6
+ export type NativeLogLevel = 'verbose' | 'info' | 'warn' | 'error';
7
+ /**
8
+ * Native log entry received from iOS/Android
9
+ */
10
+ export interface NativeLogEntry {
11
+ level: NativeLogLevel;
12
+ message: string;
13
+ tag: string;
14
+ timestamp: number;
15
+ }
16
+ /**
17
+ * Callback type for receiving native logs
18
+ */
19
+ export type NativeLogCallback = (log: NativeLogEntry) => void;
20
+ /**
21
+ * Device information result from native APIs
22
+ */
23
+ export interface DeviceInfoResult {
24
+ deviceId: string;
25
+ deviceName: string;
26
+ appName: string;
27
+ bundleId: string;
28
+ }
29
+ /**
30
+ * Performance metrics snapshot from native APIs
31
+ */
32
+ export interface PerformanceMetrics {
33
+ uiFps: number;
34
+ jsFps: number;
35
+ memoryUsageMB: number;
36
+ cpuUsagePercent: number;
37
+ }
38
+ /**
39
+ * Callback type for receiving performance metrics
40
+ */
41
+ export type PerformanceMetricsCallback = (metrics: PerformanceMetrics) => void;
42
+ export interface NitroMako extends HybridObject<{
43
+ ios: 'swift';
44
+ android: 'kotlin';
45
+ }> {
46
+ sum(num1: number, num2: number): number;
47
+ /**
48
+ * Start capturing native platform logs (NSLog/print on iOS, Logcat on Android)
49
+ * @param onLog Callback invoked for each captured log entry
50
+ * @returns true if capture started successfully
51
+ */
52
+ startLogCapture(onLog: NativeLogCallback): boolean;
53
+ /**
54
+ * Stop capturing native platform logs
55
+ */
56
+ stopLogCapture(): void;
57
+ /**
58
+ * Check if log capture is currently active
59
+ */
60
+ isCapturing(): boolean;
61
+ /**
62
+ * Get device information using native APIs
63
+ * @returns Device info including deviceId, deviceName, appName, and bundleId
64
+ */
65
+ getDeviceInfo(): DeviceInfoResult;
66
+ /**
67
+ * Get stored device ID from native storage (UserDefaults/SharedPreferences)
68
+ * @returns The stored device ID or undefined if not found
69
+ */
70
+ getStoredDeviceId(): string | undefined;
71
+ /**
72
+ * Store device ID in native storage (UserDefaults/SharedPreferences)
73
+ * @param deviceId The device ID to store
74
+ */
75
+ storeDeviceId(deviceId: string): void;
76
+ /**
77
+ * Start monitoring performance metrics (FPS, memory, CPU)
78
+ * @param onMetrics Callback invoked with performance snapshot
79
+ * @param intervalMs How often to report metrics (in milliseconds, default 1000)
80
+ * @returns true if monitoring started successfully
81
+ */
82
+ startPerformanceMonitoring(onMetrics: PerformanceMetricsCallback, intervalMs?: number): boolean;
83
+ /**
84
+ * Stop monitoring performance metrics
85
+ */
86
+ stopPerformanceMonitoring(): void;
87
+ /**
88
+ * Check if performance monitoring is currently active
89
+ */
90
+ isPerformanceMonitoring(): boolean;
91
+ /**
92
+ * Get current performance metrics snapshot (without starting monitoring)
93
+ */
94
+ getPerformanceSnapshot(): PerformanceMetrics;
95
+ /**
96
+ * Record a JS frame tick (called from JS to track JS thread responsiveness)
97
+ */
98
+ recordJsFrame(): void;
99
+ }
100
+ //# sourceMappingURL=mako.nitro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mako.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/mako.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAElE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,cAAc,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAA;AAE9E,MAAM,WAAW,SAAU,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;IAClF,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAEvC;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAA;IAElD;;OAEG;IACH,cAAc,IAAI,IAAI,CAAA;IAEtB;;OAEG;IACH,WAAW,IAAI,OAAO,CAAA;IAEtB;;;OAGG;IACH,aAAa,IAAI,gBAAgB,CAAA;IAEjC;;;OAGG;IACH,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAAA;IAEvC;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAErC;;;;;OAKG;IACH,0BAA0B,CAAC,SAAS,EAAE,0BAA0B,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAE/F;;OAEG;IACH,yBAAyB,IAAI,IAAI,CAAA;IAEjC;;OAEG;IACH,uBAAuB,IAAI,OAAO,CAAA;IAElC;;OAEG;IACH,sBAAsB,IAAI,kBAAkB,CAAA;IAE5C;;OAEG;IACH,aAAa,IAAI,IAAI,CAAA;CACtB"}
package/nitro.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "https://nitro.margelo.com/nitro.schema.json",
3
+ "cxxNamespace": ["mako"],
4
+ "ios": {
5
+ "iosModuleName": "NitroMako"
6
+ },
7
+ "android": {
8
+ "androidNamespace": ["mako"],
9
+ "androidCxxLibName": "NitroMako"
10
+ },
11
+ "autolinking": {
12
+ "NitroMako": {
13
+ "ios": {
14
+ "language": "swift",
15
+ "implementationClassName": "HybridMako"
16
+ },
17
+ "android": {
18
+ "language": "kotlin",
19
+ "implementationClassName": "HybridMako"
20
+ }
21
+ }
22
+ },
23
+ "ignorePaths": ["**/node_modules"]
24
+ }
@@ -0,0 +1 @@
1
+ ** linguist-generated=true
@@ -0,0 +1,81 @@
1
+ #
2
+ # NitroMako+autolinking.cmake
3
+ # This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ # https://github.com/mrousavy/nitro
5
+ # Copyright © Marc Rousavy @ Margelo
6
+ #
7
+
8
+ # This is a CMake file that adds all files generated by Nitrogen
9
+ # to the current CMake project.
10
+ #
11
+ # To use it, add this to your CMakeLists.txt:
12
+ # ```cmake
13
+ # include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/NitroMako+autolinking.cmake)
14
+ # ```
15
+
16
+ # Define a flag to check if we are building properly
17
+ add_definitions(-DBUILDING_NITROMAKO_WITH_GENERATED_CMAKE_PROJECT)
18
+
19
+ # Enable Raw Props parsing in react-native (for Nitro Views)
20
+ add_definitions(-DRN_SERIALIZABLE_STATE)
21
+
22
+ # Add all headers that were generated by Nitrogen
23
+ include_directories(
24
+ "../nitrogen/generated/shared/c++"
25
+ "../nitrogen/generated/android/c++"
26
+ "../nitrogen/generated/android/"
27
+ )
28
+
29
+ # Add all .cpp sources that were generated by Nitrogen
30
+ target_sources(
31
+ # CMake project name (Android C++ library name)
32
+ NitroMako PRIVATE
33
+ # Autolinking Setup
34
+ ../nitrogen/generated/android/NitroMakoOnLoad.cpp
35
+ # Shared Nitrogen C++ sources
36
+ ../nitrogen/generated/shared/c++/HybridNitroMakoSpec.cpp
37
+ # Android-specific Nitrogen C++ sources
38
+ ../nitrogen/generated/android/c++/JHybridNitroMakoSpec.cpp
39
+ )
40
+
41
+ # From node_modules/react-native/ReactAndroid/cmake-utils/folly-flags.cmake
42
+ # Used in node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake
43
+ target_compile_definitions(
44
+ NitroMako PRIVATE
45
+ -DFOLLY_NO_CONFIG=1
46
+ -DFOLLY_HAVE_CLOCK_GETTIME=1
47
+ -DFOLLY_USE_LIBCPP=1
48
+ -DFOLLY_CFG_NO_COROUTINES=1
49
+ -DFOLLY_MOBILE=1
50
+ -DFOLLY_HAVE_RECVMMSG=1
51
+ -DFOLLY_HAVE_PTHREAD=1
52
+ # Once we target android-23 above, we can comment
53
+ # the following line. NDK uses GNU style stderror_r() after API 23.
54
+ -DFOLLY_HAVE_XSI_STRERROR_R=1
55
+ )
56
+
57
+ # Add all libraries required by the generated specs
58
+ find_package(fbjni REQUIRED) # <-- Used for communication between Java <-> C++
59
+ find_package(ReactAndroid REQUIRED) # <-- Used to set up React Native bindings (e.g. CallInvoker/TurboModule)
60
+ find_package(react-native-nitro-modules REQUIRED) # <-- Used to create all HybridObjects and use the Nitro core library
61
+
62
+ # Link all libraries together
63
+ target_link_libraries(
64
+ NitroMako
65
+ fbjni::fbjni # <-- Facebook C++ JNI helpers
66
+ ReactAndroid::jsi # <-- RN: JSI
67
+ react-native-nitro-modules::NitroModules # <-- NitroModules Core :)
68
+ )
69
+
70
+ # Link react-native (different prefab between RN 0.75 and RN 0.76)
71
+ if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
72
+ target_link_libraries(
73
+ NitroMako
74
+ ReactAndroid::reactnative # <-- RN: Native Modules umbrella prefab
75
+ )
76
+ else()
77
+ target_link_libraries(
78
+ NitroMako
79
+ ReactAndroid::react_nativemodule_core # <-- RN: TurboModules Core
80
+ )
81
+ endif()
@@ -0,0 +1,27 @@
1
+ ///
2
+ /// NitroMako+autolinking.gradle
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ /// This is a Gradle file that adds all files generated by Nitrogen
9
+ /// to the current Gradle project.
10
+ ///
11
+ /// To use it, add this to your build.gradle:
12
+ /// ```gradle
13
+ /// apply from: '../nitrogen/generated/android/NitroMako+autolinking.gradle'
14
+ /// ```
15
+
16
+ logger.warn("[NitroModules] 🔥 NitroMako is boosted by nitro!")
17
+
18
+ android {
19
+ sourceSets {
20
+ main {
21
+ java.srcDirs += [
22
+ // Nitrogen files
23
+ "${project.projectDir}/../nitrogen/generated/android/kotlin"
24
+ ]
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,58 @@
1
+ ///
2
+ /// NitroMakoOnLoad.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #ifndef BUILDING_NITROMAKO_WITH_GENERATED_CMAKE_PROJECT
9
+ #error NitroMakoOnLoad.cpp is not being built with the autogenerated CMakeLists.txt project. Is a different CMakeLists.txt building this?
10
+ #endif
11
+
12
+ #include "NitroMakoOnLoad.hpp"
13
+
14
+ #include <jni.h>
15
+ #include <fbjni/fbjni.h>
16
+ #include <NitroModules/HybridObjectRegistry.hpp>
17
+
18
+ #include "JHybridNitroMakoSpec.hpp"
19
+ #include "JFunc_void_NativeLogEntry.hpp"
20
+ #include "JFunc_void_PerformanceMetrics.hpp"
21
+ #include <NitroModules/DefaultConstructableObject.hpp>
22
+
23
+ namespace margelo::nitro::mako {
24
+
25
+ int initialize(JavaVM* vm) {
26
+ return facebook::jni::initialize(vm, []() {
27
+ ::margelo::nitro::mako::registerAllNatives();
28
+ });
29
+ }
30
+
31
+ struct JHybridNitroMakoSpecImpl: public jni::JavaClass<JHybridNitroMakoSpecImpl, JHybridNitroMakoSpec::JavaPart> {
32
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/mako/HybridMako;";
33
+ static std::shared_ptr<JHybridNitroMakoSpec> create() {
34
+ static const auto constructorFn = javaClassStatic()->getConstructor<JHybridNitroMakoSpecImpl::javaobject()>();
35
+ jni::local_ref<JHybridNitroMakoSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
36
+ return javaPart->getJHybridNitroMakoSpec();
37
+ }
38
+ };
39
+
40
+ void registerAllNatives() {
41
+ using namespace margelo::nitro;
42
+ using namespace margelo::nitro::mako;
43
+
44
+ // Register native JNI methods
45
+ margelo::nitro::mako::JHybridNitroMakoSpec::CxxPart::registerNatives();
46
+ margelo::nitro::mako::JFunc_void_NativeLogEntry_cxx::registerNatives();
47
+ margelo::nitro::mako::JFunc_void_PerformanceMetrics_cxx::registerNatives();
48
+
49
+ // Register Nitro Hybrid Objects
50
+ HybridObjectRegistry::registerHybridObjectConstructor(
51
+ "NitroMako",
52
+ []() -> std::shared_ptr<HybridObject> {
53
+ return JHybridNitroMakoSpecImpl::create();
54
+ }
55
+ );
56
+ }
57
+
58
+ } // namespace margelo::nitro::mako
@@ -0,0 +1,34 @@
1
+ ///
2
+ /// NitroMakoOnLoad.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include <jni.h>
9
+ #include <functional>
10
+ #include <NitroModules/NitroDefines.hpp>
11
+
12
+ namespace margelo::nitro::mako {
13
+
14
+ [[deprecated("Use registerNatives() instead.")]]
15
+ int initialize(JavaVM* vm);
16
+
17
+ /**
18
+ * Register the native (C++) part of NitroMako, and autolinks all Hybrid Objects.
19
+ * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`),
20
+ * inside a `facebook::jni::initialize(vm, ...)` call.
21
+ * Example:
22
+ * ```cpp (cpp-adapter.cpp)
23
+ * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
24
+ * return facebook::jni::initialize(vm, []() {
25
+ * // register all NitroMako HybridObjects
26
+ * margelo::nitro::mako::registerNatives();
27
+ * // any other custom registrations go here.
28
+ * });
29
+ * }
30
+ * ```
31
+ */
32
+ void registerAllNatives();
33
+
34
+ } // namespace margelo::nitro::mako
@@ -0,0 +1,69 @@
1
+ ///
2
+ /// JDeviceInfoResult.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "DeviceInfoResult.hpp"
12
+
13
+ #include <string>
14
+
15
+ namespace margelo::nitro::mako {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "DeviceInfoResult" and the the Kotlin data class "DeviceInfoResult".
21
+ */
22
+ struct JDeviceInfoResult final: public jni::JavaClass<JDeviceInfoResult> {
23
+ public:
24
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/mako/DeviceInfoResult;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct DeviceInfoResult by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ DeviceInfoResult toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldDeviceId = clazz->getField<jni::JString>("deviceId");
35
+ jni::local_ref<jni::JString> deviceId = this->getFieldValue(fieldDeviceId);
36
+ static const auto fieldDeviceName = clazz->getField<jni::JString>("deviceName");
37
+ jni::local_ref<jni::JString> deviceName = this->getFieldValue(fieldDeviceName);
38
+ static const auto fieldAppName = clazz->getField<jni::JString>("appName");
39
+ jni::local_ref<jni::JString> appName = this->getFieldValue(fieldAppName);
40
+ static const auto fieldBundleId = clazz->getField<jni::JString>("bundleId");
41
+ jni::local_ref<jni::JString> bundleId = this->getFieldValue(fieldBundleId);
42
+ return DeviceInfoResult(
43
+ deviceId->toStdString(),
44
+ deviceName->toStdString(),
45
+ appName->toStdString(),
46
+ bundleId->toStdString()
47
+ );
48
+ }
49
+
50
+ public:
51
+ /**
52
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
53
+ */
54
+ [[maybe_unused]]
55
+ static jni::local_ref<JDeviceInfoResult::javaobject> fromCpp(const DeviceInfoResult& value) {
56
+ using JSignature = JDeviceInfoResult(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>);
57
+ static const auto clazz = javaClassStatic();
58
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
59
+ return create(
60
+ clazz,
61
+ jni::make_jstring(value.deviceId),
62
+ jni::make_jstring(value.deviceName),
63
+ jni::make_jstring(value.appName),
64
+ jni::make_jstring(value.bundleId)
65
+ );
66
+ }
67
+ };
68
+
69
+ } // namespace margelo::nitro::mako
@@ -0,0 +1,80 @@
1
+ ///
2
+ /// JFunc_void_NativeLogEntry.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include "NativeLogEntry.hpp"
14
+ #include <functional>
15
+ #include <NitroModules/JNICallable.hpp>
16
+ #include "JNativeLogEntry.hpp"
17
+ #include "NativeLogLevel.hpp"
18
+ #include "JNativeLogLevel.hpp"
19
+ #include <string>
20
+
21
+ namespace margelo::nitro::mako {
22
+
23
+ using namespace facebook;
24
+
25
+ /**
26
+ * Represents the Java/Kotlin callback `(log: NativeLogEntry) -> Unit`.
27
+ * This can be passed around between C++ and Java/Kotlin.
28
+ */
29
+ struct JFunc_void_NativeLogEntry: public jni::JavaClass<JFunc_void_NativeLogEntry> {
30
+ public:
31
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/mako/Func_void_NativeLogEntry;";
32
+
33
+ public:
34
+ /**
35
+ * Invokes the function this `JFunc_void_NativeLogEntry` instance holds through JNI.
36
+ */
37
+ void invoke(const NativeLogEntry& log) const {
38
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JNativeLogEntry> /* log */)>("invoke");
39
+ method(self(), JNativeLogEntry::fromCpp(log));
40
+ }
41
+ };
42
+
43
+ /**
44
+ * An implementation of Func_void_NativeLogEntry that is backed by a C++ implementation (using `std::function<...>`)
45
+ */
46
+ class JFunc_void_NativeLogEntry_cxx final: public jni::HybridClass<JFunc_void_NativeLogEntry_cxx, JFunc_void_NativeLogEntry> {
47
+ public:
48
+ static jni::local_ref<JFunc_void_NativeLogEntry::javaobject> fromCpp(const std::function<void(const NativeLogEntry& /* log */)>& func) {
49
+ return JFunc_void_NativeLogEntry_cxx::newObjectCxxArgs(func);
50
+ }
51
+
52
+ public:
53
+ /**
54
+ * Invokes the C++ `std::function<...>` this `JFunc_void_NativeLogEntry_cxx` instance holds.
55
+ */
56
+ void invoke_cxx(jni::alias_ref<JNativeLogEntry> log) {
57
+ _func(log->toCpp());
58
+ }
59
+
60
+ public:
61
+ [[nodiscard]]
62
+ inline const std::function<void(const NativeLogEntry& /* log */)>& getFunction() const {
63
+ return _func;
64
+ }
65
+
66
+ public:
67
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/mako/Func_void_NativeLogEntry_cxx;";
68
+ static void registerNatives() {
69
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_NativeLogEntry_cxx::invoke_cxx)});
70
+ }
71
+
72
+ private:
73
+ explicit JFunc_void_NativeLogEntry_cxx(const std::function<void(const NativeLogEntry& /* log */)>& func): _func(func) { }
74
+
75
+ private:
76
+ friend HybridBase;
77
+ std::function<void(const NativeLogEntry& /* log */)> _func;
78
+ };
79
+
80
+ } // namespace margelo::nitro::mako
@@ -0,0 +1,77 @@
1
+ ///
2
+ /// JFunc_void_PerformanceMetrics.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include "PerformanceMetrics.hpp"
14
+ #include <functional>
15
+ #include <NitroModules/JNICallable.hpp>
16
+ #include "JPerformanceMetrics.hpp"
17
+
18
+ namespace margelo::nitro::mako {
19
+
20
+ using namespace facebook;
21
+
22
+ /**
23
+ * Represents the Java/Kotlin callback `(metrics: PerformanceMetrics) -> Unit`.
24
+ * This can be passed around between C++ and Java/Kotlin.
25
+ */
26
+ struct JFunc_void_PerformanceMetrics: public jni::JavaClass<JFunc_void_PerformanceMetrics> {
27
+ public:
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/mako/Func_void_PerformanceMetrics;";
29
+
30
+ public:
31
+ /**
32
+ * Invokes the function this `JFunc_void_PerformanceMetrics` instance holds through JNI.
33
+ */
34
+ void invoke(const PerformanceMetrics& metrics) const {
35
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JPerformanceMetrics> /* metrics */)>("invoke");
36
+ method(self(), JPerformanceMetrics::fromCpp(metrics));
37
+ }
38
+ };
39
+
40
+ /**
41
+ * An implementation of Func_void_PerformanceMetrics that is backed by a C++ implementation (using `std::function<...>`)
42
+ */
43
+ class JFunc_void_PerformanceMetrics_cxx final: public jni::HybridClass<JFunc_void_PerformanceMetrics_cxx, JFunc_void_PerformanceMetrics> {
44
+ public:
45
+ static jni::local_ref<JFunc_void_PerformanceMetrics::javaobject> fromCpp(const std::function<void(const PerformanceMetrics& /* metrics */)>& func) {
46
+ return JFunc_void_PerformanceMetrics_cxx::newObjectCxxArgs(func);
47
+ }
48
+
49
+ public:
50
+ /**
51
+ * Invokes the C++ `std::function<...>` this `JFunc_void_PerformanceMetrics_cxx` instance holds.
52
+ */
53
+ void invoke_cxx(jni::alias_ref<JPerformanceMetrics> metrics) {
54
+ _func(metrics->toCpp());
55
+ }
56
+
57
+ public:
58
+ [[nodiscard]]
59
+ inline const std::function<void(const PerformanceMetrics& /* metrics */)>& getFunction() const {
60
+ return _func;
61
+ }
62
+
63
+ public:
64
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/mako/Func_void_PerformanceMetrics_cxx;";
65
+ static void registerNatives() {
66
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_PerformanceMetrics_cxx::invoke_cxx)});
67
+ }
68
+
69
+ private:
70
+ explicit JFunc_void_PerformanceMetrics_cxx(const std::function<void(const PerformanceMetrics& /* metrics */)>& func): _func(func) { }
71
+
72
+ private:
73
+ friend HybridBase;
74
+ std::function<void(const PerformanceMetrics& /* metrics */)> _func;
75
+ };
76
+
77
+ } // namespace margelo::nitro::mako