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
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+
3
+ function createMockFunction(implementation) {
4
+ const fn = (...args) => {
5
+ fn.calls.push(args);
6
+ return implementation(...args);
7
+ };
8
+ fn.calls = [];
9
+ return fn;
10
+ }
11
+ function createReturn(eventType) {
12
+ const result = {
13
+ event: {
14
+ event_type: eventType
15
+ },
16
+ code: 200,
17
+ message: "dry_run"
18
+ };
19
+ return {
20
+ promise: Promise.resolve(result)
21
+ };
22
+ }
23
+ export function createFakeExperimentStorage(initialValues = {}) {
24
+ const values = new Map(Object.entries(initialValues));
25
+ return {
26
+ values,
27
+ get: async key => values.get(key) ?? null,
28
+ put: async (key, value) => {
29
+ values.set(key, value);
30
+ },
31
+ delete: async key => {
32
+ values.delete(key);
33
+ },
34
+ reset: async () => {
35
+ values.clear();
36
+ }
37
+ };
38
+ }
39
+ export function createMockAmplitudeClient() {
40
+ let userId;
41
+ let deviceId = "mock-device-id";
42
+ let sessionId;
43
+ const client = {
44
+ init: createMockFunction((_, nextUserId) => {
45
+ userId = nextUserId;
46
+ return createReturn("$init");
47
+ }),
48
+ track: createMockFunction(() => createReturn("$track")),
49
+ logEvent: createMockFunction(() => createReturn("$track")),
50
+ identify: createMockFunction(() => createReturn("$identify")),
51
+ groupIdentify: createMockFunction(() => createReturn("$groupidentify")),
52
+ setGroup: createMockFunction(() => createReturn("$groupidentify")),
53
+ revenue: createMockFunction(() => createReturn("revenue_amount")),
54
+ flush: createMockFunction(() => createReturn("$flush")),
55
+ flushWithResult: createMockFunction(async () => ({
56
+ ok: true,
57
+ sent: 0,
58
+ failed: 0,
59
+ dropped: 0,
60
+ retried: 0,
61
+ finishedAt: Date.now()
62
+ })),
63
+ add: createMockFunction(() => createReturn("$add")),
64
+ remove: createMockFunction(() => createReturn("$remove")),
65
+ setUserId: createMockFunction(nextUserId => {
66
+ userId = nextUserId;
67
+ }),
68
+ getUserId: createMockFunction(() => userId),
69
+ setDeviceId: createMockFunction(nextDeviceId => {
70
+ deviceId = nextDeviceId;
71
+ }),
72
+ getDeviceId: createMockFunction(() => deviceId),
73
+ setSessionId: createMockFunction(nextSessionId => {
74
+ sessionId = nextSessionId;
75
+ }),
76
+ getSessionId: createMockFunction(() => sessionId),
77
+ extendSession: createMockFunction(() => undefined),
78
+ setOptOut: createMockFunction(() => undefined),
79
+ reset: createMockFunction(() => {
80
+ userId = undefined;
81
+ deviceId = "mock-device-id-reset";
82
+ }),
83
+ shutdown: createMockFunction(() => undefined),
84
+ getDiagnostics: createMockFunction(() => ({
85
+ initialized: true,
86
+ userId,
87
+ deviceId,
88
+ sessionId,
89
+ queueSize: 0,
90
+ activeInstanceNames: ["$default_instance"]
91
+ })),
92
+ healthCheck: createMockFunction(async () => ({
93
+ ok: true,
94
+ analyticsInitialized: true,
95
+ nativeAvailable: true,
96
+ storageWritable: true,
97
+ errors: []
98
+ }))
99
+ };
100
+ return client;
101
+ }
102
+ export function createMockExperimentClient(initialVariants = {}) {
103
+ let user = {};
104
+ const variants = new Map(Object.entries(initialVariants));
105
+ let client;
106
+ client = {
107
+ start: createMockFunction(async nextUser => {
108
+ user = nextUser ?? user;
109
+ }),
110
+ stop: createMockFunction(() => undefined),
111
+ fetch: createMockFunction(async () => client),
112
+ fetchWithMetadata: createMockFunction(async () => ({
113
+ fetched: true,
114
+ flagKeys: Array.from(variants.keys()),
115
+ cacheHit: false,
116
+ durationMillis: 0,
117
+ source: "network"
118
+ })),
119
+ fetchOrThrow: createMockFunction(async () => client),
120
+ variant: createMockFunction((key, fallback) => {
121
+ return variants.get(key) ?? normalizeFallback(fallback);
122
+ }),
123
+ variantWithMetadata: createMockFunction((key, fallback) => ({
124
+ variant: variants.get(key) ?? normalizeFallback(fallback),
125
+ fallback: !variants.has(key),
126
+ stale: false,
127
+ reason: variants.has(key) ? undefined : "fallback"
128
+ })),
129
+ all: createMockFunction(() => Object.fromEntries(variants)),
130
+ clear: createMockFunction(() => variants.clear()),
131
+ clearVariants: createMockFunction(() => variants.clear()),
132
+ hasCachedVariant: createMockFunction(key => variants.has(key)),
133
+ getLastFetchTime: createMockFunction(() => undefined),
134
+ exposure: createMockFunction(() => undefined),
135
+ getUser: createMockFunction(() => ({
136
+ ...user
137
+ })),
138
+ setUser: createMockFunction(nextUser => {
139
+ user = {
140
+ ...nextUser
141
+ };
142
+ }),
143
+ getUserProvider: createMockFunction(() => ({
144
+ getUser: async () => ({
145
+ ...user
146
+ })
147
+ })),
148
+ setUserProvider: createMockFunction(() => client)
149
+ };
150
+ return client;
151
+ function normalizeFallback(fallback) {
152
+ if (typeof fallback === "string") {
153
+ return {
154
+ value: fallback
155
+ };
156
+ }
157
+ return fallback ?? {};
158
+ }
159
+ }
160
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createMockFunction","implementation","fn","args","calls","push","createReturn","eventType","result","event","event_type","code","message","promise","Promise","resolve","createFakeExperimentStorage","initialValues","values","Map","Object","entries","get","key","put","value","set","delete","reset","clear","createMockAmplitudeClient","userId","deviceId","sessionId","client","init","_","nextUserId","track","logEvent","identify","groupIdentify","setGroup","revenue","flush","flushWithResult","ok","sent","failed","dropped","retried","finishedAt","Date","now","add","remove","setUserId","getUserId","setDeviceId","nextDeviceId","getDeviceId","setSessionId","nextSessionId","getSessionId","extendSession","undefined","setOptOut","shutdown","getDiagnostics","initialized","queueSize","activeInstanceNames","healthCheck","analyticsInitialized","nativeAvailable","storageWritable","errors","createMockExperimentClient","initialVariants","user","variants","start","nextUser","stop","fetch","fetchWithMetadata","fetched","flagKeys","Array","from","keys","cacheHit","durationMillis","source","fetchOrThrow","variant","fallback","normalizeFallback","variantWithMetadata","has","stale","reason","all","fromEntries","clearVariants","hasCachedVariant","getLastFetchTime","exposure","getUser","setUser","getUserProvider","setUserProvider"],"sourceRoot":"../../src","sources":["testing.ts"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { Config, MemoryStorage, ReactNativeConfig as IReactNativeConfig, ReactNativeTrackingOptions, Event, ReactNativeOptions, Storage, UserSession } from "@amplitude/analytics-core";
2
- import { NitroAnalyticsStorage } from "../native/storage";
2
+ import type { Transport } from "@amplitude/analytics-core";
3
3
  export declare const getDefaultConfig: () => {
4
4
  cookieExpiration: number;
5
5
  cookieSameSite: string;
@@ -9,10 +9,10 @@ export declare const getDefaultConfig: () => {
9
9
  disableCookies: boolean;
10
10
  domain: string;
11
11
  sessionTimeout: number;
12
- storageProvider: NitroAnalyticsStorage<Event[]>;
12
+ storageProvider: import("..").NitroAnalyticsStorage<Event[]>;
13
13
  trackingSessionEvents: boolean;
14
14
  trackingOptions: Required<ReactNativeTrackingOptions>;
15
- transportProvider: import("./nitro-transport").NitroTransport;
15
+ transportProvider: Transport;
16
16
  };
17
17
  export declare class ReactNativeConfig extends Config implements IReactNativeConfig {
18
18
  appVersion?: string;
@@ -58,11 +58,24 @@ export declare const createCookieStorage: <T>(overrides?: ReactNativeOptions, ba
58
58
  disableCookies: boolean;
59
59
  domain: string;
60
60
  sessionTimeout: number;
61
- storageProvider: NitroAnalyticsStorage<Event[]>;
61
+ storageProvider: import("..").NitroAnalyticsStorage<Event[]>;
62
62
  trackingSessionEvents: boolean;
63
63
  trackingOptions: Required<ReactNativeTrackingOptions>;
64
- transportProvider: import("./nitro-transport").NitroTransport;
64
+ transportProvider: Transport;
65
65
  }) => Promise<Storage<T>>;
66
- export declare const createEventsStorage: (overrides?: ReactNativeOptions) => Promise<Storage<Event[]> | undefined>;
66
+ export declare const createEventsStorage: (overrides?: ReactNativeOptions, baseConfig?: {
67
+ cookieExpiration: number;
68
+ cookieSameSite: string;
69
+ cookieSecure: boolean;
70
+ cookieStorage: MemoryStorage<UserSession>;
71
+ cookieUpgrade: boolean;
72
+ disableCookies: boolean;
73
+ domain: string;
74
+ sessionTimeout: number;
75
+ storageProvider: import("..").NitroAnalyticsStorage<Event[]>;
76
+ trackingSessionEvents: boolean;
77
+ trackingOptions: Required<ReactNativeTrackingOptions>;
78
+ transportProvider: Transport;
79
+ }) => Promise<Storage<Event[]> | undefined>;
67
80
  export declare const getTopLevelDomain: (url?: string) => Promise<string>;
68
81
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/analytics/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,aAAa,EAEb,iBAAiB,IAAI,kBAAkB,EACvC,0BAA0B,EAC1B,KAAK,EACL,kBAAkB,EAClB,OAAO,EACP,WAAW,EAKZ,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;CA8B5B,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,MAAO,YAAW,kBAAkB;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,0BAA0B,CAAC;IAG5C,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,OAAO,UAAS;IAC1B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEf,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAuCxD,IAAI,QAAQ,IAIW,MAAM,GAAG,SAAS,CAFxC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAKxC;IAED,IAAI,MAAM,IAIS,MAAM,GAAG,SAAS,CAFpC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAKpC;IAED,IAAI,SAAS,IAIY,MAAM,GAAG,SAAS,CAF1C;IAED,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAK1C;IAED,IAAI,MAAM,IAIS,OAAO,CAFzB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAKzB;IAED,IAAI,aAAa,IAIgB,MAAM,GAAG,SAAS,CAFlD;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAKlD;IAED,IAAI,WAAW,IAIc,MAAM,GAAG,SAAS,CAF9C;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAK9C;IAED,OAAO,CAAC,aAAa;CAuBtB;AAED,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,UAAU,kBAAkB,KAC3B,OAAO,CAAC,kBAAkB,CAsE5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,CAAC,EACzC,YAAY,kBAAkB,EAC9B;;;;;;;;;;;;;CAA+B,KAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAOpB,CAAC;AA6BF,eAAO,MAAM,mBAAmB,GAC9B,YAAY,kBAAkB,KAC7B,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,CAoBtC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,MAAM,MAAM,oBA6BnD,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/analytics/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,aAAa,EAEb,iBAAiB,IAAI,kBAAkB,EACvC,0BAA0B,EAC1B,KAAK,EACL,kBAAkB,EAClB,OAAO,EACP,WAAW,EAIZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA2B3D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;CA8B5B,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,MAAO,YAAW,kBAAkB;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,0BAA0B,CAAC;IAG5C,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,OAAO,UAAS;IAC1B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEf,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAwCxD,IAAI,QAAQ,IAIW,MAAM,GAAG,SAAS,CAFxC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAKxC;IAED,IAAI,MAAM,IAIS,MAAM,GAAG,SAAS,CAFpC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAKpC;IAED,IAAI,SAAS,IAIY,MAAM,GAAG,SAAS,CAF1C;IAED,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAK1C;IAED,IAAI,MAAM,IAIS,OAAO,CAFzB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAKzB;IAED,IAAI,aAAa,IAIgB,MAAM,GAAG,SAAS,CAFlD;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAKlD;IAED,IAAI,WAAW,IAIc,MAAM,GAAG,SAAS,CAF9C;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAK9C;IAED,OAAO,CAAC,aAAa;CAuBtB;AAED,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,UAAU,kBAAkB,KAC3B,OAAO,CAAC,kBAAkB,CAwE5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,CAAC,EACzC,YAAY,kBAAkB,EAC9B;;;;;;;;;;;;;CAA+B,KAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAOpB,CAAC;AA6BF,eAAO,MAAM,mBAAmB,GAC9B,YAAY,kBAAkB,EAC9B;;;;;;;;;;;;;CAA+B,KAC9B,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,CAqBtC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,MAAM,MAAM,oBA6BnD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import * as Types from "./types";
2
2
  export { createInstance } from "./react-native-client";
3
- export declare const add: (plugin: Types.Plugin<Types.ReactNativeClient, Types.ReactNativeConfig>) => Types.AmplitudeReturn<void>, flush: () => Types.AmplitudeReturn<void>, getDeviceId: () => string | undefined, getSessionId: () => number | undefined, getUserId: () => string | undefined, groupIdentify: (groupType: string, groupName: string | string[], identify: Types.IIdentify, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, identify: (identify: Types.IIdentify, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, init: (apiKey: string, userId?: string, options?: Types.ReactNativeOptions) => Types.AmplitudeReturn<void>, logEvent: (eventInput: Types.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, remove: (pluginName: string) => Types.AmplitudeReturn<void>, reset: () => void, revenue: (revenue: Types.IRevenue, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setUserId: (userId: string | undefined) => void, shutdown: () => void, track: (eventInput: Types.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, extendSession: () => void;
3
+ export declare const add: (plugin: Types.Plugin<Types.ReactNativeClient, Types.ReactNativeConfig>) => Types.AmplitudeReturn<void>, flush: () => Types.AmplitudeReturn<void>, getDeviceId: () => string | undefined, getSessionId: () => number | undefined, getUserId: () => string | undefined, groupIdentify: (groupType: string, groupName: string | string[], identify: Types.IIdentify, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, identify: (identify: Types.IIdentify, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, init: (apiKey: string, userId?: string, options?: Types.ReactNativeOptions) => Types.AmplitudeReturn<void>, logEvent: (eventInput: Types.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, remove: (pluginName: string) => Types.AmplitudeReturn<void>, reset: () => void, revenue: (revenue: Types.IRevenue, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setUserId: (userId: string | undefined) => void, shutdown: () => void, track: (eventInput: Types.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, extendSession: () => void, flushWithResult: () => Promise<import("./react-native-client").AmplitudeFlushResult>, getDiagnostics: () => import("./react-native-client").AmplitudeAnalyticsDiagnostics, healthCheck: () => Promise<import("./react-native-client").AmplitudeHealthCheckResult>;
4
4
  export { Revenue, Identify } from "@amplitude/analytics-core";
5
5
  export { InMemoryStorage, LocalStorage, MemoryStorage, } from "./storage/local-storage";
6
6
  export { Types };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analytics/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,eAAO,MACL,GAAG,2GACH,KAAK,qCACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,0JACb,QAAQ,yGACR,IAAI,wGACJ,QAAQ,2JACR,MAAM,uDACN,KAAK,cACL,OAAO,uGACP,WAAW,8BACX,QAAQ,+HACR,SAAS,6BACT,YAAY,+BACZ,SAAS,wCACT,QAAQ,cACR,KAAK,2JACL,aAAa,YACL,CAAC;AAEX,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analytics/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,eAAO,MACL,GAAG,2GACH,KAAK,qCACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,0JACb,QAAQ,yGACR,IAAI,wGACJ,QAAQ,2JACR,MAAM,uDACN,KAAK,cACL,OAAO,uGACP,WAAW,8BACX,QAAQ,+HACR,SAAS,6BACT,YAAY,+BACZ,SAAS,wCACT,QAAQ,cACR,KAAK,2JACL,aAAa,cACb,eAAe,uEACf,cAAc,uEACd,WAAW,2EACH,CAAC;AAEX,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { FetchTransport } from "@amplitude/analytics-core";
2
+ import type { Payload, Response } from "@amplitude/analytics-core";
3
+ export declare class NetworkGuardedFetchTransport extends FetchTransport {
4
+ send(serverUrl: string, payload: Payload): Promise<Response | null>;
5
+ }
6
+ //# sourceMappingURL=network-guarded-fetch-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-guarded-fetch-transport.d.ts","sourceRoot":"","sources":["../../../src/analytics/network-guarded-fetch-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGnE,qBAAa,4BAA6B,SAAQ,cAAc;IACxD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAI1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"nitro-transport.d.ts","sourceRoot":"","sources":["../../../src/analytics/nitro-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG9E,qBAAa,cAAe,SAAQ,aAAc,YAAW,SAAS;IACpE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;gBAE3C,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAKhD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAoB1E;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
1
+ {"version":3,"file":"nitro-transport.d.ts","sourceRoot":"","sources":["../../../src/analytics/nitro-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI9E,qBAAa,cAAe,SAAQ,aAAc,YAAW,SAAS;IACpE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;gBAE3C,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAKhD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAqB1E;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -6,6 +6,8 @@ export declare class Context implements BeforePlugin {
6
6
  config: ReactNativeConfig;
7
7
  uaResult: UAParser.IResult;
8
8
  library: string;
9
+ private nativeContext;
10
+ private nativeContextLoaded;
9
11
  constructor();
10
12
  setup(config: ReactNativeConfig): Promise<undefined>;
11
13
  private getNativeContext;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/analytics/plugins/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,KAAK,EAIN,MAAM,2BAA2B,CAAC;AACnC,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AA4C/C,qBAAa,OAAQ,YAAW,YAAY;IAC1C,IAAI,SAA4C;IAChD,IAAI,EAAG,QAAQ,CAAU;IAKzB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC3B,OAAO,SAAmC;;IAY1C,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC;IAKpD,OAAO,CAAC,gBAAgB;IAWlB,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CA4E9C"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/analytics/plugins/context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,KAAK,EAIN,MAAM,2BAA2B,CAAC;AACnC,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AA4C/C,qBAAa,OAAQ,YAAW,YAAY;IAC1C,IAAI,SAA4C;IAChD,IAAI,EAAG,QAAQ,CAAU;IAKzB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC3B,OAAO,SAAmC;IAC1C,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,mBAAmB,CAAS;;IAYpC,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC;IAKpD,OAAO,CAAC,gBAAgB;IAkBlB,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CA4E9C"}
@@ -2,23 +2,58 @@ import { AppStateStatus } from "react-native";
2
2
  import { AmplitudeCore, ReactNativeConfig, ReactNativeOptions, ReactNativeAttributionOptions as AttributionOptions, IIdentify, EventOptions, Event, Result, ReactNativeClient, AnalyticsClient } from "@amplitude/analytics-core";
3
3
  export type AmplitudeReactNativeClient = ReactNativeClient & {
4
4
  shutdown: () => void;
5
+ flushWithResult: () => Promise<AmplitudeFlushResult>;
6
+ getDiagnostics: () => AmplitudeAnalyticsDiagnostics;
7
+ healthCheck: () => Promise<AmplitudeHealthCheckResult>;
5
8
  };
9
+ export type AmplitudeFlushResult = {
10
+ ok: boolean;
11
+ sent: number;
12
+ failed: number;
13
+ dropped: number;
14
+ retried: number;
15
+ reason?: string;
16
+ result?: Result;
17
+ finishedAt: number;
18
+ };
19
+ export type AmplitudeAnalyticsDiagnostics = {
20
+ initialized: boolean;
21
+ instanceName?: string;
22
+ userId?: string;
23
+ deviceId?: string;
24
+ sessionId?: number;
25
+ queueSize: number;
26
+ lastFlushTime?: number;
27
+ lastFlushDurationMillis?: number;
28
+ lastFlushError?: string;
29
+ activeInstanceNames: string[];
30
+ };
31
+ export type AmplitudeHealthCheckResult = {
32
+ ok: boolean;
33
+ analyticsInitialized: boolean;
34
+ nativeAvailable: boolean;
35
+ storageWritable: boolean;
36
+ errors: string[];
37
+ };
38
+ export declare function getActiveAnalyticsInstanceNames(): string[];
6
39
  export declare class AmplitudeReactNative extends AmplitudeCore implements ReactNativeClient, AnalyticsClient {
7
40
  appState: AppStateStatus;
8
41
  private appStateChangeHandler;
9
42
  private initPromise;
10
43
  private readonly connectorOwnerId;
44
+ private lastFlushTime;
45
+ private lastFlushDurationMillis;
46
+ private lastFlushError;
11
47
  explicitSessionId: number | undefined;
12
48
  config: ReactNativeConfig;
13
- userProperties: {
14
- [key: string]: any;
15
- } | undefined;
49
+ userProperties: Record<string, unknown> | undefined;
16
50
  init(apiKey?: string, userId?: string, options?: ReactNativeOptions): import("@amplitude/analytics-core").AmplitudeReturn<void>;
17
51
  protected _init(options: ReactNativeOptions & {
18
52
  apiKey: string;
19
53
  }): Promise<void>;
20
54
  shutdown(): void;
21
55
  private handleInternalTrackPromise;
56
+ private getConnectorInstanceName;
22
57
  private cancelDestinationFlushes;
23
58
  runAttributionStrategy(attributionConfig?: AttributionOptions, isNewSession?: boolean): Promise<void>;
24
59
  getUserId(): string | undefined;
@@ -28,16 +63,21 @@ export declare class AmplitudeReactNative extends AmplitudeCore implements React
28
63
  identify(identify: IIdentify, eventOptions?: EventOptions): import("@amplitude/analytics-core").AmplitudeReturn<Result>;
29
64
  reset(): void;
30
65
  getSessionId(): number | undefined;
66
+ flushWithResult(): Promise<AmplitudeFlushResult>;
67
+ getDiagnostics(): AmplitudeAnalyticsDiagnostics;
68
+ healthCheck(): Promise<AmplitudeHealthCheckResult>;
31
69
  getIdentity(): {
32
70
  userId: string | undefined;
33
71
  deviceId: string | undefined;
34
- userProperties: {
35
- [key: string]: any;
36
- } | undefined;
72
+ userProperties: Record<string, unknown> | undefined;
37
73
  };
38
74
  getOptOut(): boolean;
39
75
  setSessionId(sessionId: number): void;
40
76
  extendSession(): void;
77
+ private getQueueSize;
78
+ private collectFlushOutcomes;
79
+ private countSuccessfulOutcomes;
80
+ private isSuccessStatusCode;
41
81
  private setSessionIdInternal;
42
82
  process(event: Event): Promise<Result>;
43
83
  currentTimeMillis(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"react-native-client.d.ts","sourceRoot":"","sources":["../../../src/analytics/react-native-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAEf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EAOb,iBAAiB,EACjB,kBAAkB,EAClB,6BAA6B,IAAI,kBAAkB,EACnD,SAAS,EACT,YAAY,EACZ,KAAK,EACL,MAAM,EACN,iBAAiB,EAOjB,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAiBnC,MAAM,MAAM,0BAA0B,GAAG,iBAAiB,GAAG;IAC3D,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAKF,qBAAa,oBACX,SAAQ,aACR,YAAW,iBAAiB,EAAE,eAAe;IAE7C,QAAQ,EAAE,cAAc,CAAgB;IACxC,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA0B;IAC3D,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IAGtC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,SAAS,CAAC;IAEnD,IAAI,CAAC,MAAM,SAAK,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;cAQ/C,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAgFtE,QAAQ;IAkBR,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,wBAAwB;IAmB1B,sBAAsB,CAC1B,iBAAiB,CAAC,EAAE,kBAAkB,EACtC,YAAY,UAAQ;IAuBtB,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IASpC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAS5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAUzD,KAAK;IAKL,YAAY;IAIZ,WAAW;;;;;;;IAQX,SAAS;IAIT,YAAY,CAAC,SAAS,EAAE,MAAM;IAU9B,aAAa;IAQb,OAAO,CAAC,oBAAoB;IAuCtB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IA+C5C,iBAAiB;IAIjB,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,8BAA8B;IAMtC,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAWnC;IAEF,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,cAAc;CAGvB;AAED,eAAO,MAAM,cAAc,QAAO,0BA4HjC,CAAC;;AAEF,wBAAgC"}
1
+ {"version":3,"file":"react-native-client.d.ts","sourceRoot":"","sources":["../../../src/analytics/react-native-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { AmplitudeAnalyticsDiagnostics, AmplitudeHealthCheckResult, AmplitudeReactNativeClient } from "./analytics/react-native-client";
2
+ export type NativeStartupDiagnostics = {
3
+ nitroModulesAvailable: boolean;
4
+ contextAvailable: boolean;
5
+ storageAvailable: boolean;
6
+ workerAvailable: boolean;
7
+ nativeAvailable: boolean;
8
+ lastError?: {
9
+ code: string;
10
+ message: string;
11
+ };
12
+ };
13
+ export type AmplitudeDiagnostics = AmplitudeAnalyticsDiagnostics & {
14
+ native: NativeStartupDiagnostics;
15
+ networkEnabled: boolean;
16
+ };
17
+ export declare function getLastNativeError(): NativeStartupDiagnostics["lastError"];
18
+ export declare function getNativeStartupDiagnostics(): NativeStartupDiagnostics;
19
+ export declare function getAmplitudeDiagnostics(analytics: AmplitudeReactNativeClient): AmplitudeDiagnostics;
20
+ export declare function healthCheck(analytics?: AmplitudeReactNativeClient): Promise<AmplitudeHealthCheckResult>;
21
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,iCAAiC,CAAC;AAOzC,MAAM,MAAM,wBAAwB,GAAG;IACrC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,6BAA6B,GAAG;IACjE,MAAM,EAAE,wBAAwB,CAAC;IACjC,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAWF,wBAAgB,kBAAkB,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAE1E;AAED,wBAAgB,2BAA2B,IAAI,wBAAwB,CAgCtE;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,0BAA0B,GACpC,oBAAoB,CAMtB;AAED,wBAAsB,WAAW,CAC/B,SAAS,CAAC,EAAE,0BAA0B,GACrC,OAAO,CAAC,0BAA0B,CAAC,CA+BrC"}
@@ -0,0 +1,9 @@
1
+ export type AmplitudeErrorCode = "not_initialized" | "network_error" | "storage_error" | "invalid_api_key" | "invalid_deployment_key" | "experiment_fetch_failed" | "native_unavailable" | "serialization_error" | "event_too_large" | "timeout" | "unknown";
2
+ export declare class AmplitudeError extends Error {
3
+ readonly code: AmplitudeErrorCode;
4
+ readonly cause?: unknown;
5
+ constructor(code: AmplitudeErrorCode, message: string, cause?: unknown);
6
+ }
7
+ export declare function createAmplitudeError(code: AmplitudeErrorCode, message: string, cause?: unknown): AmplitudeError;
8
+ export declare function getAmplitudeErrorCode(error: unknown): AmplitudeErrorCode;
9
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,iBAAiB,GACjB,wBAAwB,GACxB,yBAAyB,GACzB,oBAAoB,GACpB,qBAAqB,GACrB,iBAAiB,GACjB,SAAS,GACT,SAAS,CAAC;AAEd,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEb,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAMvE;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,GACd,cAAc,CAEhB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CA0BxE"}
@@ -2,7 +2,7 @@
2
2
  * @packageDocumentation
3
3
  * @module experiment-react-native-client
4
4
  */
5
- import { Client, FetchOptions } from "./types/client";
5
+ import { Client, ExperimentFetchResult, ExperimentVariantResult, FetchOptions } from "./types/client";
6
6
  import { ExperimentConfig } from "./types/config";
7
7
  import { ExperimentUser, ExperimentUserProvider } from "./types/user";
8
8
  import { Variant, Variants } from "./types/variant";
@@ -33,6 +33,9 @@ export declare class ExperimentClient implements Client {
33
33
  private storedFetchSequenceNumber;
34
34
  private readonly fetchVariantsOptions;
35
35
  private readonly stopCallbacks;
36
+ private readonly inFlightFetches;
37
+ private lastFetchTime;
38
+ private lastFetchFailure;
36
39
  /**
37
40
  * Creates a new ExperimentClient instance.
38
41
  *
@@ -95,6 +98,7 @@ export declare class ExperimentClient implements Client {
95
98
  * @see ExperimentUserProvider
96
99
  */
97
100
  fetch(user?: ExperimentUser, options?: FetchOptions): Promise<ExperimentClient>;
101
+ fetchWithMetadata(user?: ExperimentUser, options?: FetchOptions): Promise<ExperimentFetchResult>;
98
102
  fetchOrThrow(user?: ExperimentUser, options?: FetchOptions): Promise<ExperimentClient>;
99
103
  /**
100
104
  * Returns the variant for the provided key.
@@ -112,6 +116,7 @@ export declare class ExperimentClient implements Client {
112
116
  * @see ExposureTrackingProvider
113
117
  */
114
118
  variant(key: string, fallback?: string | Variant): Variant;
119
+ variantWithMetadata(key: string, fallback?: string | Variant): ExperimentVariantResult;
115
120
  /**
116
121
  * Track an exposure event for the variant associated with the flag/experiment
117
122
  * {@link key}.
@@ -138,6 +143,9 @@ export declare class ExperimentClient implements Client {
138
143
  * Clear all variants in the cache and storage.
139
144
  */
140
145
  clear(): void;
146
+ clearVariants(): void;
147
+ hasCachedVariant(key: string): boolean;
148
+ getLastFetchTime(): number | undefined;
141
149
  /**
142
150
  * Get a copy of the internal {@link ExperimentUser} object if it is set.
143
151
  *
@@ -1 +1 @@
1
- {"version":3,"file":"experimentClient.d.ts","sourceRoot":"","sources":["../../../src/experiment/experimentClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"experimentClient.d.ts","sourceRoot":"","sources":["../../../src/experiment/experimentClient.ts"],"names":[],"mappings":"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"}
@@ -12,4 +12,5 @@ export { LogLevel } from "./types/logger";
12
12
  export type { Logger } from "./types/logger";
13
13
  export { ConsoleLogger } from "./logger/consoleLogger";
14
14
  export { LocalStorage, MemoryStorage } from "./storage/local-storage";
15
+ export * from "./typed-variants";
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/experiment/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/experiment/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACtE,cAAc,kBAAkB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Client, FetchOptions } from "./types/client";
1
+ import { Client, ExperimentFetchResult, ExperimentVariantResult, FetchOptions } from "./types/client";
2
2
  import { ExperimentUser, ExperimentUserProvider } from "./types/user";
3
3
  import { Variant, Variants } from "./types/variant";
4
4
  /**
@@ -11,11 +11,16 @@ export declare class StubExperimentClient implements Client {
11
11
  setUser(_user: ExperimentUser): void;
12
12
  fetch(_user?: ExperimentUser, _options?: FetchOptions): Promise<StubExperimentClient>;
13
13
  fetchOrThrow(_user?: ExperimentUser, _options?: FetchOptions): Promise<StubExperimentClient>;
14
+ fetchWithMetadata(_user?: ExperimentUser, _options?: FetchOptions): Promise<ExperimentFetchResult>;
14
15
  getUserProvider(): ExperimentUserProvider;
15
16
  setUserProvider(_userProvider: ExperimentUserProvider): StubExperimentClient;
16
17
  variant(_key: string, _fallback?: string | Variant): Variant;
18
+ variantWithMetadata(_key: string, _fallback?: string | Variant): ExperimentVariantResult;
17
19
  all(): Variants;
18
20
  clear(): void;
21
+ clearVariants(): void;
22
+ hasCachedVariant(_key: string): boolean;
23
+ getLastFetchTime(): number | undefined;
19
24
  exposure(_key: string): void;
20
25
  }
21
26
  //# sourceMappingURL=stubClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stubClient.d.ts","sourceRoot":"","sources":["../../../src/experiment/stubClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;GAEG;AACH,qBAAa,oBAAqB,YAAW,MAAM;IAC1C,OAAO,IAAI,cAAc;IAInB,KAAK,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,IAAI,IAAI,IAAI;IAEZ,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAE9B,KAAK,CAChB,KAAK,CAAC,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,oBAAoB,CAAC;IAInB,YAAY,CACvB,KAAK,CAAC,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,oBAAoB,CAAC;IAIzB,eAAe,IAAI,sBAAsB;IAQzC,eAAe,CACpB,aAAa,EAAE,sBAAsB,GACpC,oBAAoB;IAIhB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO;IAI5D,GAAG,IAAI,QAAQ;IAIf,KAAK,IAAI,IAAI;IAEb,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CACpC"}
1
+ {"version":3,"file":"stubClient.d.ts","sourceRoot":"","sources":["../../../src/experiment/stubClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,qBAAqB,EACrB,uBAAuB,EACvB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;GAEG;AACH,qBAAa,oBAAqB,YAAW,MAAM;IAC1C,OAAO,IAAI,cAAc;IAInB,KAAK,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,IAAI,IAAI,IAAI;IAEZ,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAE9B,KAAK,CAChB,KAAK,CAAC,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,oBAAoB,CAAC;IAInB,YAAY,CACvB,KAAK,CAAC,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,oBAAoB,CAAC;IAInB,iBAAiB,CAC5B,KAAK,CAAC,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,qBAAqB,CAAC;IAW1B,eAAe,IAAI,sBAAsB;IAQzC,eAAe,CACpB,aAAa,EAAE,sBAAsB,GACpC,oBAAoB;IAIhB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO;IAI5D,mBAAmB,CACxB,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAC3B,uBAAuB;IASnB,GAAG,IAAI,QAAQ;IAIf,KAAK,IAAI,IAAI;IAEb,aAAa,IAAI,IAAI;IAErB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIvC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAItC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CACpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../../src/experiment/transport/http.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,UAAU,IAAI,cAAc,EAC5B,WAAW,EACX,YAAY,EACb,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAsEhE;;;GAGG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBACxB,MAAM,EAAE,UAAU;IAIxB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;CAS3D;AAED,eAAO,MAAM,eAAe,EAAE,UAAkC,CAAC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../../src/experiment/transport/http.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,UAAU,IAAI,cAAc,EAC5B,WAAW,EACX,YAAY,EACb,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AA8EhE;;;GAGG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBACxB,MAAM,EAAE,UAAU;IAIxB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;CAS3D;AAED,eAAO,MAAM,eAAe,EAAE,UAAkC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Client } from "./types/client";
2
+ import type { Variant } from "./types/variant";
3
+ export declare function variantString(client: Pick<Client, "variant">, key: string, fallback: string): string;
4
+ export declare function variantBoolean(client: Pick<Client, "variant">, key: string, fallback: boolean): boolean;
5
+ export declare function variantNumber(client: Pick<Client, "variant">, key: string, fallback: number): number;
6
+ export declare function variantPayload<T>(client: Pick<Client, "variant">, key: string, fallback: T): T;
7
+ export declare function variantJson<T>(client: Pick<Client, "variant">, key: string, fallback: T): T;
8
+ export declare function parseVariantJson<T>(variant: Variant, fallback: T): T;
9
+ //# sourceMappingURL=typed-variants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed-variants.d.ts","sourceRoot":"","sources":["../../../src/experiment/typed-variants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,wBAAgB,aAAa,CAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,MAAM,CAGR;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,GAChB,OAAO,CAST;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,MAAM,CAOR;AAED,wBAAgB,cAAc,CAAC,CAAC,EAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,CAAC,GACV,CAAC,CAGH;AAED,wBAAgB,WAAW,CAAC,CAAC,EAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,CAAC,GACV,CAAC,CAGH;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CASpE"}
@@ -1,5 +1,6 @@
1
1
  import { ExperimentUser, ExperimentUserProvider } from "./user";
2
2
  import { Variant, Variants } from "./variant";
3
+ import { VariantSource } from "./source";
3
4
  /**
4
5
  * Interface for the main client.
5
6
  * @category Core Usage
@@ -8,10 +9,15 @@ export interface Client {
8
9
  start(user?: ExperimentUser): Promise<void>;
9
10
  stop(): void;
10
11
  fetch(user?: ExperimentUser, options?: FetchOptions): Promise<Client>;
12
+ fetchWithMetadata(user?: ExperimentUser, options?: FetchOptions): Promise<ExperimentFetchResult>;
11
13
  fetchOrThrow(user?: ExperimentUser, options?: FetchOptions): Promise<Client>;
12
14
  variant(key: string, fallback?: string | Variant): Variant;
15
+ variantWithMetadata(key: string, fallback?: string | Variant): ExperimentVariantResult;
13
16
  all(): Variants;
14
17
  clear(): void;
18
+ clearVariants(): void;
19
+ hasCachedVariant(key: string): boolean;
20
+ getLastFetchTime(): number | undefined;
15
21
  exposure(key: string): void;
16
22
  getUser(): ExperimentUser;
17
23
  setUser(user: ExperimentUser): void;
@@ -33,4 +39,19 @@ export type FetchOptions = {
33
39
  */
34
40
  flagKeys?: string[];
35
41
  };
42
+ export type ExperimentFetchResult = {
43
+ fetched: boolean;
44
+ flagKeys: string[];
45
+ cacheHit: boolean;
46
+ durationMillis: number;
47
+ source: "network" | "cache";
48
+ failureReason?: string;
49
+ };
50
+ export type ExperimentVariantResult = {
51
+ variant: Variant;
52
+ source?: VariantSource;
53
+ fallback: boolean;
54
+ stale: boolean;
55
+ reason?: "missing_flag" | "fetch_failure" | "no_assignment" | "fallback";
56
+ };
36
57
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/experiment/types/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtE,YAAY,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAC3D,GAAG,IAAI,QAAQ,CAAC;IAChB,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,IAAI,cAAc,CAAC;IAC1B,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,eAAe,IAAI,sBAAsB,CAAC;IAC1C;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,sBAAsB,GAAG,MAAM,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/experiment/types/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtE,iBAAiB,CACf,IAAI,CAAC,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAClC,YAAY,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAC3D,mBAAmB,CACjB,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAC1B,uBAAuB,CAAC;IAC3B,GAAG,IAAI,QAAQ,CAAC;IAChB,KAAK,IAAI,IAAI,CAAC;IACd,aAAa,IAAI,IAAI,CAAC;IACtB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,IAAI,cAAc,CAAC;IAC1B,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,eAAe,IAAI,sBAAsB,CAAC;IAC1C;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,sBAAsB,GAAG,MAAM,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,UAAU,CAAC;CAC1E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/experiment/types/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,eAAe,CAAC,EAAE,QAAQ,CAAC;IAE3B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAEzB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;;;;;;;OAYG;IACH,uCAAuC,CAAC,EAAE,OAAO,CAAC;IAElD;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAE7C;;;OAGG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAE3D;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,QAAQ,EAAE,gBAsBtB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/experiment/types/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAwB9C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,eAAe,CAAC,EAAE,QAAQ,CAAC;IAE3B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAEzB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;;;;;;;OAYG;IACH,uCAAuC,CAAC,EAAE,OAAO,CAAC;IAElD;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAE7C;;;OAGG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAE3D;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,QAAQ,EAAE,gBA0BtB,CAAC"}