react-native-nitro-amplitude 0.2.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 (155) hide show
  1. package/README.md +387 -8
  2. package/cpp/bindings/HybridAmplitudeWorker.cpp +5 -1
  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 +142 -1
  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/typed-variants.js +52 -0
  26. package/lib/commonjs/experiment/typed-variants.js.map +1 -0
  27. package/lib/commonjs/experiment/types/config.js +32 -4
  28. package/lib/commonjs/experiment/types/config.js.map +1 -1
  29. package/lib/commonjs/index.js +105 -3
  30. package/lib/commonjs/index.js.map +1 -1
  31. package/lib/commonjs/index.web.js +110 -12
  32. package/lib/commonjs/index.web.js.map +1 -1
  33. package/lib/commonjs/native/http.js +23 -8
  34. package/lib/commonjs/native/http.js.map +1 -1
  35. package/lib/commonjs/native/http.web.js +2 -0
  36. package/lib/commonjs/native/http.web.js.map +1 -1
  37. package/lib/commonjs/native/hybrid.web.js +23 -0
  38. package/lib/commonjs/native/hybrid.web.js.map +1 -0
  39. package/lib/commonjs/native/storage.js +27 -15
  40. package/lib/commonjs/native/storage.js.map +1 -1
  41. package/lib/commonjs/network.js +154 -0
  42. package/lib/commonjs/network.js.map +1 -0
  43. package/lib/commonjs/presets.js +118 -0
  44. package/lib/commonjs/presets.js.map +1 -0
  45. package/lib/commonjs/testing.js +166 -0
  46. package/lib/commonjs/testing.js.map +1 -0
  47. package/lib/module/analytics/config.js +32 -11
  48. package/lib/module/analytics/config.js.map +1 -1
  49. package/lib/module/analytics/index.js +4 -1
  50. package/lib/module/analytics/index.js.map +1 -1
  51. package/lib/module/analytics/network-guarded-fetch-transport.js +11 -0
  52. package/lib/module/analytics/network-guarded-fetch-transport.js.map +1 -0
  53. package/lib/module/analytics/nitro-transport.js +2 -0
  54. package/lib/module/analytics/nitro-transport.js.map +1 -1
  55. package/lib/module/analytics/plugins/context.js +7 -1
  56. package/lib/module/analytics/plugins/context.js.map +1 -1
  57. package/lib/module/analytics/react-native-client.js +141 -1
  58. package/lib/module/analytics/react-native-client.js.map +1 -1
  59. package/lib/module/diagnostics.js +85 -0
  60. package/lib/module/diagnostics.js.map +1 -0
  61. package/lib/module/errors.js +41 -0
  62. package/lib/module/errors.js.map +1 -0
  63. package/lib/module/experiment/experimentClient.js +84 -2
  64. package/lib/module/experiment/experimentClient.js.map +1 -1
  65. package/lib/module/experiment/index.js +1 -0
  66. package/lib/module/experiment/index.js.map +1 -1
  67. package/lib/module/experiment/stubClient.js +25 -0
  68. package/lib/module/experiment/stubClient.js.map +1 -1
  69. package/lib/module/experiment/typed-variants.js +43 -0
  70. package/lib/module/experiment/typed-variants.js.map +1 -0
  71. package/lib/module/experiment/types/config.js +31 -4
  72. package/lib/module/experiment/types/config.js.map +1 -1
  73. package/lib/module/index.js +15 -3
  74. package/lib/module/index.js.map +1 -1
  75. package/lib/module/index.web.js +19 -6
  76. package/lib/module/index.web.js.map +1 -1
  77. package/lib/module/native/http.js +23 -8
  78. package/lib/module/native/http.js.map +1 -1
  79. package/lib/module/native/http.web.js +2 -0
  80. package/lib/module/native/http.web.js.map +1 -1
  81. package/lib/module/native/hybrid.web.js +16 -0
  82. package/lib/module/native/hybrid.web.js.map +1 -0
  83. package/lib/module/native/storage.js +27 -15
  84. package/lib/module/native/storage.js.map +1 -1
  85. package/lib/module/network.js +138 -0
  86. package/lib/module/network.js.map +1 -0
  87. package/lib/module/presets.js +110 -0
  88. package/lib/module/presets.js.map +1 -0
  89. package/lib/module/testing.js +160 -0
  90. package/lib/module/testing.js.map +1 -0
  91. package/lib/typescript/analytics/config.d.ts +19 -6
  92. package/lib/typescript/analytics/config.d.ts.map +1 -1
  93. package/lib/typescript/analytics/index.d.ts +1 -1
  94. package/lib/typescript/analytics/index.d.ts.map +1 -1
  95. package/lib/typescript/analytics/network-guarded-fetch-transport.d.ts +6 -0
  96. package/lib/typescript/analytics/network-guarded-fetch-transport.d.ts.map +1 -0
  97. package/lib/typescript/analytics/nitro-transport.d.ts.map +1 -1
  98. package/lib/typescript/analytics/plugins/context.d.ts +2 -0
  99. package/lib/typescript/analytics/plugins/context.d.ts.map +1 -1
  100. package/lib/typescript/analytics/react-native-client.d.ts +43 -0
  101. package/lib/typescript/analytics/react-native-client.d.ts.map +1 -1
  102. package/lib/typescript/diagnostics.d.ts +21 -0
  103. package/lib/typescript/diagnostics.d.ts.map +1 -0
  104. package/lib/typescript/errors.d.ts +9 -0
  105. package/lib/typescript/errors.d.ts.map +1 -0
  106. package/lib/typescript/experiment/experimentClient.d.ts +9 -1
  107. package/lib/typescript/experiment/experimentClient.d.ts.map +1 -1
  108. package/lib/typescript/experiment/index.d.ts +1 -0
  109. package/lib/typescript/experiment/index.d.ts.map +1 -1
  110. package/lib/typescript/experiment/stubClient.d.ts +6 -1
  111. package/lib/typescript/experiment/stubClient.d.ts.map +1 -1
  112. package/lib/typescript/experiment/typed-variants.d.ts +9 -0
  113. package/lib/typescript/experiment/typed-variants.d.ts.map +1 -0
  114. package/lib/typescript/experiment/types/client.d.ts +21 -0
  115. package/lib/typescript/experiment/types/client.d.ts.map +1 -1
  116. package/lib/typescript/experiment/types/config.d.ts.map +1 -1
  117. package/lib/typescript/index.d.ts +12 -3
  118. package/lib/typescript/index.d.ts.map +1 -1
  119. package/lib/typescript/index.web.d.ts +16 -6
  120. package/lib/typescript/index.web.d.ts.map +1 -1
  121. package/lib/typescript/native/http.d.ts.map +1 -1
  122. package/lib/typescript/native/http.web.d.ts.map +1 -1
  123. package/lib/typescript/native/hybrid.web.d.ts +8 -0
  124. package/lib/typescript/native/hybrid.web.d.ts.map +1 -0
  125. package/lib/typescript/native/storage.d.ts.map +1 -1
  126. package/lib/typescript/network.d.ts +50 -0
  127. package/lib/typescript/network.d.ts.map +1 -0
  128. package/lib/typescript/presets.d.ts +50 -0
  129. package/lib/typescript/presets.d.ts.map +1 -0
  130. package/lib/typescript/testing.d.ts +11 -0
  131. package/lib/typescript/testing.d.ts.map +1 -0
  132. package/package.json +1 -1
  133. package/src/analytics/config.ts +33 -8
  134. package/src/analytics/index.ts +3 -0
  135. package/src/analytics/network-guarded-fetch-transport.ts +10 -0
  136. package/src/analytics/nitro-transport.ts +2 -0
  137. package/src/analytics/plugins/context.ts +10 -1
  138. package/src/analytics/react-native-client.ts +217 -0
  139. package/src/diagnostics.ts +119 -0
  140. package/src/errors.ts +60 -0
  141. package/src/experiment/experimentClient.ts +116 -3
  142. package/src/experiment/index.ts +1 -0
  143. package/src/experiment/stubClient.ts +42 -1
  144. package/src/experiment/typed-variants.ts +68 -0
  145. package/src/experiment/types/client.ts +29 -0
  146. package/src/experiment/types/config.ts +29 -5
  147. package/src/index.ts +28 -2
  148. package/src/index.web.ts +33 -5
  149. package/src/native/http.ts +38 -8
  150. package/src/native/http.web.ts +2 -0
  151. package/src/native/hybrid.web.ts +21 -0
  152. package/src/native/storage.ts +27 -25
  153. package/src/network.ts +258 -0
  154. package/src/presets.ts +208 -0
  155. package/src/testing.ts +177 -0
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ import { FetchTransport } from "@amplitude/analytics-core";
4
+ import { assertNetworkEnabled } from "../network";
5
+ export class NetworkGuardedFetchTransport extends FetchTransport {
6
+ async send(serverUrl, payload) {
7
+ assertNetworkEnabled();
8
+ return await super.send(serverUrl, payload);
9
+ }
10
+ }
11
+ //# sourceMappingURL=network-guarded-fetch-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FetchTransport","assertNetworkEnabled","NetworkGuardedFetchTransport","send","serverUrl","payload"],"sourceRoot":"../../../src","sources":["analytics/network-guarded-fetch-transport.ts"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,2BAA2B;AAE1D,SAASC,oBAAoB,QAAQ,YAAY;AAEjD,OAAO,MAAMC,4BAA4B,SAASF,cAAc,CAAC;EAC/D,MAAMG,IAAIA,CAACC,SAAiB,EAAEC,OAAgB,EAA4B;IACxEJ,oBAAoB,CAAC,CAAC;IACtB,OAAO,MAAM,KAAK,CAACE,IAAI,CAACC,SAAS,EAAEC,OAAO,CAAC;EAC7C;AACF","ignoreList":[]}
@@ -2,12 +2,14 @@
2
2
 
3
3
  import { BaseTransport } from "@amplitude/analytics-core";
4
4
  import { nitroHttpClient } from "../native/http";
5
+ import { assertNetworkEnabled } from "../network";
5
6
  export class NitroTransport extends BaseTransport {
6
7
  constructor(customHeaders = {}) {
7
8
  super();
8
9
  this.customHeaders = customHeaders;
9
10
  }
10
11
  async send(serverUrl, payload) {
12
+ assertNetworkEnabled();
11
13
  const response = await nitroHttpClient.request(serverUrl, "POST", {
12
14
  "Content-Type": "application/json",
13
15
  Accept: "*/*",
@@ -1 +1 @@
1
- {"version":3,"names":["BaseTransport","nitroHttpClient","NitroTransport","constructor","customHeaders","send","serverUrl","payload","response","request","Accept","JSON","stringify","buildResponse","parse","body","code","status","nitroTransport"],"sourceRoot":"../../../src","sources":["analytics/nitro-transport.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,2BAA2B;AAEzD,SAASC,eAAe,QAAQ,gBAAgB;AAEhD,OAAO,MAAMC,cAAc,SAASF,aAAa,CAAsB;EAGrEG,WAAWA,CAACC,aAAqC,GAAG,CAAC,CAAC,EAAE;IACtD,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,aAAa,GAAGA,aAAa;EACpC;EAEA,MAAMC,IAAIA,CAACC,SAAiB,EAAEC,OAAgB,EAA4B;IACxE,MAAMC,QAAQ,GAAG,MAAMP,eAAe,CAACQ,OAAO,CAC5CH,SAAS,EACT,MAAM,EACN;MACE,cAAc,EAAE,kBAAkB;MAClCI,MAAM,EAAE,KAAK;MACb,GAAG,IAAI,CAACN;IACV,CAAC,EACDO,IAAI,CAACC,SAAS,CAACL,OAAO,CAAC,EACvB,KACF,CAAC;IACD,IAAI;MACF,OAAO,IAAI,CAACM,aAAa,CACvBF,IAAI,CAACG,KAAK,CAACN,QAAQ,CAACO,IAAI,CAC1B,CAAC;IACH,CAAC,CAAC,MAAM;MACN,OAAO,IAAI,CAACF,aAAa,CAAC;QAAEG,IAAI,EAAER,QAAQ,CAACS;MAAO,CAAC,CAAC;IACtD;EACF;AACF;AAEA,OAAO,MAAMC,cAAc,GAAG,IAAIhB,cAAc,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["BaseTransport","nitroHttpClient","assertNetworkEnabled","NitroTransport","constructor","customHeaders","send","serverUrl","payload","response","request","Accept","JSON","stringify","buildResponse","parse","body","code","status","nitroTransport"],"sourceRoot":"../../../src","sources":["analytics/nitro-transport.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,2BAA2B;AAEzD,SAASC,eAAe,QAAQ,gBAAgB;AAChD,SAASC,oBAAoB,QAAQ,YAAY;AAEjD,OAAO,MAAMC,cAAc,SAASH,aAAa,CAAsB;EAGrEI,WAAWA,CAACC,aAAqC,GAAG,CAAC,CAAC,EAAE;IACtD,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,aAAa,GAAGA,aAAa;EACpC;EAEA,MAAMC,IAAIA,CAACC,SAAiB,EAAEC,OAAgB,EAA4B;IACxEN,oBAAoB,CAAC,CAAC;IACtB,MAAMO,QAAQ,GAAG,MAAMR,eAAe,CAACS,OAAO,CAC5CH,SAAS,EACT,MAAM,EACN;MACE,cAAc,EAAE,kBAAkB;MAClCI,MAAM,EAAE,KAAK;MACb,GAAG,IAAI,CAACN;IACV,CAAC,EACDO,IAAI,CAACC,SAAS,CAACL,OAAO,CAAC,EACvB,KACF,CAAC;IACD,IAAI;MACF,OAAO,IAAI,CAACM,aAAa,CACvBF,IAAI,CAACG,KAAK,CAACN,QAAQ,CAACO,IAAI,CAC1B,CAAC;IACH,CAAC,CAAC,MAAM;MACN,OAAO,IAAI,CAACF,aAAa,CAAC;QAAEG,IAAI,EAAER,QAAQ,CAACS;MAAO,CAAC,CAAC;IACtD;EACF;AACF;AAEA,OAAO,MAAMC,cAAc,GAAG,IAAIhB,cAAc,CAAC,CAAC","ignoreList":[]}
@@ -34,6 +34,7 @@ export class Context {
34
34
  // @ts-ignore
35
35
 
36
36
  library = `amplitude-nitro-ts/${VERSION}`;
37
+ nativeContextLoaded = false;
37
38
  constructor() {
38
39
  let agent;
39
40
  /* istanbul ignore else */
@@ -47,8 +48,13 @@ export class Context {
47
48
  return Promise.resolve(undefined);
48
49
  }
49
50
  getNativeContext() {
51
+ if (this.nativeContextLoaded) {
52
+ return this.nativeContext;
53
+ }
54
+ this.nativeContextLoaded = true;
50
55
  try {
51
- return getNativeApplicationContext(this.config.trackingOptions);
56
+ this.nativeContext = getNativeApplicationContext(this.config.trackingOptions);
57
+ return this.nativeContext;
52
58
  } catch (error) {
53
59
  this.config.loggerProvider?.error(`Failed to load native application context: ${String(error)}`);
54
60
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"names":["UUID","getLanguage","UAParser","VERSION","Platform","getNativeApplicationContext","BROWSER_PLATFORM","IP_ADDRESS","ReactNativePlatform","getPlatformOS","OS","undefined","getNativePlatformName","platformOS","Context","name","type","library","constructor","agent","navigator","userAgent","uaResult","getResult","setup","config","Promise","resolve","getNativeContext","trackingOptions","error","loggerProvider","String","execute","context","time","Date","getTime","nativeContext","isWebPlatform","fallbackPlatform","appVersion","version","platform","osName","browser","osVersion","deviceVendor","deviceManufacturer","device","vendor","deviceModel","model","os","language","country","carrier","adid","appSetId","idfv","event","user_id","userId","device_id","deviceId","session_id","sessionId","app_version","os_name","os_version","device_manufacturer","device_model","ipAddress","ip","android_app_set_id","insert_id","partner_id","partnerId","plan","ingestionMetadata","ingestion_metadata","source_name","sourceName","source_version","sourceVersion"],"sourceRoot":"../../../../src","sources":["analytics/plugins/context.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["UUID","getLanguage","UAParser","VERSION","Platform","getNativeApplicationContext","BROWSER_PLATFORM","IP_ADDRESS","ReactNativePlatform","getPlatformOS","OS","undefined","getNativePlatformName","platformOS","Context","name","type","library","nativeContextLoaded","constructor","agent","navigator","userAgent","uaResult","getResult","setup","config","Promise","resolve","getNativeContext","nativeContext","trackingOptions","error","loggerProvider","String","execute","context","time","Date","getTime","isWebPlatform","fallbackPlatform","appVersion","version","platform","osName","browser","osVersion","deviceVendor","deviceManufacturer","device","vendor","deviceModel","model","os","language","country","carrier","adid","appSetId","idfv","event","user_id","userId","device_id","deviceId","session_id","sessionId","app_version","os_name","os_version","device_manufacturer","device_model","ipAddress","ip","android_app_set_id","insert_id","partner_id","partnerId","plan","ingestionMetadata","ingestion_metadata","source_name","sourceName","source_version","sourceVersion"],"sourceRoot":"../../../../src","sources":["analytics/plugins/context.ts"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { AppState } from "react-native";
4
4
  import { AmplitudeCore, Destination, UUID, returnWrapper, debugWrapper, getClientLogConfig, getClientStates, IdentityEventSender, getAnalyticsConnector, setConnectorDeviceId, setConnectorUserId, SpecialEventType } from "@amplitude/analytics-core";
5
+ import { healthCheck } from "../diagnostics";
5
6
  import { CampaignTracker } from "./campaign/campaign-tracker";
6
7
  import { Context } from "./plugins/context";
7
8
  import { useReactNativeConfig, createCookieStorage } from "./config";
@@ -11,6 +12,9 @@ const START_SESSION_EVENT = "session_start";
11
12
  const END_SESSION_EVENT = "session_end";
12
13
  let nextConnectorOwnerId = 0;
13
14
  const activeConnectorOwnerIds = new Map();
15
+ export function getActiveAnalyticsInstanceNames() {
16
+ return Array.from(activeConnectorOwnerIds.keys()).sort();
17
+ }
14
18
  export class AmplitudeReactNative extends AmplitudeCore {
15
19
  appState = "background";
16
20
  connectorOwnerId = ++nextConnectorOwnerId;
@@ -189,6 +193,84 @@ export class AmplitudeReactNative extends AmplitudeCore {
189
193
  getSessionId() {
190
194
  return this.config?.sessionId;
191
195
  }
196
+ async flushWithResult() {
197
+ const queueSize = this.getQueueSize();
198
+ const collector = this.collectFlushOutcomes();
199
+ const startedAt = Date.now();
200
+ try {
201
+ await this.flush().promise;
202
+ const outcomes = collector.finish();
203
+ this.lastFlushTime = Date.now();
204
+ this.lastFlushDurationMillis = this.lastFlushTime - startedAt;
205
+ const remainingQueueSize = this.getQueueSize();
206
+ const failedOutcomes = outcomes.filter(outcome => !this.isSuccessStatusCode(outcome.code));
207
+ const dropped = failedOutcomes.reduce((total, outcome) => total + outcome.count, 0);
208
+ if (remainingQueueSize > 0) {
209
+ this.lastFlushError = `Flush completed with ${remainingQueueSize} queued event(s) remaining`;
210
+ return {
211
+ ok: false,
212
+ sent: this.countSuccessfulOutcomes(outcomes),
213
+ failed: remainingQueueSize,
214
+ dropped,
215
+ retried: remainingQueueSize,
216
+ reason: this.lastFlushError,
217
+ finishedAt: this.lastFlushTime
218
+ };
219
+ }
220
+ if (dropped > 0) {
221
+ this.lastFlushError = failedOutcomes[0]?.message ?? `Flush dropped ${dropped} event(s) without retry`;
222
+ return {
223
+ ok: false,
224
+ sent: this.countSuccessfulOutcomes(outcomes),
225
+ failed: dropped,
226
+ dropped,
227
+ retried: 0,
228
+ reason: this.lastFlushError,
229
+ finishedAt: this.lastFlushTime
230
+ };
231
+ }
232
+ this.lastFlushError = undefined;
233
+ return {
234
+ ok: true,
235
+ sent: this.countSuccessfulOutcomes(outcomes) || queueSize,
236
+ failed: 0,
237
+ dropped: 0,
238
+ retried: 0,
239
+ finishedAt: this.lastFlushTime
240
+ };
241
+ } catch (error) {
242
+ collector.finish();
243
+ this.lastFlushTime = Date.now();
244
+ this.lastFlushDurationMillis = this.lastFlushTime - startedAt;
245
+ this.lastFlushError = error instanceof Error ? error.message : String(error);
246
+ return {
247
+ ok: false,
248
+ sent: 0,
249
+ failed: queueSize,
250
+ dropped: 0,
251
+ retried: 0,
252
+ reason: this.lastFlushError,
253
+ finishedAt: this.lastFlushTime
254
+ };
255
+ }
256
+ }
257
+ getDiagnostics() {
258
+ return {
259
+ initialized: Boolean(this.config && this.isReady),
260
+ instanceName: this.config?.instanceName,
261
+ userId: this.getUserId(),
262
+ deviceId: this.getDeviceId(),
263
+ sessionId: this.getSessionId(),
264
+ queueSize: this.getQueueSize(),
265
+ lastFlushTime: this.lastFlushTime,
266
+ lastFlushDurationMillis: this.lastFlushDurationMillis,
267
+ lastFlushError: this.lastFlushError,
268
+ activeInstanceNames: getActiveAnalyticsInstanceNames()
269
+ };
270
+ }
271
+ async healthCheck() {
272
+ return healthCheck(this);
273
+ }
192
274
  getIdentity() {
193
275
  return {
194
276
  userId: this.getUserId(),
@@ -214,6 +296,61 @@ export class AmplitudeReactNative extends AmplitudeCore {
214
296
  }
215
297
  this.config.lastEventTime = this.currentTimeMillis();
216
298
  }
299
+ getQueueSize() {
300
+ let queueSize = this.q.length + this.dispatchQ.length + this.timeline.queue.length;
301
+ this.timeline.plugins.forEach(plugin => {
302
+ if (plugin.type !== "destination") {
303
+ return;
304
+ }
305
+ const destination = plugin;
306
+ queueSize += destination.queue?.length ?? 0;
307
+ });
308
+ return queueSize;
309
+ }
310
+ collectFlushOutcomes() {
311
+ const outcomes = [];
312
+ const restorers = [];
313
+ this.timeline.plugins.forEach(plugin => {
314
+ if (plugin.type !== "destination") {
315
+ return;
316
+ }
317
+ const destination = plugin;
318
+ if (!destination.fulfillRequest) {
319
+ return;
320
+ }
321
+ const original = destination.fulfillRequest;
322
+ destination.fulfillRequest = (list, code, message) => {
323
+ outcomes.push({
324
+ code,
325
+ count: list.length,
326
+ message
327
+ });
328
+ return original.call(destination, list, code, message);
329
+ };
330
+ restorers.push(() => {
331
+ destination.fulfillRequest = original;
332
+ });
333
+ });
334
+ return {
335
+ finish: () => {
336
+ while (restorers.length > 0) {
337
+ restorers.pop()?.();
338
+ }
339
+ return outcomes;
340
+ }
341
+ };
342
+ }
343
+ countSuccessfulOutcomes(outcomes) {
344
+ return outcomes.reduce((total, outcome) => {
345
+ if (!this.isSuccessStatusCode(outcome.code)) {
346
+ return total;
347
+ }
348
+ return total + outcome.count;
349
+ }, 0);
350
+ }
351
+ isSuccessStatusCode(code) {
352
+ return code >= 200 && code < 300;
353
+ }
217
354
  setSessionIdInternal(sessionId, eventTime) {
218
355
  const previousSessionId = this.config.sessionId;
219
356
  if (previousSessionId === sessionId) {
@@ -335,6 +472,7 @@ export const createInstance = () => {
335
472
  setGroup: debugWrapper(client.setGroup.bind(client), "setGroup", getClientLogConfig(client), getClientStates(client, ["config.apiKey", "timeline.queue.length"])),
336
473
  revenue: debugWrapper(client.revenue.bind(client), "revenue", getClientLogConfig(client), getClientStates(client, ["config.apiKey", "timeline.queue.length"])),
337
474
  flush: debugWrapper(client.flush.bind(client), "flush", getClientLogConfig(client), getClientStates(client, ["config.apiKey", "timeline.queue.length"])),
475
+ flushWithResult: debugWrapper(client.flushWithResult.bind(client), "flushWithResult", getClientLogConfig(client), getClientStates(client, ["config.apiKey", "timeline.queue.length"])),
338
476
  getUserId: debugWrapper(client.getUserId.bind(client), "getUserId", getClientLogConfig(client), getClientStates(client, ["config", "config.userId"])),
339
477
  setUserId: debugWrapper(client.setUserId.bind(client), "setUserId", getClientLogConfig(client), getClientStates(client, ["config", "config.userId"])),
340
478
  getDeviceId: debugWrapper(client.getDeviceId.bind(client), "getDeviceId", getClientLogConfig(client), getClientStates(client, ["config", "config.deviceId"])),
@@ -344,7 +482,9 @@ export const createInstance = () => {
344
482
  setSessionId: debugWrapper(client.setSessionId.bind(client), "setSessionId", getClientLogConfig(client), getClientStates(client, ["config"])),
345
483
  extendSession: debugWrapper(client.extendSession.bind(client), "extendSession", getClientLogConfig(client), getClientStates(client, ["config"])),
346
484
  setOptOut: debugWrapper(client.setOptOut.bind(client), "setOptOut", getClientLogConfig(client), getClientStates(client, ["config"])),
347
- shutdown: debugWrapper(client.shutdown.bind(client), "shutdown", getClientLogConfig(client), getClientStates(client, ["config", "timeline.plugins"]))
485
+ shutdown: debugWrapper(client.shutdown.bind(client), "shutdown", getClientLogConfig(client), getClientStates(client, ["config", "timeline.plugins"])),
486
+ getDiagnostics: debugWrapper(client.getDiagnostics.bind(client), "getDiagnostics", getClientLogConfig(client), getClientStates(client, ["config", "timeline.plugins"])),
487
+ healthCheck: debugWrapper(client.healthCheck.bind(client), "healthCheck", getClientLogConfig(client), getClientStates(client, ["config", "timeline.plugins"]))
348
488
  };
349
489
  };
350
490
  export default createInstance();
@@ -1 +1 @@
1
- {"version":3,"names":["AppState","AmplitudeCore","Destination","UUID","returnWrapper","debugWrapper","getClientLogConfig","getClientStates","IdentityEventSender","getAnalyticsConnector","setConnectorDeviceId","setConnectorUserId","SpecialEventType","CampaignTracker","Context","useReactNativeConfig","createCookieStorage","parseOldCookies","isNative","START_SESSION_EVENT","END_SESSION_EVENT","nextConnectorOwnerId","activeConnectorOwnerIds","Map","AmplitudeReactNative","appState","connectorOwnerId","init","apiKey","userId","options","initPromise","_init","finally","undefined","initializing","explicitSessionId","sessionId","appStateHandlerInstalled","oldCookies","reactNativeOptions","deviceId","optOut","lastEventTime","connectorInstanceName","getConnectorInstanceName","connector","identityStore","setIdentity","config","add","promise","currentState","isNewSession","startNewSessionIfNeeded","currentTimeMillis","loggerProvider","log","getSessionId","appStateChangeHandler","remove","addEventListener","handleAppStateChange","runAttributionStrategy","attribution","runQueuedFunctions","eventBridge","setEventReceiver","event","handleInternalTrackPromise","track","eventType","eventProperties","set","error","shutdown","cancelDestinationFlushes","timeline","reset","q","dispatchQ","isReady","get","delete","catch","String","instanceName","plugins","forEach","plugin","type","destination","scheduleId","clearTimeout","flushId","resetSchedule","queue","attributionConfig","args","onNewCampaign","setSessionId","bind","storage","campaignTracker","send","getUserId","setUserId","push","getDeviceId","setDeviceId","identify","eventOptions","user_id","device_id","getIdentity","userProperties","getOptOut","setSessionIdInternal","extendSession","eventTime","previousSessionId","trackingSessionEvents","sessionEndEvent","event_type","time","session_id","sessionStartEvent","process","isSessionEvent","isCustomEventSessionId","event_id","eventId","lastEventId","IDENTIFY","user_properties","getOperationAppliedUserProperties","Date","now","timestamp","shouldStartNewSession","inSession","isWithinMinTimeBetweenSessions","sessionTimeout","nextAppState","currentAppState","enterForeground","exitForeground","createInstance","client","logEvent","groupIdentify","setGroup","revenue","flush","setOptOut"],"sourceRoot":"../../../src","sources":["analytics/react-native-client.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["AppState","AmplitudeCore","Destination","UUID","returnWrapper","debugWrapper","getClientLogConfig","getClientStates","IdentityEventSender","getAnalyticsConnector","setConnectorDeviceId","setConnectorUserId","SpecialEventType","healthCheck","CampaignTracker","Context","useReactNativeConfig","createCookieStorage","parseOldCookies","isNative","START_SESSION_EVENT","END_SESSION_EVENT","nextConnectorOwnerId","activeConnectorOwnerIds","Map","getActiveAnalyticsInstanceNames","Array","from","keys","sort","AmplitudeReactNative","appState","connectorOwnerId","init","apiKey","userId","options","initPromise","_init","finally","undefined","initializing","explicitSessionId","sessionId","appStateHandlerInstalled","oldCookies","reactNativeOptions","deviceId","optOut","lastEventTime","connectorInstanceName","getConnectorInstanceName","connector","identityStore","setIdentity","config","add","promise","currentState","isNewSession","startNewSessionIfNeeded","currentTimeMillis","loggerProvider","log","getSessionId","appStateChangeHandler","remove","addEventListener","handleAppStateChange","runAttributionStrategy","attribution","runQueuedFunctions","eventBridge","setEventReceiver","event","handleInternalTrackPromise","track","eventType","eventProperties","set","error","shutdown","cancelDestinationFlushes","timeline","reset","q","dispatchQ","isReady","get","delete","catch","String","instanceName","plugins","forEach","plugin","type","destination","scheduleId","clearTimeout","flushId","resetSchedule","queue","attributionConfig","args","onNewCampaign","setSessionId","bind","storage","campaignTracker","send","getUserId","setUserId","push","getDeviceId","setDeviceId","identify","eventOptions","user_id","device_id","flushWithResult","queueSize","getQueueSize","collector","collectFlushOutcomes","startedAt","Date","now","flush","outcomes","finish","lastFlushTime","lastFlushDurationMillis","remainingQueueSize","failedOutcomes","filter","outcome","isSuccessStatusCode","code","dropped","reduce","total","count","lastFlushError","ok","sent","countSuccessfulOutcomes","failed","retried","reason","finishedAt","message","Error","getDiagnostics","initialized","Boolean","activeInstanceNames","getIdentity","userProperties","getOptOut","setSessionIdInternal","extendSession","length","restorers","fulfillRequest","original","list","call","pop","eventTime","previousSessionId","trackingSessionEvents","sessionEndEvent","event_type","time","session_id","sessionStartEvent","process","isSessionEvent","isCustomEventSessionId","event_id","eventId","lastEventId","IDENTIFY","user_properties","getOperationAppliedUserProperties","timestamp","shouldStartNewSession","inSession","isWithinMinTimeBetweenSessions","sessionTimeout","nextAppState","currentAppState","enterForeground","exitForeground","createInstance","client","logEvent","groupIdentify","setGroup","revenue","setOptOut"],"sourceRoot":"../../../src","sources":["analytics/react-native-client.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ import { isNative } from "./analytics/utils/platform";
4
+ import { getAmplitudeErrorCode } from "./errors";
5
+ import { getNetworkEnabled } from "./network";
6
+ let lastNativeError;
7
+ function getHybridModule() {
8
+ if (isNative()) {
9
+ return require("./native/hybrid");
10
+ }
11
+ return require("./native/hybrid.web");
12
+ }
13
+ export function getLastNativeError() {
14
+ return lastNativeError;
15
+ }
16
+ export function getNativeStartupDiagnostics() {
17
+ const result = {
18
+ nitroModulesAvailable: true,
19
+ contextAvailable: false,
20
+ storageAvailable: false,
21
+ workerAvailable: false,
22
+ nativeAvailable: false,
23
+ lastError: lastNativeError
24
+ };
25
+ try {
26
+ const {
27
+ getAmplitudeContext,
28
+ getAmplitudeStorage,
29
+ getAmplitudeWorker
30
+ } = getHybridModule();
31
+ getAmplitudeContext();
32
+ result.contextAvailable = true;
33
+ getAmplitudeStorage();
34
+ result.storageAvailable = true;
35
+ getAmplitudeWorker();
36
+ result.workerAvailable = true;
37
+ result.nativeAvailable = true;
38
+ lastNativeError = undefined;
39
+ result.lastError = undefined;
40
+ } catch (error) {
41
+ lastNativeError = {
42
+ code: getAmplitudeErrorCode(error),
43
+ message: error instanceof Error ? error.message : String(error)
44
+ };
45
+ result.nitroModulesAvailable = false;
46
+ result.lastError = lastNativeError;
47
+ }
48
+ return result;
49
+ }
50
+ export function getAmplitudeDiagnostics(analytics) {
51
+ return {
52
+ ...analytics.getDiagnostics(),
53
+ native: getNativeStartupDiagnostics(),
54
+ networkEnabled: getNetworkEnabled()
55
+ };
56
+ }
57
+ export async function healthCheck(analytics) {
58
+ const errors = [];
59
+ const native = getNativeStartupDiagnostics();
60
+ let storageWritable = false;
61
+ try {
62
+ const {
63
+ getAmplitudeStorage
64
+ } = getHybridModule();
65
+ const storage = getAmplitudeStorage();
66
+ const key = `health::${Date.now()}`;
67
+ storage.set(key, "ok", false);
68
+ storageWritable = storage.get(key, false) === "ok";
69
+ storage.remove(key, false);
70
+ } catch (error) {
71
+ errors.push(error instanceof Error ? error.message : String(error));
72
+ }
73
+ if (!native.nativeAvailable && native.lastError) {
74
+ errors.push(native.lastError.message);
75
+ }
76
+ const analyticsInitialized = analytics ? analytics.getDiagnostics().initialized : false;
77
+ return {
78
+ ok: native.nativeAvailable && storageWritable,
79
+ analyticsInitialized,
80
+ nativeAvailable: native.nativeAvailable,
81
+ storageWritable,
82
+ errors
83
+ };
84
+ }
85
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isNative","getAmplitudeErrorCode","getNetworkEnabled","lastNativeError","getHybridModule","require","getLastNativeError","getNativeStartupDiagnostics","result","nitroModulesAvailable","contextAvailable","storageAvailable","workerAvailable","nativeAvailable","lastError","getAmplitudeContext","getAmplitudeStorage","getAmplitudeWorker","undefined","error","code","message","Error","String","getAmplitudeDiagnostics","analytics","getDiagnostics","native","networkEnabled","healthCheck","errors","storageWritable","storage","key","Date","now","set","get","remove","push","analyticsInitialized","initialized","ok"],"sourceRoot":"../../src","sources":["diagnostics.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ export class AmplitudeError extends Error {
4
+ constructor(code, message, cause) {
5
+ super(message);
6
+ this.name = "AmplitudeError";
7
+ this.code = code;
8
+ this.cause = cause;
9
+ }
10
+ }
11
+ export function createAmplitudeError(code, message, cause) {
12
+ return new AmplitudeError(code, message, cause);
13
+ }
14
+ export function getAmplitudeErrorCode(error) {
15
+ if (error instanceof AmplitudeError) {
16
+ return error.code;
17
+ }
18
+ if (error instanceof Error) {
19
+ const message = error.message.toLowerCase();
20
+ if (message.includes("deployment key")) {
21
+ return "invalid_deployment_key";
22
+ }
23
+ if (message.includes("api key")) {
24
+ return "invalid_api_key";
25
+ }
26
+ if (message.includes("timeout")) {
27
+ return "timeout";
28
+ }
29
+ if (message.includes("network") || message.includes("fetch")) {
30
+ return "network_error";
31
+ }
32
+ if (message.includes("storage")) {
33
+ return "storage_error";
34
+ }
35
+ if (message.includes("nitro") || message.includes("native")) {
36
+ return "native_unavailable";
37
+ }
38
+ }
39
+ return "unknown";
40
+ }
41
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AmplitudeError","Error","constructor","code","message","cause","name","createAmplitudeError","getAmplitudeErrorCode","error","toLowerCase","includes"],"sourceRoot":"../../src","sources":["errors.ts"],"mappings":";;AAaA,OAAO,MAAMA,cAAc,SAASC,KAAK,CAAC;EAIxCC,WAAWA,CAACC,IAAwB,EAAEC,OAAe,EAAEC,KAAe,EAAE;IACtE,KAAK,CAACD,OAAO,CAAC;IACd,IAAI,CAACE,IAAI,GAAG,gBAAgB;IAC5B,IAAI,CAACH,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACE,KAAK,GAAGA,KAAK;EACpB;AACF;AAEA,OAAO,SAASE,oBAAoBA,CAClCJ,IAAwB,EACxBC,OAAe,EACfC,KAAe,EACC;EAChB,OAAO,IAAIL,cAAc,CAACG,IAAI,EAAEC,OAAO,EAAEC,KAAK,CAAC;AACjD;AAEA,OAAO,SAASG,qBAAqBA,CAACC,KAAc,EAAsB;EACxE,IAAIA,KAAK,YAAYT,cAAc,EAAE;IACnC,OAAOS,KAAK,CAACN,IAAI;EACnB;EACA,IAAIM,KAAK,YAAYR,KAAK,EAAE;IAC1B,MAAMG,OAAO,GAAGK,KAAK,CAACL,OAAO,CAACM,WAAW,CAAC,CAAC;IAC3C,IAAIN,OAAO,CAACO,QAAQ,CAAC,gBAAgB,CAAC,EAAE;MACtC,OAAO,wBAAwB;IACjC;IACA,IAAIP,OAAO,CAACO,QAAQ,CAAC,SAAS,CAAC,EAAE;MAC/B,OAAO,iBAAiB;IAC1B;IACA,IAAIP,OAAO,CAACO,QAAQ,CAAC,SAAS,CAAC,EAAE;MAC/B,OAAO,SAAS;IAClB;IACA,IAAIP,OAAO,CAACO,QAAQ,CAAC,SAAS,CAAC,IAAIP,OAAO,CAACO,QAAQ,CAAC,OAAO,CAAC,EAAE;MAC5D,OAAO,eAAe;IACxB;IACA,IAAIP,OAAO,CAACO,QAAQ,CAAC,SAAS,CAAC,EAAE;MAC/B,OAAO,eAAe;IACxB;IACA,IAAIP,OAAO,CAACO,QAAQ,CAAC,OAAO,CAAC,IAAIP,OAAO,CAACO,QAAQ,CAAC,QAAQ,CAAC,EAAE;MAC3D,OAAO,oBAAoB;IAC7B;EACF;EACA,OAAO,SAAS;AAClB","ignoreList":[]}
@@ -46,7 +46,7 @@ export class ExperimentClient {
46
46
  fetchSequenceNumber = 0;
47
47
  storedFetchSequenceNumber = 0;
48
48
  stopCallbacks = new Set();
49
-
49
+ inFlightFetches = new Map();
50
50
  /**
51
51
  * Creates a new ExperimentClient instance.
52
52
  *
@@ -213,6 +213,33 @@ export class ExperimentClient {
213
213
  }
214
214
  return this;
215
215
  }
216
+ async fetchWithMetadata(user = this.user, options) {
217
+ const startedAt = Date.now();
218
+ const fetchUser = user ?? this.user;
219
+ this.setUser(fetchUser);
220
+ try {
221
+ const variants = await this.fetchWithRetries(fetchUser, options);
222
+ const flagKeys = Object.keys(variants);
223
+ return {
224
+ fetched: true,
225
+ flagKeys,
226
+ cacheHit: false,
227
+ durationMillis: Date.now() - startedAt,
228
+ source: "network"
229
+ };
230
+ } catch (error) {
231
+ const reason = error instanceof Error ? error.message : String(error);
232
+ this.lastFetchFailure = reason;
233
+ return {
234
+ fetched: false,
235
+ flagKeys: options?.flagKeys ?? Object.keys(this.variants.getAll()),
236
+ cacheHit: Object.keys(this.variants.getAll()).length > 0,
237
+ durationMillis: Date.now() - startedAt,
238
+ source: "cache",
239
+ failureReason: reason
240
+ };
241
+ }
242
+ }
216
243
  async fetchOrThrow(user = this.user, options) {
217
244
  const fetchUser = user ?? this.user;
218
245
  this.setUser(fetchUser);
@@ -248,6 +275,33 @@ export class ExperimentClient {
248
275
  this.logger.debug(`[Experiment] variant for ${key} is ${sourceVariant.variant?.value}`);
249
276
  return sourceVariant.variant || {};
250
277
  }
278
+ variantWithMetadata(key, fallback) {
279
+ if (!this.apiKey) {
280
+ return {
281
+ variant: {
282
+ value: undefined
283
+ },
284
+ fallback: true,
285
+ stale: false,
286
+ reason: "missing_flag"
287
+ };
288
+ }
289
+ const sourceVariant = this.variantAndSource(key, fallback);
290
+ if (this.config.automaticExposureTracking) {
291
+ this.exposureInternal(key, sourceVariant);
292
+ }
293
+ this.logger.debug(`[Experiment] variant for ${key} is ${sourceVariant.variant?.value}`);
294
+ const variant = sourceVariant.variant || {};
295
+ const fallbackVariant = isFallback(sourceVariant.source);
296
+ const missingVariant = variant.value === undefined;
297
+ return {
298
+ variant,
299
+ source: sourceVariant.source,
300
+ fallback: fallbackVariant,
301
+ stale: false,
302
+ reason: missingVariant ? this.lastFetchFailure ? "fetch_failure" : fallbackVariant ? "fallback" : "no_assignment" : fallbackVariant ? "fallback" : undefined
303
+ };
304
+ }
251
305
 
252
306
  /**
253
307
  * Track an exposure event for the variant associated with the flag/experiment
@@ -299,6 +353,15 @@ export class ExperimentClient {
299
353
  this.variants.clear();
300
354
  void this.variants.store().catch(e => this.logger.warn(e));
301
355
  }
356
+ clearVariants() {
357
+ this.clear();
358
+ }
359
+ hasCachedVariant(key) {
360
+ return this.variants.get(key) !== undefined;
361
+ }
362
+ getLastFetchTime() {
363
+ return this.lastFetchTime;
364
+ }
302
365
 
303
366
  /**
304
367
  * Get a copy of the internal {@link ExperimentUser} object if it is set.
@@ -635,7 +698,26 @@ export class ExperimentClient {
635
698
  }
636
699
  }
637
700
  async fetchWithRetries(user, options) {
638
- return await this.fetchInternal(user, this.config.fetchTimeoutMillis, this.config.retryFetchOnFailure, options);
701
+ const key = JSON.stringify({
702
+ user,
703
+ flagKeys: options?.flagKeys ?? null
704
+ });
705
+ const inFlightFetch = this.inFlightFetches.get(key);
706
+ if (inFlightFetch) {
707
+ return await inFlightFetch;
708
+ }
709
+ const fetch = this.fetchInternal(user, this.config.fetchTimeoutMillis, this.config.retryFetchOnFailure, options).then(variants => {
710
+ this.lastFetchTime = Date.now();
711
+ this.lastFetchFailure = undefined;
712
+ return variants;
713
+ }).catch(error => {
714
+ this.lastFetchFailure = error instanceof Error ? error.message : String(error);
715
+ throw error;
716
+ }).finally(() => {
717
+ this.inFlightFetches.delete(key);
718
+ });
719
+ this.inFlightFetches.set(key, fetch);
720
+ return await fetch;
639
721
  }
640
722
  async doFetch(user, timeoutMillis, options) {
641
723
  user = await this.addContextOrWait(user, 10000);