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,197 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.transformVariantFromStorage = exports.getVariantsOptionsStorage = exports.getVariantStorage = exports.getFlagStorage = exports.SingleValueStoreCache = exports.LoadStoreCache = void 0;
7
+ const getVariantStorage = (deploymentKey, instanceName, storage) => {
8
+ const namespace = getNamespace(deploymentKey, instanceName);
9
+ const legacyNamespace = getLegacyNamespace(deploymentKey, instanceName);
10
+ return new LoadStoreCache(namespace, storage, transformVariantFromStorage, [legacyNamespace]);
11
+ };
12
+ exports.getVariantStorage = getVariantStorage;
13
+ const getFlagStorage = (deploymentKey, instanceName, storage) => {
14
+ const namespace = `${getNamespace(deploymentKey, instanceName)}-flags`;
15
+ const legacyNamespace = `${getLegacyNamespace(deploymentKey, instanceName)}-flags`;
16
+ return new LoadStoreCache(namespace, storage, undefined, [legacyNamespace]);
17
+ };
18
+ exports.getFlagStorage = getFlagStorage;
19
+ const getVariantsOptionsStorage = (deploymentKey, instanceName, storage) => {
20
+ const namespace = `${getNamespace(deploymentKey, instanceName)}-variants-options`;
21
+ const legacyNamespace = `${getLegacyNamespace(deploymentKey, instanceName)}-variants-options`;
22
+ return new SingleValueStoreCache(namespace, storage, [legacyNamespace]);
23
+ };
24
+ exports.getVariantsOptionsStorage = getVariantsOptionsStorage;
25
+ const getNamespace = (deploymentKey, instanceName) => {
26
+ return `amp-exp-${instanceName}-${hashString(deploymentKey)}`;
27
+ };
28
+ const getLegacyNamespace = (deploymentKey, instanceName) => {
29
+ const truncatedDeployment = deploymentKey.substring(deploymentKey.length - 6);
30
+ return `amp-exp-${instanceName}-${truncatedDeployment}`;
31
+ };
32
+ const hashString = value => {
33
+ let hash = 2166136261;
34
+ for (let i = 0; i < value.length; i++) {
35
+ hash ^= value.charCodeAt(i);
36
+ hash = Math.imul(hash, 16777619);
37
+ }
38
+ return (hash >>> 0).toString(16).padStart(8, "0");
39
+ };
40
+ class SingleValueStoreCache {
41
+ constructor(namespace, storage, legacyNamespaces = []) {
42
+ this.namespace = namespace;
43
+ this.legacyNamespaces = legacyNamespaces;
44
+ this.storage = storage;
45
+ this.value = this.get();
46
+ }
47
+ get() {
48
+ return this.value;
49
+ }
50
+ put(value) {
51
+ this.value = value;
52
+ }
53
+ async load() {
54
+ let value = await this.storage.get(this.namespace);
55
+ for (const legacyNamespace of this.legacyNamespaces) {
56
+ if (value) {
57
+ break;
58
+ }
59
+ value = await this.storage.get(legacyNamespace);
60
+ }
61
+ if (value) {
62
+ try {
63
+ this.value = JSON.parse(value);
64
+ } catch {
65
+ this.value = undefined;
66
+ }
67
+ }
68
+ }
69
+ async store() {
70
+ if (this.value === undefined) {
71
+ // Delete the key if the value is undefined
72
+ await this.storage.delete(this.namespace);
73
+ } else {
74
+ // Also store false or null values
75
+ await this.storage.put(this.namespace, JSON.stringify(this.value));
76
+ }
77
+ }
78
+ }
79
+ exports.SingleValueStoreCache = SingleValueStoreCache;
80
+ class LoadStoreCache {
81
+ cache = {};
82
+ constructor(namespace, storage, transformer, legacyNamespaces = []) {
83
+ this.namespace = namespace;
84
+ this.legacyNamespaces = legacyNamespaces;
85
+ this.storage = storage;
86
+ this.transformer = transformer;
87
+ }
88
+ get(key) {
89
+ return this.cache[key];
90
+ }
91
+ getAll() {
92
+ return {
93
+ ...this.cache
94
+ };
95
+ }
96
+ put(key, value) {
97
+ this.cache[key] = value;
98
+ }
99
+ putAll(values) {
100
+ for (const key of Object.keys(values)) {
101
+ this.cache[key] = values[key];
102
+ }
103
+ }
104
+ remove(key) {
105
+ delete this.cache[key];
106
+ }
107
+ clear() {
108
+ this.cache = {};
109
+ }
110
+ async load(initialValues) {
111
+ let rawValues = await this.storage.get(this.namespace);
112
+ for (const legacyNamespace of this.legacyNamespaces) {
113
+ if (rawValues) {
114
+ break;
115
+ }
116
+ rawValues = await this.storage.get(legacyNamespace);
117
+ }
118
+ let jsonValues = {};
119
+ if (!rawValues) {
120
+ this.clear();
121
+ if (initialValues) {
122
+ this.putAll(initialValues);
123
+ }
124
+ return;
125
+ }
126
+ try {
127
+ jsonValues = JSON.parse(rawValues) || {};
128
+ } catch {
129
+ this.clear();
130
+ if (initialValues) {
131
+ this.putAll(initialValues);
132
+ }
133
+ return;
134
+ }
135
+ const values = {};
136
+ for (const key of Object.keys(jsonValues)) {
137
+ try {
138
+ const value = this.transformer ? this.transformer(jsonValues[key]) : jsonValues[key];
139
+ if (value !== undefined) {
140
+ values[key] = value;
141
+ }
142
+ } catch {
143
+ // Do nothing
144
+ }
145
+ }
146
+ this.clear();
147
+ if (initialValues) {
148
+ this.putAll(initialValues);
149
+ }
150
+ this.putAll(values);
151
+ }
152
+ async store(values = this.cache) {
153
+ await this.storage.put(this.namespace, JSON.stringify(values));
154
+ }
155
+ }
156
+ exports.LoadStoreCache = LoadStoreCache;
157
+ const transformVariantFromStorage = storageValue => {
158
+ if (typeof storageValue === "string") {
159
+ // From v0 string format
160
+ return {
161
+ key: storageValue,
162
+ value: storageValue
163
+ };
164
+ } else if (typeof storageValue === "object" && storageValue !== null) {
165
+ // From v1 or v2 object format
166
+ const variantRecord = storageValue;
167
+ const key = variantRecord.key;
168
+ const value = variantRecord.value;
169
+ const payload = variantRecord.payload;
170
+ const rawMetadata = variantRecord.metadata;
171
+ let metadata = rawMetadata && typeof rawMetadata === "object" ? {
172
+ ...rawMetadata
173
+ } : undefined;
174
+ let experimentKey = typeof variantRecord.expKey === "string" ? variantRecord.expKey : undefined;
175
+ const metadataExperimentKey = metadata && typeof metadata.experimentKey === "string" ? metadata.experimentKey : undefined;
176
+ if (metadataExperimentKey) {
177
+ experimentKey = metadataExperimentKey;
178
+ } else if (experimentKey) {
179
+ metadata = metadata || {};
180
+ metadata.experimentKey = experimentKey;
181
+ }
182
+ const variant = {};
183
+ if (typeof key === "string") {
184
+ variant.key = key;
185
+ } else if (typeof value === "string") {
186
+ variant.key = value;
187
+ }
188
+ if (typeof value === "string") variant.value = value;
189
+ if (metadata) variant.metadata = metadata;
190
+ if (payload) variant.payload = payload;
191
+ if (experimentKey) variant.expKey = experimentKey;
192
+ return variant;
193
+ }
194
+ return undefined;
195
+ };
196
+ exports.transformVariantFromStorage = transformVariantFromStorage;
197
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getVariantStorage","deploymentKey","instanceName","storage","namespace","getNamespace","legacyNamespace","getLegacyNamespace","LoadStoreCache","transformVariantFromStorage","exports","getFlagStorage","undefined","getVariantsOptionsStorage","SingleValueStoreCache","hashString","truncatedDeployment","substring","length","value","hash","i","charCodeAt","Math","imul","toString","padStart","constructor","legacyNamespaces","get","put","load","JSON","parse","store","delete","stringify","cache","transformer","key","getAll","putAll","values","Object","keys","remove","clear","initialValues","rawValues","jsonValues","storageValue","variantRecord","payload","rawMetadata","metadata","experimentKey","expKey","metadataExperimentKey","variant"],"sourceRoot":"../../../../src","sources":["experiment/storage/cache.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MemoryStorage = exports.LocalStorage = void 0;
7
+ class MemoryStorage {
8
+ static memoryStorage = new Map();
9
+ async get(key) {
10
+ return MemoryStorage.memoryStorage.get(key) ?? null;
11
+ }
12
+ async put(key, value) {
13
+ MemoryStorage.memoryStorage.set(key, value);
14
+ }
15
+ async delete(key) {
16
+ MemoryStorage.memoryStorage.delete(key);
17
+ }
18
+ async reset() {
19
+ MemoryStorage.memoryStorage.clear();
20
+ }
21
+ }
22
+ exports.MemoryStorage = MemoryStorage;
23
+ class LocalStorage extends MemoryStorage {}
24
+ exports.LocalStorage = LocalStorage;
25
+ //# sourceMappingURL=local-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MemoryStorage","memoryStorage","Map","get","key","put","value","set","delete","reset","clear","exports","LocalStorage"],"sourceRoot":"../../../../src","sources":["experiment/storage/local-storage.ts"],"mappings":";;;;;;AAEO,MAAMA,aAAa,CAAoB;EAC5C,OAAwBC,aAAa,GAAG,IAAIC,GAAG,CAAiB,CAAC;EAEjE,MAAMC,GAAGA,CAACC,GAAW,EAA0B;IAC7C,OAAOJ,aAAa,CAACC,aAAa,CAACE,GAAG,CAACC,GAAG,CAAC,IAAI,IAAI;EACrD;EAEA,MAAMC,GAAGA,CAACD,GAAW,EAAEE,KAAa,EAAiB;IACnDN,aAAa,CAACC,aAAa,CAACM,GAAG,CAACH,GAAG,EAAEE,KAAK,CAAC;EAC7C;EAEA,MAAME,MAAMA,CAACJ,GAAW,EAAiB;IACvCJ,aAAa,CAACC,aAAa,CAACO,MAAM,CAACJ,GAAG,CAAC;EACzC;EAEA,MAAMK,KAAKA,CAAA,EAAkB;IAC3BT,aAAa,CAACC,aAAa,CAACS,KAAK,CAAC,CAAC;EACrC;AACF;AAACC,OAAA,CAAAX,aAAA,GAAAA,aAAA;AAEM,MAAMY,YAAY,SAASZ,aAAa,CAAC;AAAEW,OAAA,CAAAC,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StubExperimentClient = void 0;
7
+ var _config = require("./types/config");
8
+ /**
9
+ * A stub {@link Client} implementation that does nothing for all methods
10
+ */
11
+ class StubExperimentClient {
12
+ getUser() {
13
+ return {};
14
+ }
15
+ async start(_user) {
16
+ return;
17
+ }
18
+ stop() {}
19
+ setUser(_user) {}
20
+ async fetch(_user, _options) {
21
+ return this;
22
+ }
23
+ async fetchOrThrow(_user, _options) {
24
+ return this;
25
+ }
26
+ getUserProvider() {
27
+ return {
28
+ async getUser() {
29
+ return {};
30
+ }
31
+ };
32
+ }
33
+ setUserProvider(_userProvider) {
34
+ return this;
35
+ }
36
+ variant(_key, _fallback) {
37
+ return _config.Defaults.fallbackVariant ?? {};
38
+ }
39
+ all() {
40
+ return {};
41
+ }
42
+ clear() {}
43
+ exposure(_key) {}
44
+ }
45
+ exports.StubExperimentClient = StubExperimentClient;
46
+ //# sourceMappingURL=stubClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_config","require","StubExperimentClient","getUser","start","_user","stop","setUser","fetch","_options","fetchOrThrow","getUserProvider","setUserProvider","_userProvider","variant","_key","_fallback","Defaults","fallbackVariant","all","clear","exposure","exports"],"sourceRoot":"../../../src","sources":["experiment/stubClient.ts"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAIA;AACA;AACA;AACO,MAAMC,oBAAoB,CAAmB;EAC3CC,OAAOA,CAAA,EAAmB;IAC/B,OAAO,CAAC,CAAC;EACX;EAEA,MAAaC,KAAKA,CAACC,KAAsB,EAAiB;IACxD;EACF;EAEOC,IAAIA,CAAA,EAAS,CAAC;EAEdC,OAAOA,CAACF,KAAqB,EAAQ,CAAC;EAE7C,MAAaG,KAAKA,CAChBH,KAAsB,EACtBI,QAAuB,EACQ;IAC/B,OAAO,IAAI;EACb;EAEA,MAAaC,YAAYA,CACvBL,KAAsB,EACtBI,QAAuB,EACQ;IAC/B,OAAO,IAAI;EACb;EAEOE,eAAeA,CAAA,EAA2B;IAC/C,OAAO;MACL,MAAMR,OAAOA,CAAA,EAA4B;QACvC,OAAO,CAAC,CAAC;MACX;IACF,CAAC;EACH;EAEOS,eAAeA,CACpBC,aAAqC,EACf;IACtB,OAAO,IAAI;EACb;EAEOC,OAAOA,CAACC,IAAY,EAAEC,SAA4B,EAAW;IAClE,OAAOC,gBAAQ,CAACC,eAAe,IAAI,CAAC,CAAC;EACvC;EAEOC,GAAGA,CAAA,EAAa;IACrB,OAAO,CAAC,CAAC;EACX;EAEOC,KAAKA,CAAA,EAAS,CAAC;EAEfC,QAAQA,CAACN,IAAY,EAAQ,CAAC;AACvC;AAACO,OAAA,CAAApB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.WrapperClient = exports.FetchHttpClient = void 0;
7
+ var _experimentCore = require("@amplitude/experiment-core");
8
+ var _unfetch = _interopRequireDefault(require("unfetch"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ /**
11
+ * @packageDocumentation
12
+ * @internal
13
+ */
14
+
15
+ const getFetch = () => _experimentCore.safeGlobal.fetch || _unfetch.default;
16
+ const getAbortController = () => {
17
+ const scope = _experimentCore.safeGlobal;
18
+ return typeof scope.AbortController === "function" ? new scope.AbortController() : undefined;
19
+ };
20
+ const timeout = (promise, timeoutMillis, abortController) => {
21
+ if (timeoutMillis == null || timeoutMillis <= 0) {
22
+ return promise;
23
+ }
24
+ return new Promise(function (resolve, reject) {
25
+ const timeoutHandle = _experimentCore.safeGlobal.setTimeout(function () {
26
+ abortController?.abort();
27
+ reject(Error("Request timeout after " + timeoutMillis + " milliseconds"));
28
+ }, timeoutMillis);
29
+ promise.then(value => {
30
+ _experimentCore.safeGlobal.clearTimeout(timeoutHandle);
31
+ resolve(value);
32
+ }, error => {
33
+ _experimentCore.safeGlobal.clearTimeout(timeoutHandle);
34
+ reject(error);
35
+ });
36
+ });
37
+ };
38
+ const _request = (requestUrl, method, headers, data, timeoutMillis) => {
39
+ const abortController = getAbortController();
40
+ const call = async () => {
41
+ const response = await getFetch()(requestUrl, {
42
+ method: method,
43
+ headers: headers,
44
+ body: data,
45
+ signal: abortController?.signal
46
+ });
47
+ const simpleResponse = {
48
+ status: response.status,
49
+ body: await response.text()
50
+ };
51
+ return simpleResponse;
52
+ };
53
+ return timeout(call(), timeoutMillis, abortController);
54
+ };
55
+
56
+ /**
57
+ * Wrap the exposed HttpClient in a CoreClient implementation to work with
58
+ * FlagsApi and EvaluationApi.
59
+ */
60
+ class WrapperClient {
61
+ constructor(client) {
62
+ this.client = client;
63
+ }
64
+ async request(request) {
65
+ return await this.client.request(request.requestUrl, request.method, request.headers, null, request.timeoutMillis);
66
+ }
67
+ }
68
+ exports.WrapperClient = WrapperClient;
69
+ const FetchHttpClient = exports.FetchHttpClient = {
70
+ request: _request
71
+ };
72
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_experimentCore","require","_unfetch","_interopRequireDefault","e","__esModule","default","getFetch","safeGlobal","fetch","unfetch","getAbortController","scope","AbortController","undefined","timeout","promise","timeoutMillis","abortController","Promise","resolve","reject","timeoutHandle","setTimeout","abort","Error","then","value","clearTimeout","error","_request","requestUrl","method","headers","data","call","response","body","signal","simpleResponse","status","text","WrapperClient","constructor","client","request","exports","FetchHttpClient"],"sourceRoot":"../../../../src","sources":["experiment/transport/http.ts"],"mappings":";;;;;;AAKA,IAAAA,eAAA,GAAAC,OAAA;AAMA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA8B,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAX9B;AACA;AACA;AACA;;AAYA,MAAMG,QAAQ,GAAGA,CAAA,KAAMC,0BAAU,CAACC,KAAK,IAAIC,gBAAO;AAWlD,MAAMC,kBAAkB,GAAGA,CAAA,KAAuC;EAChE,MAAMC,KAAK,GAAGJ,0BAA4C;EAC1D,OAAO,OAAOI,KAAK,CAACC,eAAe,KAAK,UAAU,GAC9C,IAAID,KAAK,CAACC,eAAe,CAAC,CAAC,GAC3BC,SAAS;AACf,CAAC;AAED,MAAMC,OAAO,GAAGA,CACdC,OAAgC,EAChCC,aAAsB,EACtBC,eAAqC,KACT;EAC5B,IAAID,aAAa,IAAI,IAAI,IAAIA,aAAa,IAAI,CAAC,EAAE;IAC/C,OAAOD,OAAO;EAChB;EACA,OAAO,IAAIG,OAAO,CAAC,UAAUC,OAAO,EAAEC,MAAM,EAAE;IAC5C,MAAMC,aAAa,GAAGd,0BAAU,CAACe,UAAU,CAAC,YAAY;MACtDL,eAAe,EAAEM,KAAK,CAAC,CAAC;MACxBH,MAAM,CAACI,KAAK,CAAC,wBAAwB,GAAGR,aAAa,GAAG,eAAe,CAAC,CAAC;IAC3E,CAAC,EAAEA,aAAa,CAAC;IACjBD,OAAO,CAACU,IAAI,CACTC,KAAK,IAAK;MACTnB,0BAAU,CAACoB,YAAY,CAACN,aAAa,CAAC;MACtCF,OAAO,CAACO,KAAK,CAAC;IAChB,CAAC,EACAE,KAAK,IAAK;MACTrB,0BAAU,CAACoB,YAAY,CAACN,aAAa,CAAC;MACtCD,MAAM,CAACQ,KAAK,CAAC;IACf,CACF,CAAC;EACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAMC,QAAQ,GAAGA,CACfC,UAAkB,EAClBC,MAAc,EACdC,OAA+B,EAC/BC,IAAY,EACZjB,aAAsB,KACM;EAC5B,MAAMC,eAAe,GAAGP,kBAAkB,CAAC,CAAC;EAC5C,MAAMwB,IAAI,GAAG,MAAAA,CAAA,KAAY;IACvB,MAAMC,QAAQ,GAAG,MAAM7B,QAAQ,CAAC,CAAC,CAACwB,UAAU,EAAE;MAC5CC,MAAM,EAAEA,MAAM;MACdC,OAAO,EAAEA,OAAO;MAChBI,IAAI,EAAEH,IAAI;MACVI,MAAM,EAAEpB,eAAe,EAAEoB;IAC3B,CAAC,CAAC;IACF,MAAMC,cAA8B,GAAG;MACrCC,MAAM,EAAEJ,QAAQ,CAACI,MAAM;MACvBH,IAAI,EAAE,MAAMD,QAAQ,CAACK,IAAI,CAAC;IAC5B,CAAC;IACD,OAAOF,cAAc;EACvB,CAAC;EACD,OAAOxB,OAAO,CAACoB,IAAI,CAAC,CAAC,EAAElB,aAAa,EAAEC,eAAe,CAAC;AACxD,CAAC;;AAED;AACA;AACA;AACA;AACO,MAAMwB,aAAa,CAA2B;EAEnDC,WAAWA,CAACC,MAAkB,EAAE;IAC9B,IAAI,CAACA,MAAM,GAAGA,MAAM;EACtB;EAEA,MAAMC,OAAOA,CAACA,OAAoB,EAAyB;IACzD,OAAO,MAAM,IAAI,CAACD,MAAM,CAACC,OAAO,CAC9BA,OAAO,CAACd,UAAU,EAClBc,OAAO,CAACb,MAAM,EACda,OAAO,CAACZ,OAAO,EACf,IAAI,EACJY,OAAO,CAAC5B,aACV,CAAC;EACH;AACF;AAAC6B,OAAA,CAAAJ,aAAA,GAAAA,aAAA;AAEM,MAAMK,eAA2B,GAAAD,OAAA,CAAAC,eAAA,GAAG;EAAEF,OAAO,EAAEf;AAAS,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["experiment/types/client.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Defaults = void 0;
7
+ var _http = require("../../native/http");
8
+ var _storage = require("../../native/storage");
9
+ var _logger = require("./logger");
10
+ var _source = require("./source");
11
+ /**
12
+ * @category Configuration
13
+ */
14
+
15
+ /**
16
+ Defaults for Experiment Config options
17
+
18
+ | **Option** | **Default** |
19
+ |------------------|-----------------------------------|
20
+ | **debug** | `false` |
21
+ | **logLevel** | `LogLevel.Error` |
22
+ | **logger** | `null` (ConsoleLogger will be used) |
23
+ | **instanceName** | `$default_instance` |
24
+ | **fallbackVariant** | `null` |
25
+ | **initialVariants** | `null` |
26
+ | **initialFlags** | `undefined` |
27
+ | **source** | `Source.LocalStorage` |
28
+ | **serverUrl** | `"https://api.lab.amplitude.com"` |
29
+ | **flagsServerUrl** | `"https://flag.lab.amplitude.com"` |
30
+ | **serverZone** | `"US"` |
31
+ | **assignmentTimeoutMillis** | `10000` |
32
+ | **retryFailedAssignment** | `true` |
33
+ | **automaticExposureTracking** | `true` |
34
+ | **pollOnStart** | `true` |
35
+ | **fetchOnStart** | `true` |
36
+ | **automaticFetchOnAmplitudeIdentityChange** | `false` |
37
+ | **userProvider** | `null` |
38
+ | **analyticsProvider** | `null` |
39
+ | **exposureTrackingProvider** | `null` |
40
+
41
+ *
42
+ * @category Configuration
43
+ */
44
+ const Defaults = exports.Defaults = {
45
+ debug: false,
46
+ logLevel: _logger.LogLevel.Error,
47
+ loggerProvider: null,
48
+ instanceName: "$default_instance",
49
+ fallbackVariant: {},
50
+ initialVariants: {},
51
+ initialFlags: undefined,
52
+ source: _source.Source.LocalStorage,
53
+ serverUrl: "https://api.lab.amplitude.com",
54
+ flagsServerUrl: "https://flag.lab.amplitude.com",
55
+ serverZone: "US",
56
+ fetchTimeoutMillis: 10000,
57
+ retryFetchOnFailure: true,
58
+ automaticExposureTracking: true,
59
+ pollOnStart: true,
60
+ fetchOnStart: true,
61
+ automaticFetchOnAmplitudeIdentityChange: false,
62
+ userProvider: null,
63
+ exposureTrackingProvider: null,
64
+ httpClient: _http.nitroHttpClient,
65
+ storage: new _storage.NitroMemoryStorage("experiment")
66
+ };
67
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_http","require","_storage","_logger","_source","Defaults","exports","debug","logLevel","LogLevel","Error","loggerProvider","instanceName","fallbackVariant","initialVariants","initialFlags","undefined","source","Source","LocalStorage","serverUrl","flagsServerUrl","serverZone","fetchTimeoutMillis","retryFetchOnFailure","automaticExposureTracking","pollOnStart","fetchOnStart","automaticFetchOnAmplitudeIdentityChange","userProvider","exposureTrackingProvider","httpClient","nitroHttpClient","storage","NitroMemoryStorage"],"sourceRoot":"../../../../src","sources":["experiment/types/config.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAGA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAMA;AACA;AACA;;AAiJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,QAA0B,GAAAC,OAAA,CAAAD,QAAA,GAAG;EACxCE,KAAK,EAAE,KAAK;EACZC,QAAQ,EAAEC,gBAAQ,CAACC,KAAK;EACxBC,cAAc,EAAE,IAAI;EACpBC,YAAY,EAAE,mBAAmB;EACjCC,eAAe,EAAE,CAAC,CAAC;EACnBC,eAAe,EAAE,CAAC,CAAC;EACnBC,YAAY,EAAEC,SAAS;EACvBC,MAAM,EAAEC,cAAM,CAACC,YAAY;EAC3BC,SAAS,EAAE,+BAA+B;EAC1CC,cAAc,EAAE,gCAAgC;EAChDC,UAAU,EAAE,IAAI;EAChBC,kBAAkB,EAAE,KAAK;EACzBC,mBAAmB,EAAE,IAAI;EACzBC,yBAAyB,EAAE,IAAI;EAC/BC,WAAW,EAAE,IAAI;EACjBC,YAAY,EAAE,IAAI;EAClBC,uCAAuC,EAAE,KAAK;EAC9CC,YAAY,EAAE,IAAI;EAClBC,wBAAwB,EAAE,IAAI;EAC9BC,UAAU,EAAEC,qBAAe;EAC3BC,OAAO,EAAE,IAAIC,2BAAkB,CAAC,YAAY;AAC9C,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=exposure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["experiment/types/exposure.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LogLevel = void 0;
7
+ /**
8
+ * Log level enumeration for controlling logging verbosity.
9
+ * @category Logging
10
+ */
11
+ let LogLevel = exports.LogLevel = /*#__PURE__*/function (LogLevel) {
12
+ /**
13
+ * Disable all logging
14
+ */
15
+ LogLevel[LogLevel["Disable"] = 0] = "Disable";
16
+ /**
17
+ * Error level logging - only critical errors
18
+ */
19
+ LogLevel[LogLevel["Error"] = 1] = "Error";
20
+ /**
21
+ * Warning level logging - errors and warnings
22
+ */
23
+ LogLevel[LogLevel["Warn"] = 2] = "Warn";
24
+ /**
25
+ * Info level logging - errors, warnings, and informational messages
26
+ */
27
+ LogLevel[LogLevel["Info"] = 3] = "Info";
28
+ /**
29
+ * Debug level logging - errors, warnings, info, and debug messages
30
+ */
31
+ LogLevel[LogLevel["Debug"] = 4] = "Debug";
32
+ /**
33
+ * Verbose level logging - all messages including verbose details
34
+ */
35
+ LogLevel[LogLevel["Verbose"] = 5] = "Verbose";
36
+ return LogLevel;
37
+ }({});
38
+ /**
39
+ * Logger interface that can be implemented to provide custom logging.
40
+ * @category Logging
41
+ */
42
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["LogLevel","exports"],"sourceRoot":"../../../../src","sources":["experiment/types/logger.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AAHA,IAIYA,QAAQ,GAAAC,OAAA,CAAAD,QAAA,0BAARA,QAAQ;EAClB;AACF;AACA;EAHYA,QAAQ,CAARA,QAAQ;EAKlB;AACF;AACA;EAPYA,QAAQ,CAARA,QAAQ;EASlB;AACF;AACA;EAXYA,QAAQ,CAARA,QAAQ;EAalB;AACF;AACA;EAfYA,QAAQ,CAARA,QAAQ;EAiBlB;AACF;AACA;EAnBYA,QAAQ,CAARA,QAAQ;EAqBlB;AACF;AACA;EAvBYA,QAAQ,CAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AA2BpB;AACA;AACA;AACA","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isFallback = exports.VariantSource = exports.Source = void 0;
7
+ /**
8
+ * Determines the primary source of variants before falling back.
9
+ *
10
+ * @category Source
11
+ */
12
+ let Source = exports.Source = /*#__PURE__*/function (Source) {
13
+ /**
14
+ * The default way to source variants within your application. Before the
15
+ * assignments are fetched, `getVariant(s)` will fallback to local storage
16
+ * first, then `initialVariants` if local storage is empty. This option
17
+ * effectively falls back to an assignment fetched previously.
18
+ */
19
+ Source["LocalStorage"] = "localStorage";
20
+ /**
21
+ * This bootstrap option is used primarily for servers-side rendering using an
22
+ * Experiment server SDK. This bootstrap option always prefers the config
23
+ * `initialVariants` over data in local storage, even if variants are fetched
24
+ * successfully and stored locally.
25
+ */
26
+ Source["InitialVariants"] = "initialVariants";
27
+ return Source;
28
+ }({});
29
+ /**
30
+ * Indicates from which source the variant() function determines the variant
31
+ *
32
+ * @category Source
33
+ */
34
+ let VariantSource = exports.VariantSource = /*#__PURE__*/function (VariantSource) {
35
+ VariantSource["LocalStorage"] = "storage";
36
+ VariantSource["InitialVariants"] = "initial";
37
+ VariantSource["SecondaryLocalStorage"] = "secondary-storage";
38
+ VariantSource["SecondaryInitialVariants"] = "secondary-initial";
39
+ VariantSource["FallbackInline"] = "fallback-inline";
40
+ VariantSource["FallbackConfig"] = "fallback-config";
41
+ VariantSource["LocalEvaluation"] = "local-evaluation";
42
+ return VariantSource;
43
+ }({});
44
+ /**
45
+ * Returns true if the VariantSource is one of the fallbacks (inline or config)
46
+ *
47
+ * @param source a {@link VariantSource}
48
+ * @returns true if source is {@link VariantSource.FallbackInline} or {@link VariantSource.FallbackConfig}
49
+ */
50
+ const isFallback = source => {
51
+ return !source || source === VariantSource.FallbackInline || source === VariantSource.FallbackConfig || source === VariantSource.SecondaryInitialVariants;
52
+ };
53
+ exports.isFallback = isFallback;
54
+ //# sourceMappingURL=source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Source","exports","VariantSource","isFallback","source","FallbackInline","FallbackConfig","SecondaryInitialVariants"],"sourceRoot":"../../../../src","sources":["experiment/types/source.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AAJA,IAKYA,MAAM,GAAAC,OAAA,CAAAD,MAAA,0BAANA,MAAM;EAChB;AACF;AACA;AACA;AACA;AACA;EANYA,MAAM;EAShB;AACF;AACA;AACA;AACA;AACA;EAdYA,MAAM;EAAA,OAANA,MAAM;AAAA;AAkBlB;AACA;AACA;AACA;AACA;AAJA,IAKYE,aAAa,GAAAD,OAAA,CAAAC,aAAA,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAUzB;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,UAAU,GAAIC,MAAiC,IAAc;EACxE,OACE,CAACA,MAAM,IACPA,MAAM,KAAKF,aAAa,CAACG,cAAc,IACvCD,MAAM,KAAKF,aAAa,CAACI,cAAc,IACvCF,MAAM,KAAKF,aAAa,CAACK,wBAAwB;AAErD,CAAC;AAACN,OAAA,CAAAE,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["experiment/types/storage.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["experiment/types/transport.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["experiment/types/user.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=variant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["experiment/types/variant.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Backoff = void 0;
7
+ var _experimentCore = require("@amplitude/experiment-core");
8
+ class Backoff {
9
+ started = false;
10
+ done = false;
11
+ constructor(attempts, min, max, scalar) {
12
+ this.attempts = attempts;
13
+ this.min = min;
14
+ this.max = max;
15
+ this.scalar = scalar;
16
+ }
17
+ start(fn) {
18
+ if (!this.started) {
19
+ this.started = true;
20
+ } else {
21
+ throw Error("Backoff already started");
22
+ }
23
+ this.backoff(fn, 0, this.min);
24
+ }
25
+ cancel() {
26
+ this.done = true;
27
+ if (this.timeoutHandle != null) {
28
+ _experimentCore.safeGlobal.clearTimeout(this.timeoutHandle);
29
+ this.timeoutHandle = undefined;
30
+ }
31
+ }
32
+ backoff(fn, attempt, delay) {
33
+ if (this.done) {
34
+ return;
35
+ }
36
+ this.timeoutHandle = _experimentCore.safeGlobal.setTimeout(async () => {
37
+ try {
38
+ this.timeoutHandle = undefined;
39
+ await fn();
40
+ this.done = true;
41
+ } catch (e) {
42
+ const nextAttempt = attempt + 1;
43
+ if (!this.done && nextAttempt < this.attempts) {
44
+ const nextDelay = Math.min(delay * this.scalar, this.max);
45
+ this.backoff(fn, nextAttempt, nextDelay);
46
+ } else {
47
+ this.done = true;
48
+ }
49
+ }
50
+ }, delay);
51
+ }
52
+ }
53
+ exports.Backoff = Backoff;
54
+ //# sourceMappingURL=backoff.js.map