react-native-nitro-amplitude 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/.watchmanconfig +6 -0
  2. package/LICENSE +21 -0
  3. package/README.md +139 -0
  4. package/android/CMakeLists.txt +34 -0
  5. package/android/build.gradle +85 -0
  6. package/android/consumer-rules.pro +35 -0
  7. package/android/gradle.properties +4 -0
  8. package/android/src/main/cpp/AndroidAmplitudeAdapterCpp.cpp +126 -0
  9. package/android/src/main/cpp/AndroidAmplitudeAdapterCpp.hpp +48 -0
  10. package/android/src/main/cpp/cpp-adapter.cpp +9 -0
  11. package/android/src/main/java/com/nitroamplitude/AndroidAmplitudeAdapter.kt +147 -0
  12. package/android/src/main/java/com/nitroamplitude/NitroAmplitudePackage.kt +24 -0
  13. package/app.plugin.js +36 -0
  14. package/cpp/bindings/HybridAmplitudeContext.cpp +83 -0
  15. package/cpp/bindings/HybridAmplitudeContext.hpp +29 -0
  16. package/cpp/bindings/HybridAmplitudeStorage.cpp +163 -0
  17. package/cpp/bindings/HybridAmplitudeStorage.hpp +38 -0
  18. package/cpp/bindings/HybridAmplitudeWorker.cpp +162 -0
  19. package/cpp/bindings/HybridAmplitudeWorker.hpp +74 -0
  20. package/cpp/core/NativeAmplitudeAdapter.hpp +44 -0
  21. package/ios/IOSAmplitudeAdapterCpp.hpp +37 -0
  22. package/ios/IOSAmplitudeAdapterCpp.mm +155 -0
  23. package/lib/commonjs/AmplitudeContext.nitro.js +6 -0
  24. package/lib/commonjs/AmplitudeContext.nitro.js.map +1 -0
  25. package/lib/commonjs/AmplitudeStorage.nitro.js +6 -0
  26. package/lib/commonjs/AmplitudeStorage.nitro.js.map +1 -0
  27. package/lib/commonjs/AmplitudeWorker.nitro.js +6 -0
  28. package/lib/commonjs/AmplitudeWorker.nitro.js.map +1 -0
  29. package/lib/commonjs/analytics/campaign/campaign-tracker.js +105 -0
  30. package/lib/commonjs/analytics/campaign/campaign-tracker.js.map +1 -0
  31. package/lib/commonjs/analytics/campaign/types.js +6 -0
  32. package/lib/commonjs/analytics/campaign/types.js.map +1 -0
  33. package/lib/commonjs/analytics/config.js +283 -0
  34. package/lib/commonjs/analytics/config.js.map +1 -0
  35. package/lib/commonjs/analytics/cookie-migration/index.js +59 -0
  36. package/lib/commonjs/analytics/cookie-migration/index.js.map +1 -0
  37. package/lib/commonjs/analytics/index.js +95 -0
  38. package/lib/commonjs/analytics/index.js.map +1 -0
  39. package/lib/commonjs/analytics/migration/remnant-data-migration.js +177 -0
  40. package/lib/commonjs/analytics/migration/remnant-data-migration.js.map +1 -0
  41. package/lib/commonjs/analytics/nitro-transport.js +31 -0
  42. package/lib/commonjs/analytics/nitro-transport.js.map +1 -0
  43. package/lib/commonjs/analytics/plugins/context.js +140 -0
  44. package/lib/commonjs/analytics/plugins/context.js.map +1 -0
  45. package/lib/commonjs/analytics/react-native-client.js +352 -0
  46. package/lib/commonjs/analytics/react-native-client.js.map +1 -0
  47. package/lib/commonjs/analytics/storage/local-storage.js +73 -0
  48. package/lib/commonjs/analytics/storage/local-storage.js.map +1 -0
  49. package/lib/commonjs/analytics/types.js +175 -0
  50. package/lib/commonjs/analytics/types.js.map +1 -0
  51. package/lib/commonjs/analytics/typings/browser-snippet.d.js +6 -0
  52. package/lib/commonjs/analytics/typings/browser-snippet.d.js.map +1 -0
  53. package/lib/commonjs/analytics/typings/ua-parser.d.js +2 -0
  54. package/lib/commonjs/analytics/typings/ua-parser.d.js.map +1 -0
  55. package/lib/commonjs/analytics/utils/platform.js +16 -0
  56. package/lib/commonjs/analytics/utils/platform.js.map +1 -0
  57. package/lib/commonjs/analytics/version.js +8 -0
  58. package/lib/commonjs/analytics/version.js.map +1 -0
  59. package/lib/commonjs/experiment/experimentClient.js +792 -0
  60. package/lib/commonjs/experiment/experimentClient.js.map +1 -0
  61. package/lib/commonjs/experiment/factory.js +77 -0
  62. package/lib/commonjs/experiment/factory.js.map +1 -0
  63. package/lib/commonjs/experiment/gen/version.js +9 -0
  64. package/lib/commonjs/experiment/gen/version.js.map +1 -0
  65. package/lib/commonjs/experiment/index.js +143 -0
  66. package/lib/commonjs/experiment/index.js.map +1 -0
  67. package/lib/commonjs/experiment/integration/NativeExperimentReactNativeClient.js +11 -0
  68. package/lib/commonjs/experiment/integration/NativeExperimentReactNativeClient.js.map +1 -0
  69. package/lib/commonjs/experiment/integration/connector.js +67 -0
  70. package/lib/commonjs/experiment/integration/connector.js.map +1 -0
  71. package/lib/commonjs/experiment/integration/default.js +92 -0
  72. package/lib/commonjs/experiment/integration/default.js.map +1 -0
  73. package/lib/commonjs/experiment/logger/ampLogger.js +80 -0
  74. package/lib/commonjs/experiment/logger/ampLogger.js.map +1 -0
  75. package/lib/commonjs/experiment/logger/consoleLogger.js +60 -0
  76. package/lib/commonjs/experiment/logger/consoleLogger.js.map +1 -0
  77. package/lib/commonjs/experiment/storage/cache.js +197 -0
  78. package/lib/commonjs/experiment/storage/cache.js.map +1 -0
  79. package/lib/commonjs/experiment/storage/local-storage.js +25 -0
  80. package/lib/commonjs/experiment/storage/local-storage.js.map +1 -0
  81. package/lib/commonjs/experiment/stubClient.js +46 -0
  82. package/lib/commonjs/experiment/stubClient.js.map +1 -0
  83. package/lib/commonjs/experiment/transport/http.js +72 -0
  84. package/lib/commonjs/experiment/transport/http.js.map +1 -0
  85. package/lib/commonjs/experiment/types/client.js +6 -0
  86. package/lib/commonjs/experiment/types/client.js.map +1 -0
  87. package/lib/commonjs/experiment/types/config.js +67 -0
  88. package/lib/commonjs/experiment/types/config.js.map +1 -0
  89. package/lib/commonjs/experiment/types/exposure.js +2 -0
  90. package/lib/commonjs/experiment/types/exposure.js.map +1 -0
  91. package/lib/commonjs/experiment/types/logger.js +42 -0
  92. package/lib/commonjs/experiment/types/logger.js.map +1 -0
  93. package/lib/commonjs/experiment/types/source.js +54 -0
  94. package/lib/commonjs/experiment/types/source.js.map +1 -0
  95. package/lib/commonjs/experiment/types/storage.js +2 -0
  96. package/lib/commonjs/experiment/types/storage.js.map +1 -0
  97. package/lib/commonjs/experiment/types/transport.js +2 -0
  98. package/lib/commonjs/experiment/types/transport.js.map +1 -0
  99. package/lib/commonjs/experiment/types/user.js +2 -0
  100. package/lib/commonjs/experiment/types/user.js.map +1 -0
  101. package/lib/commonjs/experiment/types/variant.js +2 -0
  102. package/lib/commonjs/experiment/types/variant.js.map +1 -0
  103. package/lib/commonjs/experiment/util/backoff.js +54 -0
  104. package/lib/commonjs/experiment/util/backoff.js.map +1 -0
  105. package/lib/commonjs/experiment/util/base64.js +23 -0
  106. package/lib/commonjs/experiment/util/base64.js.map +1 -0
  107. package/lib/commonjs/experiment/util/convert.js +78 -0
  108. package/lib/commonjs/experiment/util/convert.js.map +1 -0
  109. package/lib/commonjs/experiment/util/index.js +25 -0
  110. package/lib/commonjs/experiment/util/index.js.map +1 -0
  111. package/lib/commonjs/experiment/util/platform.js +16 -0
  112. package/lib/commonjs/experiment/util/platform.js.map +1 -0
  113. package/lib/commonjs/experiment/util/randomstring.js +16 -0
  114. package/lib/commonjs/experiment/util/randomstring.js.map +1 -0
  115. package/lib/commonjs/experiment/util/userSessionExposureTracker.js +40 -0
  116. package/lib/commonjs/experiment/util/userSessionExposureTracker.js.map +1 -0
  117. package/lib/commonjs/index.js +298 -0
  118. package/lib/commonjs/index.js.map +1 -0
  119. package/lib/commonjs/index.web.js +22 -0
  120. package/lib/commonjs/index.web.js.map +1 -0
  121. package/lib/commonjs/native/context.js +43 -0
  122. package/lib/commonjs/native/context.js.map +1 -0
  123. package/lib/commonjs/native/http.js +62 -0
  124. package/lib/commonjs/native/http.js.map +1 -0
  125. package/lib/commonjs/native/hybrid.js +31 -0
  126. package/lib/commonjs/native/hybrid.js.map +1 -0
  127. package/lib/commonjs/native/storage.js +93 -0
  128. package/lib/commonjs/native/storage.js.map +1 -0
  129. package/lib/commonjs/package.json +1 -0
  130. package/lib/module/AmplitudeContext.nitro.js +4 -0
  131. package/lib/module/AmplitudeContext.nitro.js.map +1 -0
  132. package/lib/module/AmplitudeStorage.nitro.js +4 -0
  133. package/lib/module/AmplitudeStorage.nitro.js.map +1 -0
  134. package/lib/module/AmplitudeWorker.nitro.js +4 -0
  135. package/lib/module/AmplitudeWorker.nitro.js.map +1 -0
  136. package/lib/module/analytics/campaign/campaign-tracker.js +100 -0
  137. package/lib/module/analytics/campaign/campaign-tracker.js.map +1 -0
  138. package/lib/module/analytics/campaign/types.js +4 -0
  139. package/lib/module/analytics/campaign/types.js.map +1 -0
  140. package/lib/module/analytics/config.js +272 -0
  141. package/lib/module/analytics/config.js.map +1 -0
  142. package/lib/module/analytics/cookie-migration/index.js +51 -0
  143. package/lib/module/analytics/cookie-migration/index.js.map +1 -0
  144. package/lib/module/analytics/index.js +34 -0
  145. package/lib/module/analytics/index.js.map +1 -0
  146. package/lib/module/analytics/migration/remnant-data-migration.js +172 -0
  147. package/lib/module/analytics/migration/remnant-data-migration.js.map +1 -0
  148. package/lib/module/analytics/nitro-transport.js +26 -0
  149. package/lib/module/analytics/nitro-transport.js.map +1 -0
  150. package/lib/module/analytics/plugins/context.js +134 -0
  151. package/lib/module/analytics/plugins/context.js.map +1 -0
  152. package/lib/module/analytics/react-native-client.js +346 -0
  153. package/lib/module/analytics/react-native-client.js.map +1 -0
  154. package/lib/module/analytics/storage/local-storage.js +68 -0
  155. package/lib/module/analytics/storage/local-storage.js.map +1 -0
  156. package/lib/module/analytics/types.js +4 -0
  157. package/lib/module/analytics/types.js.map +1 -0
  158. package/lib/module/analytics/typings/browser-snippet.d.js +4 -0
  159. package/lib/module/analytics/typings/browser-snippet.d.js.map +1 -0
  160. package/lib/module/analytics/typings/ua-parser.d.js +2 -0
  161. package/lib/module/analytics/typings/ua-parser.d.js.map +1 -0
  162. package/lib/module/analytics/utils/platform.js +10 -0
  163. package/lib/module/analytics/utils/platform.js.map +1 -0
  164. package/lib/module/analytics/version.js +4 -0
  165. package/lib/module/analytics/version.js.map +1 -0
  166. package/lib/module/experiment/experimentClient.js +788 -0
  167. package/lib/module/experiment/experimentClient.js.map +1 -0
  168. package/lib/module/experiment/factory.js +73 -0
  169. package/lib/module/experiment/factory.js.map +1 -0
  170. package/lib/module/experiment/gen/version.js +5 -0
  171. package/lib/module/experiment/gen/version.js.map +1 -0
  172. package/lib/module/experiment/index.js +16 -0
  173. package/lib/module/experiment/index.js.map +1 -0
  174. package/lib/module/experiment/integration/NativeExperimentReactNativeClient.js +7 -0
  175. package/lib/module/experiment/integration/NativeExperimentReactNativeClient.js.map +1 -0
  176. package/lib/module/experiment/integration/connector.js +61 -0
  177. package/lib/module/experiment/integration/connector.js.map +1 -0
  178. package/lib/module/experiment/integration/default.js +87 -0
  179. package/lib/module/experiment/integration/default.js.map +1 -0
  180. package/lib/module/experiment/logger/ampLogger.js +76 -0
  181. package/lib/module/experiment/logger/ampLogger.js.map +1 -0
  182. package/lib/module/experiment/logger/consoleLogger.js +55 -0
  183. package/lib/module/experiment/logger/consoleLogger.js.map +1 -0
  184. package/lib/module/experiment/storage/cache.js +187 -0
  185. package/lib/module/experiment/storage/cache.js.map +1 -0
  186. package/lib/module/experiment/storage/local-storage.js +19 -0
  187. package/lib/module/experiment/storage/local-storage.js.map +1 -0
  188. package/lib/module/experiment/stubClient.js +41 -0
  189. package/lib/module/experiment/stubClient.js.map +1 -0
  190. package/lib/module/experiment/transport/http.js +66 -0
  191. package/lib/module/experiment/transport/http.js.map +1 -0
  192. package/lib/module/experiment/types/client.js +4 -0
  193. package/lib/module/experiment/types/client.js.map +1 -0
  194. package/lib/module/experiment/types/config.js +64 -0
  195. package/lib/module/experiment/types/config.js.map +1 -0
  196. package/lib/module/experiment/types/exposure.js +2 -0
  197. package/lib/module/experiment/types/exposure.js.map +1 -0
  198. package/lib/module/experiment/types/logger.js +39 -0
  199. package/lib/module/experiment/types/logger.js.map +1 -0
  200. package/lib/module/experiment/types/source.js +51 -0
  201. package/lib/module/experiment/types/source.js.map +1 -0
  202. package/lib/module/experiment/types/storage.js +2 -0
  203. package/lib/module/experiment/types/storage.js.map +1 -0
  204. package/lib/module/experiment/types/transport.js +2 -0
  205. package/lib/module/experiment/types/transport.js.map +1 -0
  206. package/lib/module/experiment/types/user.js +2 -0
  207. package/lib/module/experiment/types/user.js.map +1 -0
  208. package/lib/module/experiment/types/variant.js +2 -0
  209. package/lib/module/experiment/types/variant.js.map +1 -0
  210. package/lib/module/experiment/util/backoff.js +49 -0
  211. package/lib/module/experiment/util/backoff.js.map +1 -0
  212. package/lib/module/experiment/util/base64.js +16 -0
  213. package/lib/module/experiment/util/base64.js.map +1 -0
  214. package/lib/module/experiment/util/convert.js +71 -0
  215. package/lib/module/experiment/util/convert.js.map +1 -0
  216. package/lib/module/experiment/util/index.js +17 -0
  217. package/lib/module/experiment/util/index.js.map +1 -0
  218. package/lib/module/experiment/util/platform.js +10 -0
  219. package/lib/module/experiment/util/platform.js.map +1 -0
  220. package/lib/module/experiment/util/randomstring.js +11 -0
  221. package/lib/module/experiment/util/randomstring.js.map +1 -0
  222. package/lib/module/experiment/util/userSessionExposureTracker.js +35 -0
  223. package/lib/module/experiment/util/userSessionExposureTracker.js.map +1 -0
  224. package/lib/module/index.js +50 -0
  225. package/lib/module/index.js.map +1 -0
  226. package/lib/module/index.web.js +14 -0
  227. package/lib/module/index.web.js.map +1 -0
  228. package/lib/module/native/context.js +35 -0
  229. package/lib/module/native/context.js.map +1 -0
  230. package/lib/module/native/http.js +57 -0
  231. package/lib/module/native/http.js.map +1 -0
  232. package/lib/module/native/hybrid.js +24 -0
  233. package/lib/module/native/hybrid.js.map +1 -0
  234. package/lib/module/native/storage.js +86 -0
  235. package/lib/module/native/storage.js.map +1 -0
  236. package/lib/typescript/AmplitudeContext.nitro.d.ts +17 -0
  237. package/lib/typescript/AmplitudeContext.nitro.d.ts.map +1 -0
  238. package/lib/typescript/AmplitudeStorage.nitro.d.ts +17 -0
  239. package/lib/typescript/AmplitudeStorage.nitro.d.ts.map +1 -0
  240. package/lib/typescript/AmplitudeWorker.nitro.d.ts +11 -0
  241. package/lib/typescript/AmplitudeWorker.nitro.d.ts.map +1 -0
  242. package/lib/typescript/analytics/campaign/campaign-tracker.d.ts +85 -0
  243. package/lib/typescript/analytics/campaign/campaign-tracker.d.ts.map +1 -0
  244. package/lib/typescript/analytics/campaign/types.d.ts +11 -0
  245. package/lib/typescript/analytics/campaign/types.d.ts.map +1 -0
  246. package/lib/typescript/analytics/config.d.ts +68 -0
  247. package/lib/typescript/analytics/config.d.ts.map +1 -0
  248. package/lib/typescript/analytics/cookie-migration/index.d.ts +6 -0
  249. package/lib/typescript/analytics/cookie-migration/index.d.ts.map +1 -0
  250. package/lib/typescript/analytics/index.d.ts +7 -0
  251. package/lib/typescript/analytics/index.d.ts.map +1 -0
  252. package/lib/typescript/analytics/migration/remnant-data-migration.d.ts +20 -0
  253. package/lib/typescript/analytics/migration/remnant-data-migration.d.ts.map +1 -0
  254. package/lib/typescript/analytics/nitro-transport.d.ts +9 -0
  255. package/lib/typescript/analytics/nitro-transport.d.ts.map +1 -0
  256. package/lib/typescript/analytics/plugins/context.d.ts +14 -0
  257. package/lib/typescript/analytics/plugins/context.d.ts.map +1 -0
  258. package/lib/typescript/analytics/react-native-client.d.ts +55 -0
  259. package/lib/typescript/analytics/react-native-client.d.ts.map +1 -0
  260. package/lib/typescript/analytics/storage/local-storage.d.ts +14 -0
  261. package/lib/typescript/analytics/storage/local-storage.d.ts.map +1 -0
  262. package/lib/typescript/analytics/types.d.ts +2 -0
  263. package/lib/typescript/analytics/types.d.ts.map +1 -0
  264. package/lib/typescript/analytics/utils/platform.d.ts +3 -0
  265. package/lib/typescript/analytics/utils/platform.d.ts.map +1 -0
  266. package/lib/typescript/analytics/version.d.ts +2 -0
  267. package/lib/typescript/analytics/version.d.ts.map +1 -0
  268. package/lib/typescript/experiment/experimentClient.d.ts +234 -0
  269. package/lib/typescript/experiment/experimentClient.d.ts.map +1 -0
  270. package/lib/typescript/experiment/factory.d.ts +11 -0
  271. package/lib/typescript/experiment/factory.d.ts.map +1 -0
  272. package/lib/typescript/experiment/gen/version.d.ts +2 -0
  273. package/lib/typescript/experiment/gen/version.d.ts.map +1 -0
  274. package/lib/typescript/experiment/index.d.ts +15 -0
  275. package/lib/typescript/experiment/index.d.ts.map +1 -0
  276. package/lib/typescript/experiment/integration/NativeExperimentReactNativeClient.d.ts +16 -0
  277. package/lib/typescript/experiment/integration/NativeExperimentReactNativeClient.d.ts.map +1 -0
  278. package/lib/typescript/experiment/integration/connector.d.ts +16 -0
  279. package/lib/typescript/experiment/integration/connector.d.ts.map +1 -0
  280. package/lib/typescript/experiment/integration/default.d.ts +20 -0
  281. package/lib/typescript/experiment/integration/default.d.ts.map +1 -0
  282. package/lib/typescript/experiment/logger/ampLogger.d.ts +47 -0
  283. package/lib/typescript/experiment/logger/ampLogger.d.ts.map +1 -0
  284. package/lib/typescript/experiment/logger/consoleLogger.d.ts +40 -0
  285. package/lib/typescript/experiment/logger/consoleLogger.d.ts.map +1 -0
  286. package/lib/typescript/experiment/storage/cache.d.ts +35 -0
  287. package/lib/typescript/experiment/storage/cache.d.ts.map +1 -0
  288. package/lib/typescript/experiment/storage/local-storage.d.ts +11 -0
  289. package/lib/typescript/experiment/storage/local-storage.d.ts.map +1 -0
  290. package/lib/typescript/experiment/stubClient.d.ts +21 -0
  291. package/lib/typescript/experiment/stubClient.d.ts.map +1 -0
  292. package/lib/typescript/experiment/transport/http.d.ts +17 -0
  293. package/lib/typescript/experiment/transport/http.d.ts.map +1 -0
  294. package/lib/typescript/experiment/types/client.d.ts +36 -0
  295. package/lib/typescript/experiment/types/client.d.ts.map +1 -0
  296. package/lib/typescript/experiment/types/config.d.ts +164 -0
  297. package/lib/typescript/experiment/types/config.d.ts.map +1 -0
  298. package/lib/typescript/experiment/types/exposure.d.ts +107 -0
  299. package/lib/typescript/experiment/types/exposure.d.ts.map +1 -0
  300. package/lib/typescript/experiment/types/logger.d.ts +67 -0
  301. package/lib/typescript/experiment/types/logger.d.ts.map +1 -0
  302. package/lib/typescript/experiment/types/source.d.ts +43 -0
  303. package/lib/typescript/experiment/types/source.d.ts.map +1 -0
  304. package/lib/typescript/experiment/types/storage.d.ts +7 -0
  305. package/lib/typescript/experiment/types/storage.d.ts.map +1 -0
  306. package/lib/typescript/experiment/types/transport.d.ts +8 -0
  307. package/lib/typescript/experiment/types/transport.d.ts.map +1 -0
  308. package/lib/typescript/experiment/types/user.d.ts +106 -0
  309. package/lib/typescript/experiment/types/user.d.ts.map +1 -0
  310. package/lib/typescript/experiment/types/variant.d.ts +33 -0
  311. package/lib/typescript/experiment/types/variant.d.ts.map +1 -0
  312. package/lib/typescript/experiment/util/backoff.d.ts +14 -0
  313. package/lib/typescript/experiment/util/backoff.d.ts.map +1 -0
  314. package/lib/typescript/experiment/util/base64.d.ts +3 -0
  315. package/lib/typescript/experiment/util/base64.d.ts.map +1 -0
  316. package/lib/typescript/experiment/util/convert.d.ts +7 -0
  317. package/lib/typescript/experiment/util/convert.d.ts.map +1 -0
  318. package/lib/typescript/experiment/util/index.d.ts +6 -0
  319. package/lib/typescript/experiment/util/index.d.ts.map +1 -0
  320. package/lib/typescript/experiment/util/platform.d.ts +3 -0
  321. package/lib/typescript/experiment/util/platform.d.ts.map +1 -0
  322. package/lib/typescript/experiment/util/randomstring.d.ts +2 -0
  323. package/lib/typescript/experiment/util/randomstring.d.ts.map +1 -0
  324. package/lib/typescript/experiment/util/userSessionExposureTracker.d.ts +16 -0
  325. package/lib/typescript/experiment/util/userSessionExposureTracker.d.ts.map +1 -0
  326. package/lib/typescript/index.d.ts +31 -0
  327. package/lib/typescript/index.d.ts.map +1 -0
  328. package/lib/typescript/index.web.d.ts +12 -0
  329. package/lib/typescript/index.web.d.ts.map +1 -0
  330. package/lib/typescript/native/context.d.ts +29 -0
  331. package/lib/typescript/native/context.d.ts.map +1 -0
  332. package/lib/typescript/native/http.d.ts +6 -0
  333. package/lib/typescript/native/http.d.ts.map +1 -0
  334. package/lib/typescript/native/hybrid.d.ts +8 -0
  335. package/lib/typescript/native/hybrid.d.ts.map +1 -0
  336. package/lib/typescript/native/storage.d.ts +29 -0
  337. package/lib/typescript/native/storage.d.ts.map +1 -0
  338. package/nitro.json +33 -0
  339. package/nitrogen/generated/.gitattributes +1 -0
  340. package/nitrogen/generated/android/NitroAmplitude+autolinking.cmake +83 -0
  341. package/nitrogen/generated/android/NitroAmplitude+autolinking.gradle +27 -0
  342. package/nitrogen/generated/android/NitroAmplitudeOnLoad.cpp +69 -0
  343. package/nitrogen/generated/android/NitroAmplitudeOnLoad.hpp +34 -0
  344. package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitroamplitude/NitroAmplitudeOnLoad.kt +35 -0
  345. package/nitrogen/generated/ios/NitroAmplitude+autolinking.rb +62 -0
  346. package/nitrogen/generated/ios/NitroAmplitude-Swift-Cxx-Bridge.cpp +17 -0
  347. package/nitrogen/generated/ios/NitroAmplitude-Swift-Cxx-Bridge.hpp +27 -0
  348. package/nitrogen/generated/ios/NitroAmplitude-Swift-Cxx-Umbrella.hpp +38 -0
  349. package/nitrogen/generated/ios/NitroAmplitudeAutolinking.mm +55 -0
  350. package/nitrogen/generated/ios/NitroAmplitudeAutolinking.swift +16 -0
  351. package/nitrogen/generated/shared/c++/HybridAmplitudeContextSpec.cpp +25 -0
  352. package/nitrogen/generated/shared/c++/HybridAmplitudeContextSpec.hpp +67 -0
  353. package/nitrogen/generated/shared/c++/HybridAmplitudeStorageSpec.cpp +30 -0
  354. package/nitrogen/generated/shared/c++/HybridAmplitudeStorageSpec.hpp +73 -0
  355. package/nitrogen/generated/shared/c++/HybridAmplitudeWorkerSpec.cpp +24 -0
  356. package/nitrogen/generated/shared/c++/HybridAmplitudeWorkerSpec.hpp +66 -0
  357. package/package.json +130 -0
  358. package/react-native-nitro-amplitude.podspec +36 -0
  359. package/src/AmplitudeContext.nitro.ts +21 -0
  360. package/src/AmplitudeStorage.nitro.ts +17 -0
  361. package/src/AmplitudeWorker.nitro.ts +25 -0
  362. package/src/analytics/campaign/campaign-tracker.ts +162 -0
  363. package/src/analytics/campaign/types.ts +18 -0
  364. package/src/analytics/config.ts +373 -0
  365. package/src/analytics/cookie-migration/index.ts +69 -0
  366. package/src/analytics/index.ts +36 -0
  367. package/src/analytics/migration/remnant-data-migration.ts +206 -0
  368. package/src/analytics/nitro-transport.ts +35 -0
  369. package/src/analytics/plugins/context.ts +166 -0
  370. package/src/analytics/react-native-client.ts +573 -0
  371. package/src/analytics/storage/local-storage.ts +76 -0
  372. package/src/analytics/types.ts +30 -0
  373. package/src/analytics/typings/browser-snippet.d.ts +7 -0
  374. package/src/analytics/typings/ua-parser.d.ts +4 -0
  375. package/src/analytics/utils/platform.ts +9 -0
  376. package/src/analytics/version.ts +1 -0
  377. package/src/experiment/experimentClient.ts +987 -0
  378. package/src/experiment/factory.ts +86 -0
  379. package/src/experiment/gen/version.ts +2 -0
  380. package/src/experiment/index.ts +14 -0
  381. package/src/experiment/integration/NativeExperimentReactNativeClient.ts +25 -0
  382. package/src/experiment/integration/connector.ts +82 -0
  383. package/src/experiment/integration/default.ts +107 -0
  384. package/src/experiment/logger/ampLogger.ts +76 -0
  385. package/src/experiment/logger/consoleLogger.ts +54 -0
  386. package/src/experiment/storage/cache.ts +271 -0
  387. package/src/experiment/storage/local-storage.ts +23 -0
  388. package/src/experiment/stubClient.ts +61 -0
  389. package/src/experiment/transport/http.ts +105 -0
  390. package/src/experiment/types/client.ts +38 -0
  391. package/src/experiment/types/config.ts +210 -0
  392. package/src/experiment/types/exposure.ts +107 -0
  393. package/src/experiment/types/logger.ts +71 -0
  394. package/src/experiment/types/source.ts +52 -0
  395. package/src/experiment/types/storage.ts +6 -0
  396. package/src/experiment/types/transport.ts +14 -0
  397. package/src/experiment/types/user.ts +132 -0
  398. package/src/experiment/types/variant.ts +36 -0
  399. package/src/experiment/util/backoff.ts +67 -0
  400. package/src/experiment/util/base64.ts +20 -0
  401. package/src/experiment/util/convert.ts +78 -0
  402. package/src/experiment/util/index.ts +23 -0
  403. package/src/experiment/util/platform.ts +9 -0
  404. package/src/experiment/util/randomstring.ts +12 -0
  405. package/src/experiment/util/userSessionExposureTracker.ts +47 -0
  406. package/src/index.ts +66 -0
  407. package/src/index.web.ts +19 -0
  408. package/src/native/context.ts +73 -0
  409. package/src/native/http.ts +77 -0
  410. package/src/native/hybrid.ts +32 -0
  411. package/src/native/storage.ts +107 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../src/experiment/types/storage.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
@@ -0,0 +1,8 @@
1
+ export interface SimpleResponse {
2
+ status: number;
3
+ body: string;
4
+ }
5
+ export interface HttpClient {
6
+ request(requestUrl: string, method: string, headers: Record<string, string>, data: string | null, timeoutMillis?: number): Promise<SimpleResponse>;
7
+ }
8
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/experiment/types/transport.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Defines a user context for evaluation.
3
+ * `device_id` and `user_id` are used for identity resolution.
4
+ * All other predefined fields and user properties are used for
5
+ * rule based user targeting.
6
+ * @category Types
7
+ */
8
+ export type ExperimentUser = {
9
+ /**
10
+ * Device ID for associating with an identity in Amplitude
11
+ */
12
+ device_id?: string;
13
+ /**
14
+ * User ID for associating with an identity in Amplitude
15
+ */
16
+ user_id?: string;
17
+ /**
18
+ * Predefined field, can be manually provided
19
+ */
20
+ country?: string;
21
+ /**
22
+ * Predefined field, can be manually provided
23
+ */
24
+ city?: string;
25
+ /**
26
+ * Predefined field, can be manually provided
27
+ */
28
+ region?: string;
29
+ /**
30
+ * Predefined field, can be manually provided
31
+ */
32
+ dma?: string;
33
+ /**
34
+ * Predefined field, auto populated via a ExperimentUserProvider
35
+ * or can be manually provided
36
+ */
37
+ language?: string;
38
+ /**
39
+ * Predefined field, auto populated via a ExperimentUserProvider
40
+ * or can be manually provided
41
+ */
42
+ platform?: string;
43
+ /**
44
+ * Predefined field, auto populated via a ExperimentUserProvider
45
+ * or can be manually provided
46
+ */
47
+ version?: string;
48
+ /**
49
+ * Predefined field, auto populated via a ExperimentUserProvider
50
+ * or can be manually provided
51
+ */
52
+ os?: string;
53
+ /**
54
+ * Predefined field, auto populated via a ExperimentUserProvider
55
+ * or can be manually provided
56
+ */
57
+ device_model?: string;
58
+ /**
59
+ * Predefined field, auto populated via a ExperimentUserProvider
60
+ * or can be manually provided
61
+ */
62
+ device_brand?: string;
63
+ /**
64
+ * Predefined field, auto populated via a ExperimentUserProvider
65
+ * or can be manually provided
66
+ */
67
+ device_manufacturer?: string;
68
+ /**
69
+ * Predefined field, can be manually provided
70
+ */
71
+ carrier?: string;
72
+ /**
73
+ * Predefined field, auto populated, can be manually overridden
74
+ */
75
+ library?: string;
76
+ /**
77
+ * Predefined field, can be manually provided
78
+ */
79
+ ip_address?: string;
80
+ /**
81
+ * Custom user properties
82
+ */
83
+ user_properties?: {
84
+ [propertyName: string]: string | number | boolean | (string | number | boolean)[];
85
+ };
86
+ groups?: {
87
+ [groupType: string]: string[];
88
+ };
89
+ group_properties?: {
90
+ [groupType: string]: {
91
+ [groupName: string]: {
92
+ [propertyName: string]: string | number | boolean | (string | number | boolean)[];
93
+ };
94
+ };
95
+ };
96
+ };
97
+ /**
98
+ * An ExperimentUserProvider injects information into the {@link ExperimentUser}
99
+ * object before sending a request to the server. This can be used to pass
100
+ * identity (deviceId and userId), or other platform specific context.
101
+ * @category Provider
102
+ */
103
+ export interface ExperimentUserProvider {
104
+ getUser(): Promise<ExperimentUser>;
105
+ }
106
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/experiment/types/user.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE;QAChB,CAAC,YAAY,EAAE,MAAM,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;KACnC,CAAC;IAEF,MAAM,CAAC,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KAC/B,CAAC;IAEF,gBAAgB,CAAC,EAAE;QACjB,CAAC,SAAS,EAAE,MAAM,GAAG;YACnB,CAAC,SAAS,EAAE,MAAM,GAAG;gBACnB,CAAC,YAAY,EAAE,MAAM,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;aACnC,CAAC;SACH,CAAC;KACH,CAAC;CACH,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;CACpC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @category Types
3
+ */
4
+ export type Variant = {
5
+ /**
6
+ * The key of the variant.
7
+ */
8
+ key?: string;
9
+ /**
10
+ * The value of the variant.
11
+ */
12
+ value?: string;
13
+ /**
14
+ * The attached payload, if any.
15
+ */
16
+ payload?: any;
17
+ /**
18
+ * The experiment key. Used to distinguish two experiments associated with the same flag.
19
+ */
20
+ expKey?: string;
21
+ /**
22
+ * Flag, segment, and variant metadata produced as a result of
23
+ * evaluation for the user. Used for system purposes.
24
+ */
25
+ metadata?: Record<string, unknown>;
26
+ };
27
+ /**
28
+ * @category Types
29
+ */
30
+ export type Variants = {
31
+ [key: string]: Variant;
32
+ };
33
+ //# sourceMappingURL=variant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variant.d.ts","sourceRoot":"","sources":["../../../../src/experiment/types/variant.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare class Backoff {
2
+ private readonly attempts;
3
+ private readonly min;
4
+ private readonly max;
5
+ private readonly scalar;
6
+ private started;
7
+ private done;
8
+ private timeoutHandle;
9
+ constructor(attempts: number, min: number, max: number, scalar: number);
10
+ start(fn: () => Promise<void>): void;
11
+ cancel(): void;
12
+ private backoff;
13
+ }
14
+ //# sourceMappingURL=backoff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backoff.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/backoff.ts"],"names":[],"mappings":"AAEA,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,aAAa,CAAuD;gBAG1E,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM;IAQT,KAAK,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IASpC,MAAM,IAAI,IAAI;IAQrB,OAAO,CAAC,OAAO;CAwBhB"}
@@ -0,0 +1,3 @@
1
+ export declare const stringToUtf8Array: (s: string) => number[];
2
+ export declare const urlSafeBase64Encode: (s: string) => string;
3
+ //# sourceMappingURL=base64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/base64.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,GAAI,GAAG,MAAM,KAAG,MAAM,EAOnD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,GAAG,MAAM,KAAG,MAQ/C,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { EvaluationVariant } from "@amplitude/experiment-core";
2
+ import { ExperimentUser } from "../types/user";
3
+ import { Variant } from "../types/variant";
4
+ export declare const convertUserToContext: (user: ExperimentUser | undefined) => Record<string, unknown>;
5
+ export declare const convertVariant: (value: string | Variant | undefined) => Variant;
6
+ export declare const convertEvaluationVariantToVariant: (evaluationVariant: EvaluationVariant) => Variant;
7
+ //# sourceMappingURL=convert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,eAAO,MAAM,oBAAoB,GAC/B,MAAM,cAAc,GAAG,SAAS,KAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CA+BxB,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,GAAG,OAAO,GAAG,SAAS,KAClC,OAYF,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAC5C,mBAAmB,iBAAiB,KACnC,OAmBF,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { EvaluationFlag } from "@amplitude/experiment-core";
2
+ export declare const isNullOrUndefined: (value: unknown) => boolean;
3
+ export declare const isNullUndefinedOrEmpty: (value: unknown) => boolean;
4
+ export declare const isLocalEvaluationMode: (flag: EvaluationFlag | undefined) => boolean;
5
+ export declare const isRemoteEvaluationMode: (flag: EvaluationFlag | undefined) => boolean;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,OAElD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,OAIvD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,MAAM,cAAc,GAAG,SAAS,KAC/B,OAEF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,MAAM,cAAc,GAAG,SAAS,KAC/B,OAEF,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const isWeb: () => boolean;
2
+ export declare const isNative: () => boolean;
3
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/platform.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,QAAO,OAExB,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,OAE3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const randomString: (length: number, alphabet?: string) => string;
2
+ //# sourceMappingURL=randomstring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"randomstring.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/randomstring.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,WAAU,MAAc,KACvB,MAMF,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Exposure, ExposureTrackingProvider } from "../types/exposure";
2
+ import { ExperimentUser } from "../types/user";
3
+ /**
4
+ * A wrapper for an exposure tracking provider which only sends one exposure event per
5
+ * flag, per variant, per user session. When the user identity (userId or deviceId) changes,
6
+ * the tracking cache is reset to ensure exposures are tracked for the new user session.
7
+ */
8
+ export declare class UserSessionExposureTracker {
9
+ private readonly exposureTrackingProvider;
10
+ private tracked;
11
+ private identity;
12
+ constructor(exposureTrackingProvider: ExposureTrackingProvider);
13
+ track(exposure: Exposure, user?: ExperimentUser): void;
14
+ private identityEquals;
15
+ }
16
+ //# sourceMappingURL=userSessionExposureTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userSessionExposureTracker.d.ts","sourceRoot":"","sources":["../../../../src/experiment/util/userSessionExposureTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAO/C;;;;GAIG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA2B;IACpE,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,wBAAwB,EAAE,wBAAwB;IAI9D,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI;IAqBtD,OAAO,CAAC,cAAc;CAGvB"}
@@ -0,0 +1,31 @@
1
+ import { createInstance } from "./analytics/react-native-client";
2
+ import { prefetchNativeContext } from "./native/context";
3
+ import * as AnalyticsTypes from "./analytics/types";
4
+ export { createInstance };
5
+ export declare const add: (plugin: AnalyticsTypes.Plugin<AnalyticsTypes.ReactNativeClient, AnalyticsTypes.ReactNativeConfig>) => AnalyticsTypes.AmplitudeReturn<void>, flush: () => AnalyticsTypes.AmplitudeReturn<void>, getDeviceId: () => string | undefined, getSessionId: () => number | undefined, getUserId: () => string | undefined, groupIdentify: (groupType: string, groupName: string | string[], identify: AnalyticsTypes.IIdentify, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, identify: (identify: AnalyticsTypes.IIdentify, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, init: (apiKey: string, userId?: string, options?: AnalyticsTypes.ReactNativeOptions) => AnalyticsTypes.AmplitudeReturn<void>, logEvent: (eventInput: AnalyticsTypes.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, remove: (pluginName: string) => AnalyticsTypes.AmplitudeReturn<void>, reset: () => void, revenue: (revenue: AnalyticsTypes.IRevenue, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setUserId: (userId: string | undefined) => void, shutdown: () => void, track: (eventInput: AnalyticsTypes.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, extendSession: () => void;
6
+ export { Revenue, Identify } from "@amplitude/analytics-core";
7
+ export { InMemoryStorage, LocalStorage, MemoryStorage, } from "./analytics/storage/local-storage";
8
+ export { NitroAnalyticsStorage, NitroMemoryStorage } from "./native/storage";
9
+ export { nitroHttpClient } from "./native/http";
10
+ export { nitroTransport } from "./analytics/nitro-transport";
11
+ export { prefetchNativeContext };
12
+ export { AnalyticsTypes as Types };
13
+ export * from "./experiment/types/config";
14
+ export { Experiment } from "./experiment/factory";
15
+ export { StubExperimentClient } from "./experiment/stubClient";
16
+ export { ExperimentClient } from "./experiment/experimentClient";
17
+ export * from "./experiment/types/client";
18
+ export { Source } from "./experiment/types/source";
19
+ export * from "./experiment/types/user";
20
+ export * from "./experiment/types/variant";
21
+ export * from "./experiment/types/exposure";
22
+ export * from "./experiment/types/storage";
23
+ export { LogLevel } from "./experiment/types/logger";
24
+ export type { Logger } from "./experiment/types/logger";
25
+ export { ConsoleLogger } from "./experiment/logger/consoleLogger";
26
+ export { LocalStorage as ExperimentLocalStorage, MemoryStorage as ExperimentMemoryStorage, } from "./experiment/storage/local-storage";
27
+ export type { AmplitudeContext } from "./AmplitudeContext.nitro";
28
+ export type { AmplitudeStorage } from "./AmplitudeStorage.nitro";
29
+ export type { AmplitudeWorker } from "./AmplitudeWorker.nitro";
30
+ export declare const VERSION = "0.1.0";
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAwB,EACtB,cAAc,EACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,eAAO,MACL,GAAG,+IACH,KAAK,8CACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,8LACb,QAAQ,6IACR,IAAI,0HACJ,QAAQ,+LACR,MAAM,gEACN,KAAK,cACL,OAAO,2IACP,WAAW,8BACX,QAAQ,0JACR,SAAS,6BACT,YAAY,+BACZ,SAAS,wCACT,QAAQ,cACR,KAAK,+LACL,aAAa,YACI,CAAC;AAEpB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,OAAO,EAAE,cAAc,IAAI,KAAK,EAAE,CAAC;AAEnC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,YAAY,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EACL,YAAY,IAAI,sBAAsB,EACtC,aAAa,IAAI,uBAAuB,GACzC,MAAM,oCAAoC,CAAC;AAE5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,eAAO,MAAM,OAAO,UAAU,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const init: () => never;
2
+ export declare const track: () => never;
3
+ export declare const identify: () => never;
4
+ export declare const createInstance: () => never;
5
+ export declare const Experiment: {
6
+ initialize: () => never;
7
+ initializeWithAmplitudeAnalytics: () => never;
8
+ };
9
+ export type { AmplitudeContext } from "./AmplitudeContext.nitro";
10
+ export type { AmplitudeStorage } from "./AmplitudeStorage.nitro";
11
+ export type { AmplitudeWorker } from "./AmplitudeWorker.nitro";
12
+ //# sourceMappingURL=index.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../src/index.web.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,IAAI,aAA4B,CAAC;AAC9C,eAAO,MAAM,KAAK,aAA6B,CAAC;AAChD,eAAO,MAAM,QAAQ,aAAgC,CAAC;AACtD,eAAO,MAAM,cAAc,aAAsC,CAAC;AAClE,eAAO,MAAM,UAAU;;;CAItB,CAAC;AAEF,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { ReactNativeTrackingOptions } from "@amplitude/analytics-core";
2
+ export type NativeApplicationContext = {
3
+ version?: string;
4
+ platform?: string;
5
+ language?: string;
6
+ country?: string;
7
+ osName?: string;
8
+ osVersion?: string;
9
+ deviceBrand?: string;
10
+ deviceManufacturer?: string;
11
+ deviceModel?: string;
12
+ carrier?: string;
13
+ adid?: string;
14
+ appSetId?: string;
15
+ idfv?: string;
16
+ };
17
+ export type LegacySessionData = {
18
+ deviceId?: string;
19
+ userId?: string;
20
+ sessionId?: number;
21
+ lastEventTime?: number;
22
+ lastEventId?: number;
23
+ };
24
+ export declare function prefetchNativeContext(): void;
25
+ export declare function getNativeApplicationContext(options: ReactNativeTrackingOptions): NativeApplicationContext;
26
+ export declare function getLegacySessionData(instanceName: string): LegacySessionData;
27
+ export declare function getLegacyEvents(instanceName: string, eventKind: string): string[];
28
+ export declare function removeLegacyEvent(instanceName: string, eventKind: string, eventId: number): void;
29
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/native/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAG5E,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,0BAA0B,GAClC,wBAAwB,CAY1B;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,CAU5E;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,MAAM,EAAE,CAEV;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,IAAI,CAEN"}
@@ -0,0 +1,6 @@
1
+ import type { HttpClient, SimpleResponse } from "../experiment/types/transport";
2
+ export declare class NitroHttpClient implements HttpClient {
3
+ request(requestUrl: string, method: string, headers: Record<string, string>, data: string | null, timeoutMillis?: number): Promise<SimpleResponse>;
4
+ }
5
+ export declare const nitroHttpClient: NitroHttpClient;
6
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/native/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAuChF,qBAAa,eAAgB,YAAW,UAAU;IAC1C,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,aAAa,SAAQ,GACpB,OAAO,CAAC,cAAc,CAAC;CA4B3B;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { AmplitudeContext } from "../AmplitudeContext.nitro";
2
+ import type { AmplitudeStorage } from "../AmplitudeStorage.nitro";
3
+ import type { AmplitudeWorker } from "../AmplitudeWorker.nitro";
4
+ export declare function getAmplitudeContext(): AmplitudeContext;
5
+ export declare function getAmplitudeStorage(): AmplitudeStorage;
6
+ export declare function getAmplitudeWorker(): AmplitudeWorker;
7
+ export declare function resetHybridInstancesForTests(): void;
8
+ //# sourceMappingURL=hybrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../../../src/native/hybrid.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAMhE,wBAAgB,mBAAmB,IAAI,gBAAgB,CAItD;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAItD;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAIpD;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CAInD"}
@@ -0,0 +1,29 @@
1
+ import type { Storage as AnalyticsStorage } from "@amplitude/analytics-core";
2
+ import type { Storage as ExperimentStorage } from "../experiment/types/storage";
3
+ export declare class NitroAnalyticsStorage<T> implements AnalyticsStorage<T> {
4
+ private readonly namespace;
5
+ constructor(namespace: string);
6
+ isEnabled(): Promise<boolean>;
7
+ get(key: string): Promise<T | undefined>;
8
+ getRaw(key: string): Promise<string | undefined>;
9
+ set(key: string, value: T): Promise<void>;
10
+ remove(key: string): Promise<void>;
11
+ reset(): Promise<void>;
12
+ }
13
+ export declare class NitroExperimentStorage implements ExperimentStorage {
14
+ private readonly namespace;
15
+ constructor(namespace: string);
16
+ get(key: string): Promise<string | null>;
17
+ put(key: string, value: string): Promise<void>;
18
+ delete(key: string): Promise<void>;
19
+ reset(): Promise<void>;
20
+ }
21
+ export declare class NitroMemoryStorage implements ExperimentStorage {
22
+ private readonly namespace;
23
+ constructor(namespace: string);
24
+ get(key: string): Promise<string | null>;
25
+ put(key: string, value: string): Promise<void>;
26
+ delete(key: string): Promise<void>;
27
+ reset(): Promise<void>;
28
+ }
29
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/native/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAOhF,qBAAa,qBAAqB,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAYxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B;AAED,qBAAa,sBAAuB,YAAW,iBAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B;AAED,qBAAa,kBAAmB,YAAW,iBAAiB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
package/nitro.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "https://nitro.margelo.com/nitro.schema.json",
3
+ "cxxNamespace": ["NitroAmplitude"],
4
+ "ios": {
5
+ "iosModuleName": "NitroAmplitude"
6
+ },
7
+ "android": {
8
+ "androidNamespace": ["com", "nitroamplitude"],
9
+ "androidCxxLibName": "NitroAmplitude"
10
+ },
11
+ "autolinking": {
12
+ "AmplitudeContext": {
13
+ "all": {
14
+ "language": "c++",
15
+ "implementationClassName": "HybridAmplitudeContext"
16
+ }
17
+ },
18
+ "AmplitudeStorage": {
19
+ "all": {
20
+ "language": "c++",
21
+ "implementationClassName": "HybridAmplitudeStorage"
22
+ }
23
+ },
24
+ "AmplitudeWorker": {
25
+ "all": {
26
+ "language": "c++",
27
+ "implementationClassName": "HybridAmplitudeWorker"
28
+ }
29
+ }
30
+ },
31
+ "ignorePaths": ["**/node_modules"],
32
+ "gitAttributesGeneratedFlag": true
33
+ }
@@ -0,0 +1 @@
1
+ ** linguist-generated=true
@@ -0,0 +1,83 @@
1
+ #
2
+ # NitroAmplitude+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/NitroAmplitude+autolinking.cmake)
14
+ # ```
15
+
16
+ # Define a flag to check if we are building properly
17
+ add_definitions(-DBUILDING_NITROAMPLITUDE_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
+ NitroAmplitude PRIVATE
33
+ # Autolinking Setup
34
+ ../nitrogen/generated/android/NitroAmplitudeOnLoad.cpp
35
+ # Shared Nitrogen C++ sources
36
+ ../nitrogen/generated/shared/c++/HybridAmplitudeContextSpec.cpp
37
+ ../nitrogen/generated/shared/c++/HybridAmplitudeStorageSpec.cpp
38
+ ../nitrogen/generated/shared/c++/HybridAmplitudeWorkerSpec.cpp
39
+ # Android-specific Nitrogen C++ sources
40
+
41
+ )
42
+
43
+ # From node_modules/react-native/ReactAndroid/cmake-utils/folly-flags.cmake
44
+ # Used in node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake
45
+ target_compile_definitions(
46
+ NitroAmplitude PRIVATE
47
+ -DFOLLY_NO_CONFIG=1
48
+ -DFOLLY_HAVE_CLOCK_GETTIME=1
49
+ -DFOLLY_USE_LIBCPP=1
50
+ -DFOLLY_CFG_NO_COROUTINES=1
51
+ -DFOLLY_MOBILE=1
52
+ -DFOLLY_HAVE_RECVMMSG=1
53
+ -DFOLLY_HAVE_PTHREAD=1
54
+ # Once we target android-23 above, we can comment
55
+ # the following line. NDK uses GNU style stderror_r() after API 23.
56
+ -DFOLLY_HAVE_XSI_STRERROR_R=1
57
+ )
58
+
59
+ # Add all libraries required by the generated specs
60
+ find_package(fbjni REQUIRED) # <-- Used for communication between Java <-> C++
61
+ find_package(ReactAndroid REQUIRED) # <-- Used to set up React Native bindings (e.g. CallInvoker/TurboModule)
62
+ find_package(react-native-nitro-modules REQUIRED) # <-- Used to create all HybridObjects and use the Nitro core library
63
+
64
+ # Link all libraries together
65
+ target_link_libraries(
66
+ NitroAmplitude
67
+ fbjni::fbjni # <-- Facebook C++ JNI helpers
68
+ ReactAndroid::jsi # <-- RN: JSI
69
+ react-native-nitro-modules::NitroModules # <-- NitroModules Core :)
70
+ )
71
+
72
+ # Link react-native (different prefab between RN 0.75 and RN 0.76)
73
+ if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
74
+ target_link_libraries(
75
+ NitroAmplitude
76
+ ReactAndroid::reactnative # <-- RN: Native Modules umbrella prefab
77
+ )
78
+ else()
79
+ target_link_libraries(
80
+ NitroAmplitude
81
+ ReactAndroid::react_nativemodule_core # <-- RN: TurboModules Core
82
+ )
83
+ endif()
@@ -0,0 +1,27 @@
1
+ ///
2
+ /// NitroAmplitude+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/NitroAmplitude+autolinking.gradle'
14
+ /// ```
15
+
16
+ logger.warn("[NitroModules] 🔥 NitroAmplitude 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,69 @@
1
+ ///
2
+ /// NitroAmplitudeOnLoad.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_NITROAMPLITUDE_WITH_GENERATED_CMAKE_PROJECT
9
+ #error NitroAmplitudeOnLoad.cpp is not being built with the autogenerated CMakeLists.txt project. Is a different CMakeLists.txt building this?
10
+ #endif
11
+
12
+ #include "NitroAmplitudeOnLoad.hpp"
13
+
14
+ #include <jni.h>
15
+ #include <fbjni/fbjni.h>
16
+ #include <NitroModules/HybridObjectRegistry.hpp>
17
+
18
+ #include "HybridAmplitudeContext.hpp"
19
+ #include "HybridAmplitudeStorage.hpp"
20
+ #include "HybridAmplitudeWorker.hpp"
21
+
22
+ namespace margelo::nitro::NitroAmplitude {
23
+
24
+ int initialize(JavaVM* vm) {
25
+ return facebook::jni::initialize(vm, []() {
26
+ ::margelo::nitro::NitroAmplitude::registerAllNatives();
27
+ });
28
+ }
29
+
30
+
31
+
32
+ void registerAllNatives() {
33
+ using namespace margelo::nitro;
34
+ using namespace margelo::nitro::NitroAmplitude;
35
+
36
+ // Register native JNI methods
37
+
38
+
39
+ // Register Nitro Hybrid Objects
40
+ HybridObjectRegistry::registerHybridObjectConstructor(
41
+ "AmplitudeContext",
42
+ []() -> std::shared_ptr<HybridObject> {
43
+ static_assert(std::is_default_constructible_v<HybridAmplitudeContext>,
44
+ "The HybridObject \"HybridAmplitudeContext\" is not default-constructible! "
45
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
46
+ return std::make_shared<HybridAmplitudeContext>();
47
+ }
48
+ );
49
+ HybridObjectRegistry::registerHybridObjectConstructor(
50
+ "AmplitudeStorage",
51
+ []() -> std::shared_ptr<HybridObject> {
52
+ static_assert(std::is_default_constructible_v<HybridAmplitudeStorage>,
53
+ "The HybridObject \"HybridAmplitudeStorage\" is not default-constructible! "
54
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
55
+ return std::make_shared<HybridAmplitudeStorage>();
56
+ }
57
+ );
58
+ HybridObjectRegistry::registerHybridObjectConstructor(
59
+ "AmplitudeWorker",
60
+ []() -> std::shared_ptr<HybridObject> {
61
+ static_assert(std::is_default_constructible_v<HybridAmplitudeWorker>,
62
+ "The HybridObject \"HybridAmplitudeWorker\" is not default-constructible! "
63
+ "Create a public constructor that takes zero arguments to be able to autolink this HybridObject.");
64
+ return std::make_shared<HybridAmplitudeWorker>();
65
+ }
66
+ );
67
+ }
68
+
69
+ } // namespace margelo::nitro::NitroAmplitude