react-native-nitro-amplitude 0.1.0 → 0.5.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 (176) hide show
  1. package/README.md +547 -55
  2. package/cpp/bindings/HybridAmplitudeWorker.cpp +27 -7
  3. package/lib/commonjs/analytics/config.js +31 -10
  4. package/lib/commonjs/analytics/config.js.map +1 -1
  5. package/lib/commonjs/analytics/index.js +8 -2
  6. package/lib/commonjs/analytics/index.js.map +1 -1
  7. package/lib/commonjs/analytics/network-guarded-fetch-transport.js +16 -0
  8. package/lib/commonjs/analytics/network-guarded-fetch-transport.js.map +1 -0
  9. package/lib/commonjs/analytics/nitro-transport.js +2 -0
  10. package/lib/commonjs/analytics/nitro-transport.js.map +1 -1
  11. package/lib/commonjs/analytics/plugins/context.js +7 -1
  12. package/lib/commonjs/analytics/plugins/context.js.map +1 -1
  13. package/lib/commonjs/analytics/react-native-client.js +155 -9
  14. package/lib/commonjs/analytics/react-native-client.js.map +1 -1
  15. package/lib/commonjs/diagnostics.js +92 -0
  16. package/lib/commonjs/diagnostics.js.map +1 -0
  17. package/lib/commonjs/errors.js +48 -0
  18. package/lib/commonjs/errors.js.map +1 -0
  19. package/lib/commonjs/experiment/experimentClient.js +84 -2
  20. package/lib/commonjs/experiment/experimentClient.js.map +1 -1
  21. package/lib/commonjs/experiment/index.js +12 -0
  22. package/lib/commonjs/experiment/index.js.map +1 -1
  23. package/lib/commonjs/experiment/stubClient.js +25 -0
  24. package/lib/commonjs/experiment/stubClient.js.map +1 -1
  25. package/lib/commonjs/experiment/transport/http.js +8 -2
  26. package/lib/commonjs/experiment/transport/http.js.map +1 -1
  27. package/lib/commonjs/experiment/typed-variants.js +52 -0
  28. package/lib/commonjs/experiment/typed-variants.js.map +1 -0
  29. package/lib/commonjs/experiment/types/config.js +32 -4
  30. package/lib/commonjs/experiment/types/config.js.map +1 -1
  31. package/lib/commonjs/index.js +105 -3
  32. package/lib/commonjs/index.js.map +1 -1
  33. package/lib/commonjs/index.web.js +387 -13
  34. package/lib/commonjs/index.web.js.map +1 -1
  35. package/lib/commonjs/native/context.web.js +26 -0
  36. package/lib/commonjs/native/context.web.js.map +1 -0
  37. package/lib/commonjs/native/http.js +23 -8
  38. package/lib/commonjs/native/http.js.map +1 -1
  39. package/lib/commonjs/native/http.web.js +17 -0
  40. package/lib/commonjs/native/http.web.js.map +1 -0
  41. package/lib/commonjs/native/hybrid.web.js +23 -0
  42. package/lib/commonjs/native/hybrid.web.js.map +1 -0
  43. package/lib/commonjs/native/storage.js +27 -15
  44. package/lib/commonjs/native/storage.js.map +1 -1
  45. package/lib/commonjs/native/storage.web.js +135 -0
  46. package/lib/commonjs/native/storage.web.js.map +1 -0
  47. package/lib/commonjs/network.js +154 -0
  48. package/lib/commonjs/network.js.map +1 -0
  49. package/lib/commonjs/presets.js +118 -0
  50. package/lib/commonjs/presets.js.map +1 -0
  51. package/lib/commonjs/testing.js +166 -0
  52. package/lib/commonjs/testing.js.map +1 -0
  53. package/lib/module/analytics/config.js +32 -11
  54. package/lib/module/analytics/config.js.map +1 -1
  55. package/lib/module/analytics/index.js +4 -1
  56. package/lib/module/analytics/index.js.map +1 -1
  57. package/lib/module/analytics/network-guarded-fetch-transport.js +11 -0
  58. package/lib/module/analytics/network-guarded-fetch-transport.js.map +1 -0
  59. package/lib/module/analytics/nitro-transport.js +2 -0
  60. package/lib/module/analytics/nitro-transport.js.map +1 -1
  61. package/lib/module/analytics/plugins/context.js +7 -1
  62. package/lib/module/analytics/plugins/context.js.map +1 -1
  63. package/lib/module/analytics/react-native-client.js +154 -9
  64. package/lib/module/analytics/react-native-client.js.map +1 -1
  65. package/lib/module/diagnostics.js +85 -0
  66. package/lib/module/diagnostics.js.map +1 -0
  67. package/lib/module/errors.js +41 -0
  68. package/lib/module/errors.js.map +1 -0
  69. package/lib/module/experiment/experimentClient.js +84 -2
  70. package/lib/module/experiment/experimentClient.js.map +1 -1
  71. package/lib/module/experiment/index.js +1 -0
  72. package/lib/module/experiment/index.js.map +1 -1
  73. package/lib/module/experiment/stubClient.js +25 -0
  74. package/lib/module/experiment/stubClient.js.map +1 -1
  75. package/lib/module/experiment/transport/http.js +8 -2
  76. package/lib/module/experiment/transport/http.js.map +1 -1
  77. package/lib/module/experiment/typed-variants.js +43 -0
  78. package/lib/module/experiment/typed-variants.js.map +1 -0
  79. package/lib/module/experiment/types/config.js +31 -4
  80. package/lib/module/experiment/types/config.js.map +1 -1
  81. package/lib/module/index.js +15 -3
  82. package/lib/module/index.js.map +1 -1
  83. package/lib/module/index.web.js +60 -11
  84. package/lib/module/index.web.js.map +1 -1
  85. package/lib/module/native/context.web.js +18 -0
  86. package/lib/module/native/context.web.js.map +1 -0
  87. package/lib/module/native/http.js +23 -8
  88. package/lib/module/native/http.js.map +1 -1
  89. package/lib/module/native/http.web.js +12 -0
  90. package/lib/module/native/http.web.js.map +1 -0
  91. package/lib/module/native/hybrid.web.js +16 -0
  92. package/lib/module/native/hybrid.web.js.map +1 -0
  93. package/lib/module/native/storage.js +27 -15
  94. package/lib/module/native/storage.js.map +1 -1
  95. package/lib/module/native/storage.web.js +128 -0
  96. package/lib/module/native/storage.web.js.map +1 -0
  97. package/lib/module/network.js +138 -0
  98. package/lib/module/network.js.map +1 -0
  99. package/lib/module/presets.js +110 -0
  100. package/lib/module/presets.js.map +1 -0
  101. package/lib/module/testing.js +160 -0
  102. package/lib/module/testing.js.map +1 -0
  103. package/lib/typescript/analytics/config.d.ts +19 -6
  104. package/lib/typescript/analytics/config.d.ts.map +1 -1
  105. package/lib/typescript/analytics/index.d.ts +1 -1
  106. package/lib/typescript/analytics/index.d.ts.map +1 -1
  107. package/lib/typescript/analytics/network-guarded-fetch-transport.d.ts +6 -0
  108. package/lib/typescript/analytics/network-guarded-fetch-transport.d.ts.map +1 -0
  109. package/lib/typescript/analytics/nitro-transport.d.ts.map +1 -1
  110. package/lib/typescript/analytics/plugins/context.d.ts +2 -0
  111. package/lib/typescript/analytics/plugins/context.d.ts.map +1 -1
  112. package/lib/typescript/analytics/react-native-client.d.ts +46 -6
  113. package/lib/typescript/analytics/react-native-client.d.ts.map +1 -1
  114. package/lib/typescript/diagnostics.d.ts +21 -0
  115. package/lib/typescript/diagnostics.d.ts.map +1 -0
  116. package/lib/typescript/errors.d.ts +9 -0
  117. package/lib/typescript/errors.d.ts.map +1 -0
  118. package/lib/typescript/experiment/experimentClient.d.ts +9 -1
  119. package/lib/typescript/experiment/experimentClient.d.ts.map +1 -1
  120. package/lib/typescript/experiment/index.d.ts +1 -0
  121. package/lib/typescript/experiment/index.d.ts.map +1 -1
  122. package/lib/typescript/experiment/stubClient.d.ts +6 -1
  123. package/lib/typescript/experiment/stubClient.d.ts.map +1 -1
  124. package/lib/typescript/experiment/transport/http.d.ts.map +1 -1
  125. package/lib/typescript/experiment/typed-variants.d.ts +9 -0
  126. package/lib/typescript/experiment/typed-variants.d.ts.map +1 -0
  127. package/lib/typescript/experiment/types/client.d.ts +21 -0
  128. package/lib/typescript/experiment/types/client.d.ts.map +1 -1
  129. package/lib/typescript/experiment/types/config.d.ts.map +1 -1
  130. package/lib/typescript/index.d.ts +12 -3
  131. package/lib/typescript/index.d.ts.map +1 -1
  132. package/lib/typescript/index.web.d.ts +37 -8
  133. package/lib/typescript/index.web.d.ts.map +1 -1
  134. package/lib/typescript/native/context.web.d.ts +8 -0
  135. package/lib/typescript/native/context.web.d.ts.map +1 -0
  136. package/lib/typescript/native/http.d.ts.map +1 -1
  137. package/lib/typescript/native/http.web.d.ts +6 -0
  138. package/lib/typescript/native/http.web.d.ts.map +1 -0
  139. package/lib/typescript/native/hybrid.web.d.ts +8 -0
  140. package/lib/typescript/native/hybrid.web.d.ts.map +1 -0
  141. package/lib/typescript/native/storage.d.ts.map +1 -1
  142. package/lib/typescript/native/storage.web.d.ts +30 -0
  143. package/lib/typescript/native/storage.web.d.ts.map +1 -0
  144. package/lib/typescript/network.d.ts +50 -0
  145. package/lib/typescript/network.d.ts.map +1 -0
  146. package/lib/typescript/presets.d.ts +50 -0
  147. package/lib/typescript/presets.d.ts.map +1 -0
  148. package/lib/typescript/testing.d.ts +11 -0
  149. package/lib/typescript/testing.d.ts.map +1 -0
  150. package/package.json +4 -2
  151. package/src/analytics/config.ts +33 -8
  152. package/src/analytics/index.ts +3 -0
  153. package/src/analytics/network-guarded-fetch-transport.ts +10 -0
  154. package/src/analytics/nitro-transport.ts +2 -0
  155. package/src/analytics/plugins/context.ts +10 -1
  156. package/src/analytics/react-native-client.ts +238 -9
  157. package/src/diagnostics.ts +119 -0
  158. package/src/errors.ts +60 -0
  159. package/src/experiment/experimentClient.ts +116 -3
  160. package/src/experiment/index.ts +1 -0
  161. package/src/experiment/stubClient.ts +42 -1
  162. package/src/experiment/transport/http.ts +10 -2
  163. package/src/experiment/typed-variants.ts +68 -0
  164. package/src/experiment/types/client.ts +29 -0
  165. package/src/experiment/types/config.ts +29 -5
  166. package/src/index.ts +28 -2
  167. package/src/index.web.ts +89 -14
  168. package/src/native/context.web.ts +38 -0
  169. package/src/native/http.ts +38 -8
  170. package/src/native/http.web.ts +24 -0
  171. package/src/native/hybrid.web.ts +21 -0
  172. package/src/native/storage.ts +27 -25
  173. package/src/native/storage.web.ts +152 -0
  174. package/src/network.ts +258 -0
  175. package/src/presets.ts +208 -0
  176. package/src/testing.ts +177 -0
@@ -1,15 +1,23 @@
1
1
  import { createInstance } from "./analytics/react-native-client";
2
+ import type { AmplitudeDiagnostics } from "./diagnostics";
2
3
  import { prefetchNativeContext } from "./native/context";
3
4
  import * as AnalyticsTypes from "./analytics/types";
4
5
  export { createInstance };
5
- export declare const add: (plugin: AnalyticsTypes.Plugin<AnalyticsTypes.ReactNativeClient, AnalyticsTypes.ReactNativeConfig>) => AnalyticsTypes.AmplitudeReturn<void>, flush: () => AnalyticsTypes.AmplitudeReturn<void>, getDeviceId: () => string | undefined, getSessionId: () => number | undefined, getUserId: () => string | undefined, groupIdentify: (groupType: string, groupName: string | string[], identify: AnalyticsTypes.IIdentify, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, identify: (identify: AnalyticsTypes.IIdentify, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, init: (apiKey: string, userId?: string, options?: AnalyticsTypes.ReactNativeOptions) => AnalyticsTypes.AmplitudeReturn<void>, logEvent: (eventInput: AnalyticsTypes.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, remove: (pluginName: string) => AnalyticsTypes.AmplitudeReturn<void>, reset: () => void, revenue: (revenue: AnalyticsTypes.IRevenue, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setUserId: (userId: string | undefined) => void, shutdown: () => void, track: (eventInput: AnalyticsTypes.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, extendSession: () => void;
6
+ export declare const add: (plugin: AnalyticsTypes.Plugin<AnalyticsTypes.ReactNativeClient, AnalyticsTypes.ReactNativeConfig>) => AnalyticsTypes.AmplitudeReturn<void>, flush: () => AnalyticsTypes.AmplitudeReturn<void>, getDeviceId: () => string | undefined, getSessionId: () => number | undefined, getUserId: () => string | undefined, groupIdentify: (groupType: string, groupName: string | string[], identify: AnalyticsTypes.IIdentify, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, identify: (identify: AnalyticsTypes.IIdentify, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, init: (apiKey: string, userId?: string, options?: AnalyticsTypes.ReactNativeOptions) => AnalyticsTypes.AmplitudeReturn<void>, logEvent: (eventInput: AnalyticsTypes.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, remove: (pluginName: string) => AnalyticsTypes.AmplitudeReturn<void>, reset: () => void, revenue: (revenue: AnalyticsTypes.IRevenue, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setUserId: (userId: string | undefined) => void, shutdown: () => void, track: (eventInput: AnalyticsTypes.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, extendSession: () => void, flushWithResult: () => Promise<import("./analytics/react-native-client").AmplitudeFlushResult>, healthCheck: () => Promise<import("./analytics/react-native-client").AmplitudeHealthCheckResult>;
7
+ export declare function getDiagnostics(): AmplitudeDiagnostics;
6
8
  export { Revenue, Identify } from "@amplitude/analytics-core";
7
9
  export { InMemoryStorage, LocalStorage, MemoryStorage, } from "./analytics/storage/local-storage";
8
- export { NitroAnalyticsStorage, NitroMemoryStorage } from "./native/storage";
10
+ export { NitroAnalyticsStorage, NitroExperimentStorage, NitroMemoryStorage, } from "./native/storage";
9
11
  export { nitroHttpClient } from "./native/http";
10
12
  export { nitroTransport } from "./analytics/nitro-transport";
11
13
  export { prefetchNativeContext };
12
14
  export { AnalyticsTypes as Types };
15
+ export { getAmplitudeDiagnostics, getLastNativeError, getNativeStartupDiagnostics, } from "./diagnostics";
16
+ export type { AmplitudeDiagnostics, NativeStartupDiagnostics, } from "./diagnostics";
17
+ export * from "./errors";
18
+ export * from "./network";
19
+ export * from "./presets";
20
+ export * from "./testing";
13
21
  export * from "./experiment/types/config";
14
22
  export { Experiment } from "./experiment/factory";
15
23
  export { StubExperimentClient } from "./experiment/stubClient";
@@ -24,8 +32,9 @@ export { LogLevel } from "./experiment/types/logger";
24
32
  export type { Logger } from "./experiment/types/logger";
25
33
  export { ConsoleLogger } from "./experiment/logger/consoleLogger";
26
34
  export { LocalStorage as ExperimentLocalStorage, MemoryStorage as ExperimentMemoryStorage, } from "./experiment/storage/local-storage";
35
+ export * from "./experiment/typed-variants";
27
36
  export type { AmplitudeContext } from "./AmplitudeContext.nitro";
28
37
  export type { AmplitudeStorage } from "./AmplitudeStorage.nitro";
29
38
  export type { AmplitudeWorker } from "./AmplitudeWorker.nitro";
30
- export declare const VERSION = "0.1.0";
39
+ export declare const VERSION = "0.5.0";
31
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAwB,EACtB,cAAc,EACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,eAAO,MACL,GAAG,+IACH,KAAK,8CACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,8LACb,QAAQ,6IACR,IAAI,0HACJ,QAAQ,+LACR,MAAM,gEACN,KAAK,cACL,OAAO,2IACP,WAAW,8BACX,QAAQ,0JACR,SAAS,6BACT,YAAY,+BACZ,SAAS,wCACT,QAAQ,cACR,KAAK,+LACL,aAAa,YACI,CAAC;AAEpB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,OAAO,EAAE,cAAc,IAAI,KAAK,EAAE,CAAC;AAEnC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,YAAY,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EACL,YAAY,IAAI,sBAAsB,EACtC,aAAa,IAAI,uBAAuB,GACzC,MAAM,oCAAoC,CAAC;AAE5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAwB,EACtB,cAAc,EACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,eAAO,MACL,GAAG,+IACH,KAAK,8CACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,8LACb,QAAQ,6IACR,IAAI,0HACJ,QAAQ,+LACR,MAAM,gEACN,KAAK,cACL,OAAO,2IACP,WAAW,8BACX,QAAQ,0JACR,SAAS,6BACT,YAAY,+BACZ,SAAS,wCACT,QAAQ,cACR,KAAK,+LACL,aAAa,cACb,eAAe,iFACf,WAAW,qFACM,CAAC;AAEpB,wBAAgB,cAAc,IAAI,oBAAoB,CAErD;AAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,OAAO,EAAE,cAAc,IAAI,KAAK,EAAE,CAAC;AACnC,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAE1B,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,YAAY,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EACL,YAAY,IAAI,sBAAsB,EACtC,aAAa,IAAI,uBAAuB,GACzC,MAAM,oCAAoC,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAE5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,eAAO,MAAM,OAAO,UAAU,CAAC"}
@@ -1,12 +1,41 @@
1
- export declare const init: () => never;
2
- export declare const track: () => never;
3
- export declare const identify: () => never;
4
- export declare const createInstance: () => never;
5
- export declare const Experiment: {
6
- initialize: () => never;
7
- initializeWithAmplitudeAnalytics: () => never;
8
- };
1
+ import { createInstance } from "./analytics/react-native-client";
2
+ import type { Transport } from "@amplitude/analytics-core";
3
+ import type { AmplitudeDiagnostics } from "./diagnostics";
4
+ import { prefetchNativeContext } from "./native/context.web";
5
+ import * as AnalyticsTypes from "./analytics/types";
6
+ export { createInstance };
7
+ export declare const add: (plugin: AnalyticsTypes.Plugin<AnalyticsTypes.ReactNativeClient, AnalyticsTypes.ReactNativeConfig>) => AnalyticsTypes.AmplitudeReturn<void>, flush: () => AnalyticsTypes.AmplitudeReturn<void>, getDeviceId: () => string | undefined, getSessionId: () => number | undefined, getUserId: () => string | undefined, groupIdentify: (groupType: string, groupName: string | string[], identify: AnalyticsTypes.IIdentify, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, identify: (identify: AnalyticsTypes.IIdentify, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, init: (apiKey: string, userId?: string, options?: AnalyticsTypes.ReactNativeOptions) => AnalyticsTypes.AmplitudeReturn<void>, logEvent: (eventInput: AnalyticsTypes.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, remove: (pluginName: string) => AnalyticsTypes.AmplitudeReturn<void>, reset: () => void, revenue: (revenue: AnalyticsTypes.IRevenue, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setUserId: (userId: string | undefined) => void, shutdown: () => void, track: (eventInput: AnalyticsTypes.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: AnalyticsTypes.EventOptions) => AnalyticsTypes.AmplitudeReturn<AnalyticsTypes.Result>, extendSession: () => void, flushWithResult: () => Promise<import("./analytics/react-native-client").AmplitudeFlushResult>, healthCheck: () => Promise<import("./analytics/react-native-client").AmplitudeHealthCheckResult>;
8
+ export declare function getDiagnostics(): AmplitudeDiagnostics;
9
+ export { Revenue, Identify } from "@amplitude/analytics-core";
10
+ export { InMemoryStorage, LocalStorage, MemoryStorage, } from "./analytics/storage/local-storage";
11
+ export { NitroAnalyticsStorage, NitroExperimentStorage, NitroMemoryStorage, } from "./native/storage.web";
12
+ export { nitroHttpClient } from "./native/http.web";
13
+ export declare const nitroTransport: Transport;
14
+ export { prefetchNativeContext };
15
+ export { AnalyticsTypes as Types };
16
+ export { getAmplitudeDiagnostics, getLastNativeError, getNativeStartupDiagnostics, } from "./diagnostics";
17
+ export type { AmplitudeDiagnostics, NativeStartupDiagnostics, } from "./diagnostics";
18
+ export * from "./errors";
19
+ export * from "./network";
20
+ export * from "./presets";
21
+ export * from "./testing";
22
+ export * from "./experiment/types/config";
23
+ export { Experiment } from "./experiment/factory";
24
+ export { StubExperimentClient } from "./experiment/stubClient";
25
+ export { ExperimentClient } from "./experiment/experimentClient";
26
+ export * from "./experiment/types/client";
27
+ export { Source } from "./experiment/types/source";
28
+ export * from "./experiment/types/user";
29
+ export * from "./experiment/types/variant";
30
+ export * from "./experiment/types/exposure";
31
+ export * from "./experiment/types/storage";
32
+ export { LogLevel } from "./experiment/types/logger";
33
+ export type { Logger } from "./experiment/types/logger";
34
+ export { ConsoleLogger } from "./experiment/logger/consoleLogger";
35
+ export { LocalStorage as ExperimentLocalStorage, MemoryStorage as ExperimentMemoryStorage, } from "./experiment/storage/local-storage";
36
+ export * from "./experiment/typed-variants";
9
37
  export type { AmplitudeContext } from "./AmplitudeContext.nitro";
10
38
  export type { AmplitudeStorage } from "./AmplitudeStorage.nitro";
11
39
  export type { AmplitudeWorker } from "./AmplitudeWorker.nitro";
40
+ export declare const VERSION = "0.5.0";
12
41
  //# sourceMappingURL=index.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../src/index.web.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,IAAI,aAA4B,CAAC;AAC9C,eAAO,MAAM,KAAK,aAA6B,CAAC;AAChD,eAAO,MAAM,QAAQ,aAAgC,CAAC;AACtD,eAAO,MAAM,cAAc,aAAsC,CAAC;AAClE,eAAO,MAAM,UAAU;;;CAItB,CAAC;AAEF,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../src/index.web.ts"],"names":[],"mappings":"AAAA,OAAwB,EACtB,cAAc,EACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,eAAO,MACL,GAAG,+IACH,KAAK,8CACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,8LACb,QAAQ,6IACR,IAAI,0HACJ,QAAQ,+LACR,MAAM,gEACN,KAAK,cACL,OAAO,2IACP,WAAW,8BACX,QAAQ,0JACR,SAAS,6BACT,YAAY,+BACZ,SAAS,wCACT,QAAQ,cACR,KAAK,+LACL,aAAa,cACb,eAAe,iFACf,WAAW,qFACM,CAAC;AAEpB,wBAAgB,cAAc,IAAI,oBAAoB,CAErD;AAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,eAAO,MAAM,cAAc,EAAE,SAA8C,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,OAAO,EAAE,cAAc,IAAI,KAAK,EAAE,CAAC;AACnC,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAE1B,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,YAAY,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EACL,YAAY,IAAI,sBAAsB,EACtC,aAAa,IAAI,uBAAuB,GACzC,MAAM,oCAAoC,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAE5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,eAAO,MAAM,OAAO,UAAU,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ReactNativeTrackingOptions } from "@amplitude/analytics-core";
2
+ import type { LegacySessionData, NativeApplicationContext } from "./context";
3
+ export declare function prefetchNativeContext(): void;
4
+ export declare function getNativeApplicationContext(_options: ReactNativeTrackingOptions): NativeApplicationContext;
5
+ export declare function getLegacySessionData(_instanceName: string): LegacySessionData;
6
+ export declare function getLegacyEvents(_instanceName: string, _eventKind: string): string[];
7
+ export declare function removeLegacyEvent(_instanceName: string, _eventKind: string, _eventId: number): void;
8
+ //# sourceMappingURL=context.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.web.d.ts","sourceRoot":"","sources":["../../../src/native/context.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAM7E,wBAAgB,qBAAqB,IAAI,IAAI,CAAG;AAEhD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,0BAA0B,GACnC,wBAAwB,CAS1B;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,iBAAiB,CAE7E;AAED,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,EAAE,CAEV;AAED,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,IAAI,CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/native/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAuChF,qBAAa,eAAgB,YAAW,UAAU;IAC1C,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,aAAa,SAAQ,GACpB,OAAO,CAAC,cAAc,CAAC;CA4B3B;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/native/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAwDhF,qBAAa,eAAgB,YAAW,UAAU;IAC1C,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,aAAa,SAAyB,GACrC,OAAO,CAAC,cAAc,CAAC;CAyC3B;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { HttpClient, SimpleResponse } from "../experiment/types/transport";
2
+ export declare class NitroHttpClient implements HttpClient {
3
+ request(requestUrl: string, method: string, headers: Record<string, string>, data: string | null, timeoutMillis?: number): Promise<SimpleResponse>;
4
+ }
5
+ export declare const nitroHttpClient: NitroHttpClient;
6
+ //# sourceMappingURL=http.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.web.d.ts","sourceRoot":"","sources":["../../../src/native/http.web.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGhF,qBAAa,eAAgB,YAAW,UAAU;IAChD,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,aAAa,SAAQ,GACpB,OAAO,CAAC,cAAc,CAAC;CAU3B;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { AmplitudeContext } from "../AmplitudeContext.nitro";
2
+ import type { AmplitudeStorage } from "../AmplitudeStorage.nitro";
3
+ import type { AmplitudeWorker } from "../AmplitudeWorker.nitro";
4
+ export declare function getAmplitudeContext(): AmplitudeContext;
5
+ export declare function getAmplitudeStorage(): AmplitudeStorage;
6
+ export declare function getAmplitudeWorker(): AmplitudeWorker;
7
+ export declare function resetHybridInstancesForTests(): void;
8
+ //# sourceMappingURL=hybrid.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid.web.d.ts","sourceRoot":"","sources":["../../../src/native/hybrid.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAMhE,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/native/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAOhF,qBAAa,qBAAqB,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAYxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B;AAED,qBAAa,sBAAuB,YAAW,iBAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B;AAED,qBAAa,kBAAmB,YAAW,iBAAiB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/native/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAOhF,qBAAa,qBAAqB,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAYxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAKhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B;AAED,qBAAa,sBAAuB,YAAW,iBAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B;AAED,qBAAa,kBAAmB,YAAW,iBAAiB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAExC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
@@ -0,0 +1,30 @@
1
+ import type { Storage as AnalyticsStorage } from "@amplitude/analytics-core";
2
+ import type { Storage as ExperimentStorage } from "../experiment/types/storage";
3
+ export declare class NitroAnalyticsStorage<T> implements AnalyticsStorage<T> {
4
+ private readonly storage;
5
+ constructor(namespace: string);
6
+ isEnabled(): Promise<boolean>;
7
+ get(key: string): Promise<T | undefined>;
8
+ getRaw(key: string): Promise<string | undefined>;
9
+ set(key: string, value: T): Promise<void>;
10
+ remove(key: string): Promise<void>;
11
+ reset(): Promise<void>;
12
+ }
13
+ export declare class NitroExperimentStorage implements ExperimentStorage {
14
+ private readonly storage;
15
+ constructor(namespace: string);
16
+ get(key: string): Promise<string | null>;
17
+ put(key: string, value: string): Promise<void>;
18
+ delete(key: string): Promise<void>;
19
+ reset(): Promise<void>;
20
+ }
21
+ export declare class NitroMemoryStorage implements ExperimentStorage {
22
+ private readonly namespace;
23
+ private readonly values;
24
+ constructor(namespace: string);
25
+ get(key: string): Promise<string | null>;
26
+ put(key: string, value: string): Promise<void>;
27
+ delete(key: string): Promise<void>;
28
+ reset(): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=storage.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.web.d.ts","sourceRoot":"","sources":["../../../src/native/storage.web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AA6DhF,qBAAa,qBAAqB,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;gBAE/B,SAAS,EAAE,MAAM;IAIvB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAYxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAED,qBAAa,sBAAuB,YAAW,iBAAiB;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;gBAE/B,SAAS,EAAE,MAAM;IAIvB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAED,qBAAa,kBAAmB,YAAW,iBAAiB;IAG9C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;gBAEvB,SAAS,EAAE,MAAM;IAExC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
@@ -0,0 +1,50 @@
1
+ import { BaseTransport } from "@amplitude/analytics-core";
2
+ import type { Payload, Response, Transport } from "@amplitude/analytics-core";
3
+ import type { HttpClient, SimpleResponse } from "./experiment/types/transport";
4
+ export type DryRunRequest = {
5
+ url: string;
6
+ method: string;
7
+ headers: Record<string, string>;
8
+ data: string | null;
9
+ timeoutMillis: number;
10
+ createdAt: number;
11
+ };
12
+ export type DryRunEvent = {
13
+ serverUrl: string;
14
+ payload: Payload;
15
+ createdAt: number;
16
+ };
17
+ export type AmplitudeNetworkTiming = {
18
+ kind: "analytics" | "experiment";
19
+ url: string;
20
+ method: string;
21
+ startedAt: number;
22
+ finishedAt: number;
23
+ durationMillis: number;
24
+ status?: number | string;
25
+ error?: string;
26
+ };
27
+ export type AmplitudeNetworkTimingRecorder = (timing: AmplitudeNetworkTiming) => void;
28
+ export type AmplitudeNetworkTimingBuffer = {
29
+ record: AmplitudeNetworkTimingRecorder;
30
+ getTimings: () => AmplitudeNetworkTiming[];
31
+ clear: () => void;
32
+ };
33
+ export declare function setNetworkEnabled(enabled: boolean): void;
34
+ export declare function getNetworkEnabled(): boolean;
35
+ export declare function clearDryRunTransportRecords(): void;
36
+ export declare function getDryRunTransportRecords(): DryRunRequest[];
37
+ export declare function getDryRunAnalyticsEvents(): DryRunEvent[];
38
+ export declare function assertNetworkEnabled(): void;
39
+ export declare function createNetworkTimingBuffer(limit?: number): AmplitudeNetworkTimingBuffer;
40
+ export declare function createTimedAnalyticsTransport(transport: Transport, record: AmplitudeNetworkTimingRecorder): Transport;
41
+ export declare function createTimedHttpClient(httpClient: HttpClient, record: AmplitudeNetworkTimingRecorder): HttpClient;
42
+ export declare class DryRunHttpClient implements HttpClient {
43
+ request(requestUrl: string, method: string, headers: Record<string, string>, data: string | null, timeoutMillis?: number): Promise<SimpleResponse>;
44
+ }
45
+ export declare class DryRunTransport extends BaseTransport implements Transport {
46
+ send(serverUrl: string, payload: Payload): Promise<Response | null>;
47
+ }
48
+ export declare const dryRunHttpClient: DryRunHttpClient;
49
+ export declare const dryRunTransport: DryRunTransport;
50
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK/E,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,WAAW,GAAG,YAAY,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,CAC3C,MAAM,EAAE,sBAAsB,KAC3B,IAAI,CAAC;AAEV,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,8BAA8B,CAAC;IACvC,UAAU,EAAE,MAAM,sBAAsB,EAAE,CAAC;IAC3C,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAKF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAExD;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAGlD;AAED,wBAAgB,yBAAyB,IAAI,aAAa,EAAE,CAE3D;AAED,wBAAgB,wBAAwB,IAAI,WAAW,EAAE,CAKxD;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAO3C;AAkCD,wBAAgB,yBAAyB,CACvC,KAAK,SAAK,GACT,4BAA4B,CAe9B;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,8BAA8B,GACrC,SAAS,CAuCX;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,8BAA8B,GACrC,UAAU,CA2CZ;AAED,qBAAa,gBAAiB,YAAW,UAAU;IAC3C,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,aAAa,SAAQ,GACpB,OAAO,CAAC,cAAc,CAAC;CAc3B;AAED,qBAAa,eAAgB,SAAQ,aAAc,YAAW,SAAS;IAC/D,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAQ1E;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC;AACvD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -0,0 +1,50 @@
1
+ import type { ReactNativeOptions } from "@amplitude/analytics-core";
2
+ import type { AmplitudeReactNativeClient } from "./analytics/react-native-client";
3
+ import type { ExperimentClient } from "./experiment/experimentClient";
4
+ import type { ExperimentConfig } from "./experiment/types/config";
5
+ import type { ExperimentUser } from "./experiment/types/user";
6
+ export type DurableAmplitudeStoragePreset = {
7
+ analytics: Pick<ReactNativeOptions, "storageProvider" | "cookieStorage" | "transportProvider">;
8
+ experiment: Pick<ExperimentConfig, "storage">;
9
+ clear: () => Promise<void>;
10
+ };
11
+ export type DurableAmplitudeStoragePresetOptions = {
12
+ namespace?: string;
13
+ dryRun?: boolean;
14
+ };
15
+ export type AmplitudeCombinedClientConfig = {
16
+ analyticsApiKey: string;
17
+ experimentDeploymentKey?: string;
18
+ userId?: string;
19
+ instanceName?: string;
20
+ analytics?: ReactNativeOptions;
21
+ experiment?: ExperimentConfig;
22
+ durableStorage?: boolean | DurableAmplitudeStoragePresetOptions;
23
+ dryRun?: boolean;
24
+ };
25
+ export type AmplitudeCombinedClient = {
26
+ analytics: AmplitudeReactNativeClient;
27
+ experiment?: ExperimentClient;
28
+ init: (user?: ExperimentUser) => Promise<AmplitudeCombinedClient>;
29
+ flush: () => Promise<void>;
30
+ reset: () => void;
31
+ getUserId: () => string | undefined;
32
+ getDeviceId: () => string | undefined;
33
+ };
34
+ export type AmplitudeCombinedClientConfigWithExperiment = AmplitudeCombinedClientConfig & {
35
+ experimentDeploymentKey: string;
36
+ };
37
+ export type AmplitudeCombinedClientWithExperiment = Omit<AmplitudeCombinedClient, "experiment" | "init"> & {
38
+ experiment: ExperimentClient;
39
+ init: (user?: ExperimentUser) => Promise<AmplitudeCombinedClientWithExperiment>;
40
+ };
41
+ export declare function createDurableAmplitudeStoragePreset(options?: DurableAmplitudeStoragePresetOptions): DurableAmplitudeStoragePreset;
42
+ export declare function createPersistentAmplitudeConfig(namespaceOrOptions?: string | DurableAmplitudeStoragePresetOptions): DurableAmplitudeStoragePreset;
43
+ export declare function createExperimentUser(user: ExperimentUser): ExperimentUser;
44
+ export declare function createAmplitudeClient(config: AmplitudeCombinedClientConfigWithExperiment): AmplitudeCombinedClientWithExperiment;
45
+ export declare function createAmplitudeClient(config: AmplitudeCombinedClientConfig): AmplitudeCombinedClient;
46
+ export declare function getConnectorIdentity(instanceName?: string): {
47
+ userId?: string;
48
+ deviceId?: string;
49
+ };
50
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAEnB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAIlF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAmB9D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,EAAE,IAAI,CACb,kBAAkB,EAClB,iBAAiB,GAAG,eAAe,GAAG,mBAAmB,CAC1D,CAAC;IACF,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,GAAG,oCAAoC,CAAC;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,0BAA0B,CAAC;IACtC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAClE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACpC,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,2CAA2C,GACrD,6BAA6B,GAAG;IAC9B,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEJ,MAAM,MAAM,qCAAqC,GAAG,IAAI,CACtD,uBAAuB,EACvB,YAAY,GAAG,MAAM,CACtB,GAAG;IACF,UAAU,EAAE,gBAAgB,CAAC;IAC7B,IAAI,EAAE,CACJ,IAAI,CAAC,EAAE,cAAc,KAClB,OAAO,CAAC,qCAAqC,CAAC,CAAC;CACrD,CAAC;AAEF,wBAAgB,mCAAmC,CACjD,OAAO,GAAE,oCAAyC,GACjD,6BAA6B,CA6B/B;AAED,wBAAgB,+BAA+B,CAC7C,kBAAkB,CAAC,EAAE,MAAM,GAAG,oCAAoC,GACjE,6BAA6B,CAO/B;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAWzE;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,2CAA2C,GAClD,qCAAqC,CAAC;AACzC,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,6BAA6B,GACpC,uBAAuB,CAAC;AA0D3B,wBAAgB,oBAAoB,CAAC,YAAY,SAAsB,GAAG;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAEA"}
@@ -0,0 +1,11 @@
1
+ import type { AmplitudeReactNativeClient } from "./analytics/react-native-client";
2
+ import type { Client } from "./experiment/types/client";
3
+ import type { Storage } from "./experiment/types/storage";
4
+ import type { Variants } from "./experiment/types/variant";
5
+ export type FakeExperimentStorage = Storage & {
6
+ values: Map<string, string>;
7
+ };
8
+ export declare function createFakeExperimentStorage(initialValues?: Record<string, string>): FakeExperimentStorage;
9
+ export declare function createMockAmplitudeClient(): AmplitudeReactNativeClient;
10
+ export declare function createMockExperimentClient(initialVariants?: Variants): Client;
11
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,KAAK,EAAW,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AA8BpE,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG;IAC5C,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACzC,qBAAqB,CAevB;AAED,wBAAgB,yBAAyB,IAAI,0BAA0B,CA8DtE;AAED,wBAAgB,0BAA0B,CACxC,eAAe,GAAE,QAAa,GAC7B,MAAM,CAoDR"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-nitro-amplitude",
3
- "version": "0.1.0",
4
- "description": "High-performance Amplitude Analytics and Experiment SDK for React Native powered by Nitro Modules and C++: synchronous JSI storage, native device context, and background HTTP transport.",
3
+ "version": "0.5.0",
4
+ "description": "Amplitude Analytics and Experiment SDK for React Native powered by Nitro Modules and C++ on native platforms, with web-compatible fetch and storage fallbacks.",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
7
7
  "types": "lib/typescript/index.d.ts",
@@ -19,11 +19,13 @@
19
19
  "./analytics": {
20
20
  "types": "./lib/typescript/analytics/index.d.ts",
21
21
  "react-native": "./src/analytics/index.ts",
22
+ "browser": "./src/analytics/index.ts",
22
23
  "default": "./lib/commonjs/analytics/index.js"
23
24
  },
24
25
  "./experiment": {
25
26
  "types": "./lib/typescript/experiment/index.d.ts",
26
27
  "react-native": "./src/experiment/index.ts",
28
+ "browser": "./src/experiment/index.ts",
27
29
  "default": "./lib/commonjs/experiment/index.js"
28
30
  },
29
31
  "./app.plugin": "./app.plugin.js",
@@ -11,13 +11,33 @@ import {
11
11
  CookieStorage,
12
12
  getCookieName,
13
13
  getQueryParams,
14
- FetchTransport,
15
14
  } from "@amplitude/analytics-core";
15
+ import type { Transport } from "@amplitude/analytics-core";
16
16
 
17
17
  import { LocalStorage } from "./storage/local-storage";
18
18
  import RemnantDataMigration from "./migration/remnant-data-migration";
19
- import { NitroAnalyticsStorage } from "../native/storage";
20
- import { nitroTransport } from "./nitro-transport";
19
+ import { isNative } from "./utils/platform";
20
+ import { NetworkGuardedFetchTransport } from "./network-guarded-fetch-transport";
21
+
22
+ function createDefaultStorage() {
23
+ if (isNative()) {
24
+ const { NitroAnalyticsStorage } =
25
+ require("../native/storage") as typeof import("../native/storage");
26
+ return new NitroAnalyticsStorage<Event[]>("analytics-events");
27
+ }
28
+ const { NitroAnalyticsStorage } =
29
+ require("../native/storage.web") as typeof import("../native/storage");
30
+ return new NitroAnalyticsStorage<Event[]>("analytics-events");
31
+ }
32
+
33
+ function getDefaultTransport(): Transport {
34
+ if (isNative()) {
35
+ const { nitroTransport } =
36
+ require("./nitro-transport") as typeof import("./nitro-transport");
37
+ return nitroTransport;
38
+ }
39
+ return new NetworkGuardedFetchTransport();
40
+ }
21
41
 
22
42
  export const getDefaultConfig = () => {
23
43
  const cookieStorage = new MemoryStorage<UserSession>();
@@ -44,10 +64,10 @@ export const getDefaultConfig = () => {
44
64
  disableCookies: true,
45
65
  domain: "",
46
66
  sessionTimeout: 5 * 60 * 1000,
47
- storageProvider: new NitroAnalyticsStorage<Event[]>("analytics-events"),
67
+ storageProvider: createDefaultStorage(),
48
68
  trackingSessionEvents: false,
49
69
  trackingOptions,
50
- transportProvider: nitroTransport,
70
+ transportProvider: getDefaultTransport(),
51
71
  };
52
72
  };
53
73
 
@@ -79,9 +99,10 @@ export class ReactNativeConfig extends Config implements IReactNativeConfig {
79
99
  flushIntervalMillis: 1000,
80
100
  flushMaxRetries: 5,
81
101
  flushQueueSize: 30,
82
- transportProvider: defaultConfig.transportProvider,
83
102
  ...options,
84
103
  apiKey,
104
+ transportProvider:
105
+ options?.transportProvider ?? defaultConfig.transportProvider,
85
106
  });
86
107
 
87
108
  // NOTE: Define `cookieStorage` first to persist user session
@@ -233,7 +254,8 @@ export const useReactNativeConfig = async (
233
254
  let lastEventId = previousCookies?.lastEventId;
234
255
 
235
256
  const storageProvider =
236
- options?.storageProvider ?? (await createEventsStorage(options));
257
+ options?.storageProvider ??
258
+ (await createEventsStorage(options, defaultConfig));
237
259
 
238
260
  if (options?.migrateLegacyData !== false) {
239
261
  const legacySessionData = await new RemnantDataMigration(
@@ -263,7 +285,8 @@ export const useReactNativeConfig = async (
263
285
  ...defaultConfig.trackingOptions,
264
286
  ...options?.trackingOptions,
265
287
  },
266
- transportProvider: options?.transportProvider ?? new FetchTransport(),
288
+ transportProvider:
289
+ options?.transportProvider ?? defaultConfig.transportProvider,
267
290
  userId,
268
291
  });
269
292
 
@@ -319,6 +342,7 @@ const createFlexibleStorage = async <T>(
319
342
 
320
343
  export const createEventsStorage = async (
321
344
  overrides?: ReactNativeOptions,
345
+ baseConfig = getDefaultConfig(),
322
346
  ): Promise<Storage<Event[]> | undefined> => {
323
347
  const hasStorageProviderProperty =
324
348
  overrides &&
@@ -331,6 +355,7 @@ export const createEventsStorage = async (
331
355
  if (!hasStorageProviderProperty || overrides.storageProvider) {
332
356
  for (const storage of [
333
357
  overrides?.storageProvider,
358
+ hasStorageProviderProperty ? undefined : baseConfig.storageProvider,
334
359
  new LocalStorage<Event[]>(),
335
360
  ]) {
336
361
  if (storage && (await storage.isEnabled())) {
@@ -25,6 +25,9 @@ export const {
25
25
  shutdown,
26
26
  track,
27
27
  extendSession,
28
+ flushWithResult,
29
+ getDiagnostics,
30
+ healthCheck,
28
31
  } = client;
29
32
 
30
33
  export { Revenue, Identify } from "@amplitude/analytics-core";
@@ -0,0 +1,10 @@
1
+ import { FetchTransport } from "@amplitude/analytics-core";
2
+ import type { Payload, Response } from "@amplitude/analytics-core";
3
+ import { assertNetworkEnabled } from "../network";
4
+
5
+ export class NetworkGuardedFetchTransport extends FetchTransport {
6
+ async send(serverUrl: string, payload: Payload): Promise<Response | null> {
7
+ assertNetworkEnabled();
8
+ return await super.send(serverUrl, payload);
9
+ }
10
+ }
@@ -1,6 +1,7 @@
1
1
  import { BaseTransport } from "@amplitude/analytics-core";
2
2
  import type { Payload, Response, Transport } from "@amplitude/analytics-core";
3
3
  import { nitroHttpClient } from "../native/http";
4
+ import { assertNetworkEnabled } from "../network";
4
5
 
5
6
  export class NitroTransport extends BaseTransport implements Transport {
6
7
  private readonly customHeaders: Record<string, string>;
@@ -11,6 +12,7 @@ export class NitroTransport extends BaseTransport implements Transport {
11
12
  }
12
13
 
13
14
  async send(serverUrl: string, payload: Payload): Promise<Response | null> {
15
+ assertNetworkEnabled();
14
16
  const response = await nitroHttpClient.request(
15
17
  serverUrl,
16
18
  "POST",
@@ -60,6 +60,8 @@ export class Context implements BeforePlugin {
60
60
  config: ReactNativeConfig;
61
61
  uaResult: UAParser.IResult;
62
62
  library = `amplitude-nitro-ts/${VERSION}`;
63
+ private nativeContext: NativeContext | undefined;
64
+ private nativeContextLoaded = false;
63
65
 
64
66
  constructor() {
65
67
  let agent: string | undefined;
@@ -77,8 +79,15 @@ export class Context implements BeforePlugin {
77
79
  }
78
80
 
79
81
  private getNativeContext(): NativeContext | undefined {
82
+ if (this.nativeContextLoaded) {
83
+ return this.nativeContext;
84
+ }
85
+ this.nativeContextLoaded = true;
80
86
  try {
81
- return getNativeApplicationContext(this.config.trackingOptions);
87
+ this.nativeContext = getNativeApplicationContext(
88
+ this.config.trackingOptions,
89
+ );
90
+ return this.nativeContext;
82
91
  } catch (error) {
83
92
  this.config.loggerProvider?.error(
84
93
  `Failed to load native application context: ${String(error)}`,