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,51 @@
1
+ "use strict";
2
+
3
+ import { getOldCookieName } from "@amplitude/analytics-core";
4
+ import { createCookieStorage, getDefaultConfig, getTopLevelDomain } from "../config";
5
+ export const parseOldCookies = async (apiKey, options) => {
6
+ const disableCookies = options?.disableCookies ?? getDefaultConfig().disableCookies;
7
+ const storage = await createCookieStorage({
8
+ ...options,
9
+ disableCookies,
10
+ domain: disableCookies ? "" : options?.domain ?? (await getTopLevelDomain())
11
+ });
12
+ const oldCookieName = getOldCookieName(apiKey);
13
+ const cookies = await storage.getRaw(oldCookieName);
14
+ if (!cookies) {
15
+ return {
16
+ optOut: false
17
+ };
18
+ }
19
+ if (options?.cookieUpgrade ?? getDefaultConfig().cookieUpgrade) {
20
+ await storage.remove(oldCookieName);
21
+ }
22
+ const [deviceId, userId, optOut, sessionId, lastEventTime] = cookies.split(".");
23
+ return {
24
+ deviceId,
25
+ userId: decode(userId ?? ""),
26
+ sessionId: parseTime(sessionId),
27
+ lastEventTime: parseTime(lastEventTime),
28
+ optOut: parseOptOut(optOut)
29
+ };
30
+ };
31
+ export const parseTime = num => {
32
+ const integer = parseInt(num, 32);
33
+ if (isNaN(integer)) {
34
+ return undefined;
35
+ }
36
+ return integer;
37
+ };
38
+ export const decode = value => {
39
+ if (typeof atob !== "function" || typeof escape !== "function" || !value) {
40
+ return undefined;
41
+ }
42
+ try {
43
+ return decodeURIComponent(escape(atob(value)));
44
+ } catch {
45
+ return undefined;
46
+ }
47
+ };
48
+ export const parseOptOut = value => {
49
+ return value === "1" || value === "true";
50
+ };
51
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getOldCookieName","createCookieStorage","getDefaultConfig","getTopLevelDomain","parseOldCookies","apiKey","options","disableCookies","storage","domain","oldCookieName","cookies","getRaw","optOut","cookieUpgrade","remove","deviceId","userId","sessionId","lastEventTime","split","decode","parseTime","parseOptOut","num","integer","parseInt","isNaN","undefined","value","atob","escape","decodeURIComponent"],"sourceRoot":"../../../../src","sources":["analytics/cookie-migration/index.ts"],"mappings":";;AAAA,SAGEA,gBAAgB,QACX,2BAA2B;AAClC,SACEC,mBAAmB,EACnBC,gBAAgB,EAChBC,iBAAiB,QACZ,WAAW;AAElB,OAAO,MAAMC,eAAe,GAAG,MAAAA,CAC7BC,MAAc,EACdC,OAA4B,KACH;EACzB,MAAMC,cAAc,GAClBD,OAAO,EAAEC,cAAc,IAAIL,gBAAgB,CAAC,CAAC,CAACK,cAAc;EAC9D,MAAMC,OAAO,GAAG,MAAMP,mBAAmB,CAAS;IAChD,GAAGK,OAAO;IACVC,cAAc;IACdE,MAAM,EAAEF,cAAc,GAClB,EAAE,GACDD,OAAO,EAAEG,MAAM,KAAK,MAAMN,iBAAiB,CAAC,CAAC;EACpD,CAAC,CAAC;EACF,MAAMO,aAAa,GAAGV,gBAAgB,CAACK,MAAM,CAAC;EAC9C,MAAMM,OAAO,GAAG,MAAMH,OAAO,CAACI,MAAM,CAACF,aAAa,CAAC;EAEnD,IAAI,CAACC,OAAO,EAAE;IACZ,OAAO;MACLE,MAAM,EAAE;IACV,CAAC;EACH;EAEA,IAAIP,OAAO,EAAEQ,aAAa,IAAIZ,gBAAgB,CAAC,CAAC,CAACY,aAAa,EAAE;IAC9D,MAAMN,OAAO,CAACO,MAAM,CAACL,aAAa,CAAC;EACrC;EACA,MAAM,CAACM,QAAQ,EAAEC,MAAM,EAAEJ,MAAM,EAAEK,SAAS,EAAEC,aAAa,CAAC,GACxDR,OAAO,CAACS,KAAK,CAAC,GAAG,CAAC;EACpB,OAAO;IACLJ,QAAQ;IACRC,MAAM,EAAEI,MAAM,CAACJ,MAAM,IAAI,EAAE,CAAC;IAC5BC,SAAS,EAAEI,SAAS,CAACJ,SAAS,CAAC;IAC/BC,aAAa,EAAEG,SAAS,CAACH,aAAa,CAAC;IACvCN,MAAM,EAAEU,WAAW,CAACV,MAAM;EAC5B,CAAC;AACH,CAAC;AAED,OAAO,MAAMS,SAAS,GAAIE,GAAW,IAAK;EACxC,MAAMC,OAAO,GAAGC,QAAQ,CAACF,GAAG,EAAE,EAAE,CAAC;EACjC,IAAIG,KAAK,CAACF,OAAO,CAAC,EAAE;IAClB,OAAOG,SAAS;EAClB;EACA,OAAOH,OAAO;AAChB,CAAC;AAED,OAAO,MAAMJ,MAAM,GAAIQ,KAAc,IAAyB;EAC5D,IAAI,OAAOC,IAAI,KAAK,UAAU,IAAI,OAAOC,MAAM,KAAK,UAAU,IAAI,CAACF,KAAK,EAAE;IACxE,OAAOD,SAAS;EAClB;EACA,IAAI;IACF,OAAOI,kBAAkB,CAACD,MAAM,CAACD,IAAI,CAACD,KAAK,CAAC,CAAC,CAAC;EAChD,CAAC,CAAC,MAAM;IACN,OAAOD,SAAS;EAClB;AACF,CAAC;AAED,OAAO,MAAML,WAAW,GAAIM,KAAc,IAAc;EACtD,OAAOA,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,MAAM;AAC1C,CAAC","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ import client from "./react-native-client";
4
+
5
+ // Export types to maintain backward compatibility with `analytics-types`.
6
+ // In the next major version, only export customer-facing types to reduce the public API surface.
7
+ import * as Types from "./types";
8
+ export { createInstance } from "./react-native-client";
9
+ export const {
10
+ add,
11
+ flush,
12
+ getDeviceId,
13
+ getSessionId,
14
+ getUserId,
15
+ groupIdentify,
16
+ identify,
17
+ init,
18
+ logEvent,
19
+ remove,
20
+ reset,
21
+ revenue,
22
+ setDeviceId,
23
+ setGroup,
24
+ setOptOut,
25
+ setSessionId,
26
+ setUserId,
27
+ shutdown,
28
+ track,
29
+ extendSession
30
+ } = client;
31
+ export { Revenue, Identify } from "@amplitude/analytics-core";
32
+ export { InMemoryStorage, LocalStorage, MemoryStorage } from "./storage/local-storage";
33
+ export { Types };
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["client","Types","createInstance","add","flush","getDeviceId","getSessionId","getUserId","groupIdentify","identify","init","logEvent","remove","reset","revenue","setDeviceId","setGroup","setOptOut","setSessionId","setUserId","shutdown","track","extendSession","Revenue","Identify","InMemoryStorage","LocalStorage","MemoryStorage"],"sourceRoot":"../../../src","sources":["analytics/index.ts"],"mappings":";;AAAA,OAAOA,MAAM,MAAM,uBAAuB;;AAE1C;AACA;AACA,OAAO,KAAKC,KAAK,MAAM,SAAS;AAChC,SAASC,cAAc,QAAQ,uBAAuB;AACtD,OAAO,MAAM;EACXC,GAAG;EACHC,KAAK;EACLC,WAAW;EACXC,YAAY;EACZC,SAAS;EACTC,aAAa;EACbC,QAAQ;EACRC,IAAI;EACJC,QAAQ;EACRC,MAAM;EACNC,KAAK;EACLC,OAAO;EACPC,WAAW;EACXC,QAAQ;EACRC,SAAS;EACTC,YAAY;EACZC,SAAS;EACTC,QAAQ;EACRC,KAAK;EACLC;AACF,CAAC,GAAGtB,MAAM;AAEV,SAASuB,OAAO,EAAEC,QAAQ,QAAQ,2BAA2B;AAC7D,SACEC,eAAe,EACfC,YAAY,EACZC,aAAa,QACR,yBAAyB;AAChC,SAAS1B,KAAK","ignoreList":[]}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+
3
+ import { STORAGE_PREFIX } from "@amplitude/analytics-core";
4
+ import { getLegacyEvents, getLegacySessionData, removeLegacyEvent } from "../../native/context";
5
+ export default class RemnantDataMigration {
6
+ constructor(apiKey, instanceName, storage, firstRunSinceUpgrade, logger) {
7
+ this.apiKey = apiKey;
8
+ this.instanceName = instanceName;
9
+ this.storage = storage;
10
+ this.firstRunSinceUpgrade = firstRunSinceUpgrade;
11
+ this.logger = logger;
12
+ this.eventsStorageKey = `${STORAGE_PREFIX}_${this.apiKey.substring(0, 10)}`;
13
+ }
14
+ async execute() {
15
+ if (this.firstRunSinceUpgrade) {
16
+ await this.moveIdentifies();
17
+ await this.moveInterceptedIdentifies();
18
+ }
19
+ await this.moveEvents();
20
+ return this.callNativeFunction(() => Promise.resolve(getLegacySessionData(this.instanceName ?? ""))).then(sessionData => sessionData ?? {});
21
+ }
22
+ async moveEvents() {
23
+ await this.moveLegacyEvents("event");
24
+ }
25
+ async moveIdentifies() {
26
+ await this.moveLegacyEvents("identify");
27
+ }
28
+ async moveInterceptedIdentifies() {
29
+ await this.moveLegacyEvents("interceptedIdentify");
30
+ }
31
+ async callNativeFunction(action) {
32
+ try {
33
+ return await action();
34
+ } catch (e) {
35
+ this.logger?.error(`can't call native function: ${String(e)}`);
36
+ return undefined;
37
+ }
38
+ }
39
+ callNativeAction(action) {
40
+ try {
41
+ action();
42
+ } catch (e) {
43
+ this.logger?.error(`can't call native function: ${String(e)}`);
44
+ }
45
+ }
46
+ async callStorageFunction(action) {
47
+ try {
48
+ return {
49
+ value: await action()
50
+ };
51
+ } catch (e) {
52
+ this.logger?.error(`can't call storage function: ${String(e)}`);
53
+ return undefined;
54
+ }
55
+ }
56
+ async moveLegacyEvents(eventKind) {
57
+ const legacyJsonEvents = await this.callNativeFunction(() => Promise.resolve(getLegacyEvents(this.instanceName ?? "", eventKind)));
58
+ if (!this.storage || !legacyJsonEvents || legacyJsonEvents.length === 0) {
59
+ return;
60
+ }
61
+ const existingEvents = await this.callStorageFunction(async () => {
62
+ return this.storage?.get(this.eventsStorageKey);
63
+ });
64
+ if (!existingEvents) {
65
+ return;
66
+ }
67
+ const events = existingEvents.value ?? [];
68
+ const eventIds = [];
69
+ legacyJsonEvents.forEach(jsonEvent => {
70
+ const event = this.convertLegacyEvent(jsonEvent);
71
+ if (event) {
72
+ events.push(event);
73
+ if (event.event_id !== undefined) {
74
+ eventIds.push(event.event_id);
75
+ }
76
+ }
77
+ });
78
+ const writeSucceeded = await this.callStorageFunction(async () => {
79
+ await this.storage?.set(this.eventsStorageKey, events);
80
+ return true;
81
+ });
82
+ if (!writeSucceeded?.value) {
83
+ return;
84
+ }
85
+ eventIds.forEach(eventId => this.callNativeAction(() => removeLegacyEvent(this.instanceName ?? "", eventKind, eventId)));
86
+ }
87
+ convertLegacyEvent(legacyJsonEvent) {
88
+ try {
89
+ const event = JSON.parse(legacyJsonEvent);
90
+ const {
91
+ library,
92
+ timestamp,
93
+ uuid,
94
+ api_properties
95
+ } = event;
96
+ if (library !== undefined) {
97
+ event.library = `${library.name}/${library.version}`;
98
+ }
99
+ if (timestamp !== undefined) {
100
+ event.time = timestamp;
101
+ }
102
+ if (uuid !== undefined) {
103
+ event.insert_id = uuid;
104
+ }
105
+ if (api_properties) {
106
+ const {
107
+ androidADID,
108
+ android_app_set_id,
109
+ ios_idfa,
110
+ ios_idfv,
111
+ productId,
112
+ quantity,
113
+ price,
114
+ location
115
+ } = api_properties;
116
+ if (androidADID !== undefined) {
117
+ event.adid = androidADID;
118
+ }
119
+ if (android_app_set_id !== undefined) {
120
+ event.android_app_set_id = android_app_set_id;
121
+ }
122
+ if (ios_idfa !== undefined) {
123
+ event.idfa = ios_idfa;
124
+ }
125
+ if (ios_idfv !== undefined) {
126
+ event.idfv = ios_idfv;
127
+ }
128
+ if (productId !== undefined) {
129
+ event.productId = productId;
130
+ }
131
+ if (quantity !== undefined) {
132
+ event.quantity = quantity;
133
+ }
134
+ if (price !== undefined) {
135
+ event.price = price;
136
+ }
137
+ if (location !== undefined) {
138
+ const {
139
+ lat,
140
+ lng
141
+ } = location;
142
+ event.location_lat = lat;
143
+ event.location_lng = lng;
144
+ }
145
+ }
146
+ const {
147
+ $productId: productId,
148
+ $quantity: quantity,
149
+ $price: price,
150
+ $revenueType: revenueType
151
+ } = event;
152
+ if (productId !== undefined) {
153
+ event.productId = productId;
154
+ }
155
+ if (quantity !== undefined) {
156
+ event.quantity = quantity;
157
+ }
158
+ if (price !== undefined) {
159
+ event.price = price;
160
+ }
161
+ if (revenueType !== undefined) {
162
+ event.revenueType = revenueType;
163
+ }
164
+ return event;
165
+ } catch {
166
+ // skip invalid events
167
+ return null;
168
+ }
169
+ }
170
+ // eslint-enable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
171
+ }
172
+ //# sourceMappingURL=remnant-data-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["STORAGE_PREFIX","getLegacyEvents","getLegacySessionData","removeLegacyEvent","RemnantDataMigration","constructor","apiKey","instanceName","storage","firstRunSinceUpgrade","logger","eventsStorageKey","substring","execute","moveIdentifies","moveInterceptedIdentifies","moveEvents","callNativeFunction","Promise","resolve","then","sessionData","moveLegacyEvents","action","e","error","String","undefined","callNativeAction","callStorageFunction","value","eventKind","legacyJsonEvents","length","existingEvents","get","events","eventIds","forEach","jsonEvent","event","convertLegacyEvent","push","event_id","writeSucceeded","set","eventId","legacyJsonEvent","JSON","parse","library","timestamp","uuid","api_properties","name","version","time","insert_id","androidADID","android_app_set_id","ios_idfa","ios_idfv","productId","quantity","price","location","adid","idfa","idfv","lat","lng","location_lat","location_lng","$productId","$quantity","$price","$revenueType","revenueType"],"sourceRoot":"../../../../src","sources":["analytics/migration/remnant-data-migration.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ import { BaseTransport } from "@amplitude/analytics-core";
4
+ import { nitroHttpClient } from "../native/http";
5
+ export class NitroTransport extends BaseTransport {
6
+ constructor(customHeaders = {}) {
7
+ super();
8
+ this.customHeaders = customHeaders;
9
+ }
10
+ async send(serverUrl, payload) {
11
+ const response = await nitroHttpClient.request(serverUrl, "POST", {
12
+ "Content-Type": "application/json",
13
+ Accept: "*/*",
14
+ ...this.customHeaders
15
+ }, JSON.stringify(payload), 30000);
16
+ try {
17
+ return this.buildResponse(JSON.parse(response.body));
18
+ } catch {
19
+ return this.buildResponse({
20
+ code: response.status
21
+ });
22
+ }
23
+ }
24
+ }
25
+ export const nitroTransport = new NitroTransport();
26
+ //# sourceMappingURL=nitro-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["BaseTransport","nitroHttpClient","NitroTransport","constructor","customHeaders","send","serverUrl","payload","response","request","Accept","JSON","stringify","buildResponse","parse","body","code","status","nitroTransport"],"sourceRoot":"../../../src","sources":["analytics/nitro-transport.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,2BAA2B;AAEzD,SAASC,eAAe,QAAQ,gBAAgB;AAEhD,OAAO,MAAMC,cAAc,SAASF,aAAa,CAAsB;EAGrEG,WAAWA,CAACC,aAAqC,GAAG,CAAC,CAAC,EAAE;IACtD,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,aAAa,GAAGA,aAAa;EACpC;EAEA,MAAMC,IAAIA,CAACC,SAAiB,EAAEC,OAAgB,EAA4B;IACxE,MAAMC,QAAQ,GAAG,MAAMP,eAAe,CAACQ,OAAO,CAC5CH,SAAS,EACT,MAAM,EACN;MACE,cAAc,EAAE,kBAAkB;MAClCI,MAAM,EAAE,KAAK;MACb,GAAG,IAAI,CAACN;IACV,CAAC,EACDO,IAAI,CAACC,SAAS,CAACL,OAAO,CAAC,EACvB,KACF,CAAC;IACD,IAAI;MACF,OAAO,IAAI,CAACM,aAAa,CACvBF,IAAI,CAACG,KAAK,CAACN,QAAQ,CAACO,IAAI,CAC1B,CAAC;IACH,CAAC,CAAC,MAAM;MACN,OAAO,IAAI,CAACF,aAAa,CAAC;QAAEG,IAAI,EAAER,QAAQ,CAACS;MAAO,CAAC,CAAC;IACtD;EACF;AACF;AAEA,OAAO,MAAMC,cAAc,GAAG,IAAIhB,cAAc,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ import { UUID, getLanguage } from "@amplitude/analytics-core";
4
+ import UAParser from "@amplitude/ua-parser-js";
5
+ import { VERSION } from "../version";
6
+ import { Platform } from "react-native";
7
+ import { getNativeApplicationContext } from "../../native/context";
8
+ const BROWSER_PLATFORM = "Web";
9
+ const IP_ADDRESS = "$remote";
10
+ const ReactNativePlatform = Platform;
11
+ function getPlatformOS() {
12
+ try {
13
+ return ReactNativePlatform?.OS;
14
+ } catch {
15
+ return undefined;
16
+ }
17
+ }
18
+ function getNativePlatformName(platformOS = getPlatformOS()) {
19
+ switch (platformOS) {
20
+ case "ios":
21
+ return "iOS";
22
+ case "android":
23
+ return "Android";
24
+ default:
25
+ return BROWSER_PLATFORM;
26
+ }
27
+ }
28
+ export class Context {
29
+ name = "@amplitude/plugin-context-react-native";
30
+ type = "before";
31
+
32
+ // this.config is defined in setup() which will always be called first
33
+
34
+ // @ts-ignore
35
+
36
+ library = `amplitude-nitro-ts/${VERSION}`;
37
+ constructor() {
38
+ let agent;
39
+ /* istanbul ignore else */
40
+ if (typeof navigator !== "undefined") {
41
+ agent = navigator.userAgent;
42
+ }
43
+ this.uaResult = new UAParser(agent).getResult();
44
+ }
45
+ setup(config) {
46
+ this.config = config;
47
+ return Promise.resolve(undefined);
48
+ }
49
+ getNativeContext() {
50
+ try {
51
+ return getNativeApplicationContext(this.config.trackingOptions);
52
+ } catch (error) {
53
+ this.config.loggerProvider?.error(`Failed to load native application context: ${String(error)}`);
54
+ return undefined;
55
+ }
56
+ }
57
+ async execute(context) {
58
+ const time = new Date().getTime();
59
+ const platformOS = getPlatformOS();
60
+ const nativeContext = this.getNativeContext();
61
+ const isWebPlatform = platformOS === "web";
62
+ const fallbackPlatform = getNativePlatformName(platformOS);
63
+ const appVersion = this.config.appVersion || nativeContext?.version;
64
+ const platform = nativeContext?.platform || fallbackPlatform;
65
+ const osName = nativeContext?.osName || (isWebPlatform ? this.uaResult.browser.name : fallbackPlatform);
66
+ const osVersion = nativeContext?.osVersion || (isWebPlatform ? this.uaResult.browser.version : undefined);
67
+ const deviceVendor = nativeContext?.deviceManufacturer || (isWebPlatform ? this.uaResult.device.vendor : undefined);
68
+ const deviceModel = nativeContext?.deviceModel || (isWebPlatform ? this.uaResult.device.model || this.uaResult.os.name : undefined);
69
+ const language = nativeContext?.language || getLanguage();
70
+ const country = nativeContext?.country;
71
+ const carrier = nativeContext?.carrier;
72
+ const adid = nativeContext?.adid;
73
+ const appSetId = nativeContext?.appSetId;
74
+ const idfv = nativeContext?.idfv;
75
+ const event = {
76
+ user_id: this.config.userId,
77
+ device_id: this.config.deviceId,
78
+ session_id: this.config.sessionId,
79
+ time,
80
+ ...(appVersion && {
81
+ app_version: appVersion
82
+ }),
83
+ ...(this.config.trackingOptions.platform && {
84
+ platform: platform
85
+ }),
86
+ ...(this.config.trackingOptions.osName && {
87
+ os_name: osName
88
+ }),
89
+ ...(this.config.trackingOptions.osVersion && {
90
+ os_version: osVersion
91
+ }),
92
+ ...(this.config.trackingOptions.deviceManufacturer && {
93
+ device_manufacturer: deviceVendor
94
+ }),
95
+ ...(this.config.trackingOptions.deviceModel && {
96
+ device_model: deviceModel
97
+ }),
98
+ ...(this.config.trackingOptions.language && {
99
+ language: language
100
+ }),
101
+ ...(this.config.trackingOptions.country && {
102
+ country: country
103
+ }),
104
+ ...(this.config.trackingOptions.carrier && {
105
+ carrier: carrier
106
+ }),
107
+ ...(this.config.trackingOptions.ipAddress && {
108
+ ip: IP_ADDRESS
109
+ }),
110
+ ...(this.config.trackingOptions.adid && {
111
+ adid: adid
112
+ }),
113
+ ...(this.config.trackingOptions.appSetId && {
114
+ android_app_set_id: appSetId
115
+ }),
116
+ ...(this.config.trackingOptions.idfv && {
117
+ idfv: idfv
118
+ }),
119
+ insert_id: UUID(),
120
+ partner_id: this.config.partnerId,
121
+ plan: this.config.plan,
122
+ ...(this.config.ingestionMetadata && {
123
+ ingestion_metadata: {
124
+ source_name: this.config.ingestionMetadata.sourceName,
125
+ source_version: this.config.ingestionMetadata.sourceVersion
126
+ }
127
+ }),
128
+ ...context,
129
+ library: this.library
130
+ };
131
+ return event;
132
+ }
133
+ }
134
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["UUID","getLanguage","UAParser","VERSION","Platform","getNativeApplicationContext","BROWSER_PLATFORM","IP_ADDRESS","ReactNativePlatform","getPlatformOS","OS","undefined","getNativePlatformName","platformOS","Context","name","type","library","constructor","agent","navigator","userAgent","uaResult","getResult","setup","config","Promise","resolve","getNativeContext","trackingOptions","error","loggerProvider","String","execute","context","time","Date","getTime","nativeContext","isWebPlatform","fallbackPlatform","appVersion","version","platform","osName","browser","osVersion","deviceVendor","deviceManufacturer","device","vendor","deviceModel","model","os","language","country","carrier","adid","appSetId","idfv","event","user_id","userId","device_id","deviceId","session_id","sessionId","app_version","os_name","os_version","device_manufacturer","device_model","ipAddress","ip","android_app_set_id","insert_id","partner_id","partnerId","plan","ingestionMetadata","ingestion_metadata","source_name","sourceName","source_version","sourceVersion"],"sourceRoot":"../../../../src","sources":["analytics/plugins/context.ts"],"mappings":"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","ignoreList":[]}