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.
- package/README.md +547 -55
- package/cpp/bindings/HybridAmplitudeWorker.cpp +27 -7
- package/lib/commonjs/analytics/config.js +31 -10
- package/lib/commonjs/analytics/config.js.map +1 -1
- package/lib/commonjs/analytics/index.js +8 -2
- package/lib/commonjs/analytics/index.js.map +1 -1
- package/lib/commonjs/analytics/network-guarded-fetch-transport.js +16 -0
- package/lib/commonjs/analytics/network-guarded-fetch-transport.js.map +1 -0
- package/lib/commonjs/analytics/nitro-transport.js +2 -0
- package/lib/commonjs/analytics/nitro-transport.js.map +1 -1
- package/lib/commonjs/analytics/plugins/context.js +7 -1
- package/lib/commonjs/analytics/plugins/context.js.map +1 -1
- package/lib/commonjs/analytics/react-native-client.js +155 -9
- package/lib/commonjs/analytics/react-native-client.js.map +1 -1
- package/lib/commonjs/diagnostics.js +92 -0
- package/lib/commonjs/diagnostics.js.map +1 -0
- package/lib/commonjs/errors.js +48 -0
- package/lib/commonjs/errors.js.map +1 -0
- package/lib/commonjs/experiment/experimentClient.js +84 -2
- package/lib/commonjs/experiment/experimentClient.js.map +1 -1
- package/lib/commonjs/experiment/index.js +12 -0
- package/lib/commonjs/experiment/index.js.map +1 -1
- package/lib/commonjs/experiment/stubClient.js +25 -0
- package/lib/commonjs/experiment/stubClient.js.map +1 -1
- package/lib/commonjs/experiment/transport/http.js +8 -2
- package/lib/commonjs/experiment/transport/http.js.map +1 -1
- package/lib/commonjs/experiment/typed-variants.js +52 -0
- package/lib/commonjs/experiment/typed-variants.js.map +1 -0
- package/lib/commonjs/experiment/types/config.js +32 -4
- package/lib/commonjs/experiment/types/config.js.map +1 -1
- package/lib/commonjs/index.js +105 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +387 -13
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/native/context.web.js +26 -0
- package/lib/commonjs/native/context.web.js.map +1 -0
- package/lib/commonjs/native/http.js +23 -8
- package/lib/commonjs/native/http.js.map +1 -1
- package/lib/commonjs/native/http.web.js +17 -0
- package/lib/commonjs/native/http.web.js.map +1 -0
- package/lib/commonjs/native/hybrid.web.js +23 -0
- package/lib/commonjs/native/hybrid.web.js.map +1 -0
- package/lib/commonjs/native/storage.js +27 -15
- package/lib/commonjs/native/storage.js.map +1 -1
- package/lib/commonjs/native/storage.web.js +135 -0
- package/lib/commonjs/native/storage.web.js.map +1 -0
- package/lib/commonjs/network.js +154 -0
- package/lib/commonjs/network.js.map +1 -0
- package/lib/commonjs/presets.js +118 -0
- package/lib/commonjs/presets.js.map +1 -0
- package/lib/commonjs/testing.js +166 -0
- package/lib/commonjs/testing.js.map +1 -0
- package/lib/module/analytics/config.js +32 -11
- package/lib/module/analytics/config.js.map +1 -1
- package/lib/module/analytics/index.js +4 -1
- package/lib/module/analytics/index.js.map +1 -1
- package/lib/module/analytics/network-guarded-fetch-transport.js +11 -0
- package/lib/module/analytics/network-guarded-fetch-transport.js.map +1 -0
- package/lib/module/analytics/nitro-transport.js +2 -0
- package/lib/module/analytics/nitro-transport.js.map +1 -1
- package/lib/module/analytics/plugins/context.js +7 -1
- package/lib/module/analytics/plugins/context.js.map +1 -1
- package/lib/module/analytics/react-native-client.js +154 -9
- package/lib/module/analytics/react-native-client.js.map +1 -1
- package/lib/module/diagnostics.js +85 -0
- package/lib/module/diagnostics.js.map +1 -0
- package/lib/module/errors.js +41 -0
- package/lib/module/errors.js.map +1 -0
- package/lib/module/experiment/experimentClient.js +84 -2
- package/lib/module/experiment/experimentClient.js.map +1 -1
- package/lib/module/experiment/index.js +1 -0
- package/lib/module/experiment/index.js.map +1 -1
- package/lib/module/experiment/stubClient.js +25 -0
- package/lib/module/experiment/stubClient.js.map +1 -1
- package/lib/module/experiment/transport/http.js +8 -2
- package/lib/module/experiment/transport/http.js.map +1 -1
- package/lib/module/experiment/typed-variants.js +43 -0
- package/lib/module/experiment/typed-variants.js.map +1 -0
- package/lib/module/experiment/types/config.js +31 -4
- package/lib/module/experiment/types/config.js.map +1 -1
- package/lib/module/index.js +15 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +60 -11
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/native/context.web.js +18 -0
- package/lib/module/native/context.web.js.map +1 -0
- package/lib/module/native/http.js +23 -8
- package/lib/module/native/http.js.map +1 -1
- package/lib/module/native/http.web.js +12 -0
- package/lib/module/native/http.web.js.map +1 -0
- package/lib/module/native/hybrid.web.js +16 -0
- package/lib/module/native/hybrid.web.js.map +1 -0
- package/lib/module/native/storage.js +27 -15
- package/lib/module/native/storage.js.map +1 -1
- package/lib/module/native/storage.web.js +128 -0
- package/lib/module/native/storage.web.js.map +1 -0
- package/lib/module/network.js +138 -0
- package/lib/module/network.js.map +1 -0
- package/lib/module/presets.js +110 -0
- package/lib/module/presets.js.map +1 -0
- package/lib/module/testing.js +160 -0
- package/lib/module/testing.js.map +1 -0
- package/lib/typescript/analytics/config.d.ts +19 -6
- package/lib/typescript/analytics/config.d.ts.map +1 -1
- package/lib/typescript/analytics/index.d.ts +1 -1
- package/lib/typescript/analytics/index.d.ts.map +1 -1
- package/lib/typescript/analytics/network-guarded-fetch-transport.d.ts +6 -0
- package/lib/typescript/analytics/network-guarded-fetch-transport.d.ts.map +1 -0
- package/lib/typescript/analytics/nitro-transport.d.ts.map +1 -1
- package/lib/typescript/analytics/plugins/context.d.ts +2 -0
- package/lib/typescript/analytics/plugins/context.d.ts.map +1 -1
- package/lib/typescript/analytics/react-native-client.d.ts +46 -6
- package/lib/typescript/analytics/react-native-client.d.ts.map +1 -1
- package/lib/typescript/diagnostics.d.ts +21 -0
- package/lib/typescript/diagnostics.d.ts.map +1 -0
- package/lib/typescript/errors.d.ts +9 -0
- package/lib/typescript/errors.d.ts.map +1 -0
- package/lib/typescript/experiment/experimentClient.d.ts +9 -1
- package/lib/typescript/experiment/experimentClient.d.ts.map +1 -1
- package/lib/typescript/experiment/index.d.ts +1 -0
- package/lib/typescript/experiment/index.d.ts.map +1 -1
- package/lib/typescript/experiment/stubClient.d.ts +6 -1
- package/lib/typescript/experiment/stubClient.d.ts.map +1 -1
- package/lib/typescript/experiment/transport/http.d.ts.map +1 -1
- package/lib/typescript/experiment/typed-variants.d.ts +9 -0
- package/lib/typescript/experiment/typed-variants.d.ts.map +1 -0
- package/lib/typescript/experiment/types/client.d.ts +21 -0
- package/lib/typescript/experiment/types/client.d.ts.map +1 -1
- package/lib/typescript/experiment/types/config.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +12 -3
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/index.web.d.ts +37 -8
- package/lib/typescript/index.web.d.ts.map +1 -1
- package/lib/typescript/native/context.web.d.ts +8 -0
- package/lib/typescript/native/context.web.d.ts.map +1 -0
- package/lib/typescript/native/http.d.ts.map +1 -1
- package/lib/typescript/native/http.web.d.ts +6 -0
- package/lib/typescript/native/http.web.d.ts.map +1 -0
- package/lib/typescript/native/hybrid.web.d.ts +8 -0
- package/lib/typescript/native/hybrid.web.d.ts.map +1 -0
- package/lib/typescript/native/storage.d.ts.map +1 -1
- package/lib/typescript/native/storage.web.d.ts +30 -0
- package/lib/typescript/native/storage.web.d.ts.map +1 -0
- package/lib/typescript/network.d.ts +50 -0
- package/lib/typescript/network.d.ts.map +1 -0
- package/lib/typescript/presets.d.ts +50 -0
- package/lib/typescript/presets.d.ts.map +1 -0
- package/lib/typescript/testing.d.ts +11 -0
- package/lib/typescript/testing.d.ts.map +1 -0
- package/package.json +4 -2
- package/src/analytics/config.ts +33 -8
- package/src/analytics/index.ts +3 -0
- package/src/analytics/network-guarded-fetch-transport.ts +10 -0
- package/src/analytics/nitro-transport.ts +2 -0
- package/src/analytics/plugins/context.ts +10 -1
- package/src/analytics/react-native-client.ts +238 -9
- package/src/diagnostics.ts +119 -0
- package/src/errors.ts +60 -0
- package/src/experiment/experimentClient.ts +116 -3
- package/src/experiment/index.ts +1 -0
- package/src/experiment/stubClient.ts +42 -1
- package/src/experiment/transport/http.ts +10 -2
- package/src/experiment/typed-variants.ts +68 -0
- package/src/experiment/types/client.ts +29 -0
- package/src/experiment/types/config.ts +29 -5
- package/src/index.ts +28 -2
- package/src/index.web.ts +89 -14
- package/src/native/context.web.ts +38 -0
- package/src/native/http.ts +38 -8
- package/src/native/http.web.ts +24 -0
- package/src/native/hybrid.web.ts +21 -0
- package/src/native/storage.ts +27 -25
- package/src/native/storage.web.ts +152 -0
- package/src/network.ts +258 -0
- package/src/presets.ts +208 -0
- package/src/testing.ts +177 -0
|
@@ -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";
|
|
@@ -10,7 +11,10 @@ import { isNative } from "./utils/platform";
|
|
|
10
11
|
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;
|
|
@@ -53,7 +57,8 @@ export class AmplitudeReactNative extends AmplitudeCore {
|
|
|
53
57
|
// Set up the analytics connector to integrate with the experiment SDK.
|
|
54
58
|
// Send events from the experiment SDK and forward identifies to the
|
|
55
59
|
// identity store.
|
|
56
|
-
const
|
|
60
|
+
const connectorInstanceName = this.getConnectorInstanceName();
|
|
61
|
+
const connector = getAnalyticsConnector(connectorInstanceName);
|
|
57
62
|
connector.identityStore.setIdentity({
|
|
58
63
|
userId: this.config.userId,
|
|
59
64
|
deviceId: this.config.deviceId
|
|
@@ -83,7 +88,7 @@ export class AmplitudeReactNative extends AmplitudeCore {
|
|
|
83
88
|
connector.eventBridge.setEventReceiver(event => {
|
|
84
89
|
this.handleInternalTrackPromise(this.track(event.eventType, event.eventProperties).promise);
|
|
85
90
|
});
|
|
86
|
-
|
|
91
|
+
activeConnectorOwnerIds.set(connectorInstanceName, this.connectorOwnerId);
|
|
87
92
|
} catch (error) {
|
|
88
93
|
if (appStateHandlerInstalled) {
|
|
89
94
|
this.appStateChangeHandler?.remove();
|
|
@@ -102,11 +107,12 @@ export class AmplitudeReactNative extends AmplitudeCore {
|
|
|
102
107
|
this.q = [];
|
|
103
108
|
this.dispatchQ = [];
|
|
104
109
|
this.isReady = false;
|
|
105
|
-
|
|
106
|
-
|
|
110
|
+
const connectorInstanceName = this.config ? this.getConnectorInstanceName() : undefined;
|
|
111
|
+
if (connectorInstanceName && activeConnectorOwnerIds.get(connectorInstanceName) === this.connectorOwnerId) {
|
|
112
|
+
const connector = getAnalyticsConnector(connectorInstanceName);
|
|
107
113
|
connector.eventBridge.setEventReceiver(() => undefined);
|
|
108
114
|
connector.identityStore.setIdentity({});
|
|
109
|
-
|
|
115
|
+
activeConnectorOwnerIds.delete(connectorInstanceName);
|
|
110
116
|
}
|
|
111
117
|
}
|
|
112
118
|
handleInternalTrackPromise(promise) {
|
|
@@ -114,6 +120,9 @@ export class AmplitudeReactNative extends AmplitudeCore {
|
|
|
114
120
|
this.config?.loggerProvider?.error(`Internal track call failed: ${String(error)}`);
|
|
115
121
|
});
|
|
116
122
|
}
|
|
123
|
+
getConnectorInstanceName() {
|
|
124
|
+
return this.config.instanceName ?? "$default_instance";
|
|
125
|
+
}
|
|
117
126
|
cancelDestinationFlushes() {
|
|
118
127
|
this.timeline.plugins.forEach(plugin => {
|
|
119
128
|
if (plugin.type !== "destination") {
|
|
@@ -155,7 +164,7 @@ export class AmplitudeReactNative extends AmplitudeCore {
|
|
|
155
164
|
return;
|
|
156
165
|
}
|
|
157
166
|
this.config.userId = userId;
|
|
158
|
-
setConnectorUserId(userId);
|
|
167
|
+
setConnectorUserId(userId, this.getConnectorInstanceName());
|
|
159
168
|
}
|
|
160
169
|
getDeviceId() {
|
|
161
170
|
return this.config?.deviceId;
|
|
@@ -166,7 +175,7 @@ export class AmplitudeReactNative extends AmplitudeCore {
|
|
|
166
175
|
return;
|
|
167
176
|
}
|
|
168
177
|
this.config.deviceId = deviceId;
|
|
169
|
-
setConnectorDeviceId(deviceId);
|
|
178
|
+
setConnectorDeviceId(deviceId, this.getConnectorInstanceName());
|
|
170
179
|
}
|
|
171
180
|
identify(identify, eventOptions) {
|
|
172
181
|
if (eventOptions?.user_id) {
|
|
@@ -184,6 +193,84 @@ export class AmplitudeReactNative extends AmplitudeCore {
|
|
|
184
193
|
getSessionId() {
|
|
185
194
|
return this.config?.sessionId;
|
|
186
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
|
+
}
|
|
187
274
|
getIdentity() {
|
|
188
275
|
return {
|
|
189
276
|
userId: this.getUserId(),
|
|
@@ -209,6 +296,61 @@ export class AmplitudeReactNative extends AmplitudeCore {
|
|
|
209
296
|
}
|
|
210
297
|
this.config.lastEventTime = this.currentTimeMillis();
|
|
211
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
|
+
}
|
|
212
354
|
setSessionIdInternal(sessionId, eventTime) {
|
|
213
355
|
const previousSessionId = this.config.sessionId;
|
|
214
356
|
if (previousSessionId === sessionId) {
|
|
@@ -330,6 +472,7 @@ export const createInstance = () => {
|
|
|
330
472
|
setGroup: debugWrapper(client.setGroup.bind(client), "setGroup", getClientLogConfig(client), getClientStates(client, ["config.apiKey", "timeline.queue.length"])),
|
|
331
473
|
revenue: debugWrapper(client.revenue.bind(client), "revenue", getClientLogConfig(client), getClientStates(client, ["config.apiKey", "timeline.queue.length"])),
|
|
332
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"])),
|
|
333
476
|
getUserId: debugWrapper(client.getUserId.bind(client), "getUserId", getClientLogConfig(client), getClientStates(client, ["config", "config.userId"])),
|
|
334
477
|
setUserId: debugWrapper(client.setUserId.bind(client), "setUserId", getClientLogConfig(client), getClientStates(client, ["config", "config.userId"])),
|
|
335
478
|
getDeviceId: debugWrapper(client.getDeviceId.bind(client), "getDeviceId", getClientLogConfig(client), getClientStates(client, ["config", "config.deviceId"])),
|
|
@@ -339,7 +482,9 @@ export const createInstance = () => {
|
|
|
339
482
|
setSessionId: debugWrapper(client.setSessionId.bind(client), "setSessionId", getClientLogConfig(client), getClientStates(client, ["config"])),
|
|
340
483
|
extendSession: debugWrapper(client.extendSession.bind(client), "extendSession", getClientLogConfig(client), getClientStates(client, ["config"])),
|
|
341
484
|
setOptOut: debugWrapper(client.setOptOut.bind(client), "setOptOut", getClientLogConfig(client), getClientStates(client, ["config"])),
|
|
342
|
-
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"]))
|
|
343
488
|
};
|
|
344
489
|
};
|
|
345
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","activeConnectorOwnerId","AmplitudeReactNative","appState","connectorOwnerId","init","apiKey","userId","options","initPromise","_init","finally","undefined","initializing","explicitSessionId","sessionId","appStateHandlerInstalled","oldCookies","reactNativeOptions","deviceId","optOut","lastEventTime","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","error","shutdown","cancelDestinationFlushes","timeline","reset","q","dispatchQ","isReady","catch","String","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":";;AAKA,SAASA,QAAQ,QAAQ,4BAA4B;AACrD,SAASC,qBAAqB,QAAQ,UAAU;AAChD,SAASC,iBAAiB,QAAQ,WAAW;AAqB7C,IAAIC,eAAsD;AAE1D,SAASC,eAAeA,CAAA,EAAiB;EACvC,IAAIJ,QAAQ,CAAC,CAAC,EAAE;IACd,OAAOK,OAAO,CAAC,iBAAiB,CAAC;EACnC;EACA,OAAOA,OAAO,CAAC,qBAAqB,CAAC;AACvC;AAEA,OAAO,SAASC,kBAAkBA,CAAA,EAA0C;EAC1E,OAAOH,eAAe;AACxB;AAEA,OAAO,SAASI,2BAA2BA,CAAA,EAA6B;EACtE,MAAMC,MAAgC,GAAG;IACvCC,qBAAqB,EAAE,IAAI;IAC3BC,gBAAgB,EAAE,KAAK;IACvBC,gBAAgB,EAAE,KAAK;IACvBC,eAAe,EAAE,KAAK;IACtBC,eAAe,EAAE,KAAK;IACtBC,SAAS,EAAEX;EACb,CAAC;EAED,IAAI;IACF,MAAM;MAAEY,mBAAmB;MAAEC,mBAAmB;MAAEC;IAAmB,CAAC,GACpEb,eAAe,CAAC,CAAC;IACnBW,mBAAmB,CAAC,CAAC;IACrBP,MAAM,CAACE,gBAAgB,GAAG,IAAI;IAC9BM,mBAAmB,CAAC,CAAC;IACrBR,MAAM,CAACG,gBAAgB,GAAG,IAAI;IAC9BM,kBAAkB,CAAC,CAAC;IACpBT,MAAM,CAACI,eAAe,GAAG,IAAI;IAC7BJ,MAAM,CAACK,eAAe,GAAG,IAAI;IAC7BV,eAAe,GAAGe,SAAS;IAC3BV,MAAM,CAACM,SAAS,GAAGI,SAAS;EAC9B,CAAC,CAAC,OAAOC,KAAK,EAAE;IACdhB,eAAe,GAAG;MAChBiB,IAAI,EAAEnB,qBAAqB,CAACkB,KAAK,CAAC;MAClCE,OAAO,EAAEF,KAAK,YAAYG,KAAK,GAAGH,KAAK,CAACE,OAAO,GAAGE,MAAM,CAACJ,KAAK;IAChE,CAAC;IACDX,MAAM,CAACC,qBAAqB,GAAG,KAAK;IACpCD,MAAM,CAACM,SAAS,GAAGX,eAAe;EACpC;EAEA,OAAOK,MAAM;AACf;AAEA,OAAO,SAASgB,uBAAuBA,CACrCC,SAAqC,EACf;EACtB,OAAO;IACL,GAAGA,SAAS,CAACC,cAAc,CAAC,CAAC;IAC7BC,MAAM,EAAEpB,2BAA2B,CAAC,CAAC;IACrCqB,cAAc,EAAE1B,iBAAiB,CAAC;EACpC,CAAC;AACH;AAEA,OAAO,eAAe2B,WAAWA,CAC/BJ,SAAsC,EACD;EACrC,MAAMK,MAAgB,GAAG,EAAE;EAC3B,MAAMH,MAAM,GAAGpB,2BAA2B,CAAC,CAAC;EAC5C,IAAIwB,eAAe,GAAG,KAAK;EAE3B,IAAI;IACF,MAAM;MAAEf;IAAoB,CAAC,GAAGZ,eAAe,CAAC,CAAC;IACjD,MAAM4B,OAAO,GAAGhB,mBAAmB,CAAC,CAAC;IACrC,MAAMiB,GAAG,GAAG,WAAWC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;IACnCH,OAAO,CAACI,GAAG,CAACH,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;IAC7BF,eAAe,GAAGC,OAAO,CAACK,GAAG,CAACJ,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI;IAClDD,OAAO,CAACM,MAAM,CAACL,GAAG,EAAE,KAAK,CAAC;EAC5B,CAAC,CAAC,OAAOd,KAAK,EAAE;IACdW,MAAM,CAACS,IAAI,CAACpB,KAAK,YAAYG,KAAK,GAAGH,KAAK,CAACE,OAAO,GAAGE,MAAM,CAACJ,KAAK,CAAC,CAAC;EACrE;EAEA,IAAI,CAACQ,MAAM,CAACd,eAAe,IAAIc,MAAM,CAACb,SAAS,EAAE;IAC/CgB,MAAM,CAACS,IAAI,CAACZ,MAAM,CAACb,SAAS,CAACO,OAAO,CAAC;EACvC;EAEA,MAAMmB,oBAAoB,GAAGf,SAAS,GAClCA,SAAS,CAACC,cAAc,CAAC,CAAC,CAACe,WAAW,GACtC,KAAK;EAET,OAAO;IACLC,EAAE,EAAEf,MAAM,CAACd,eAAe,IAAIkB,eAAe;IAC7CS,oBAAoB;IACpB3B,eAAe,EAAEc,MAAM,CAACd,eAAe;IACvCkB,eAAe;IACfD;EACF,CAAC;AACH","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
|
-
|
|
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);
|