react-native-nitro-amplitude 0.2.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +387 -8
- package/cpp/bindings/HybridAmplitudeWorker.cpp +5 -1
- 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 +142 -1
- 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/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 +110 -12
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/native/http.js +23 -8
- package/lib/commonjs/native/http.js.map +1 -1
- package/lib/commonjs/native/http.web.js +2 -0
- package/lib/commonjs/native/http.web.js.map +1 -1
- 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/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 +141 -1
- 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/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 +19 -6
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/native/http.js +23 -8
- package/lib/module/native/http.js.map +1 -1
- package/lib/module/native/http.web.js +2 -0
- package/lib/module/native/http.web.js.map +1 -1
- 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/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 +43 -0
- 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/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 +16 -6
- package/lib/typescript/index.web.d.ts.map +1 -1
- package/lib/typescript/native/http.d.ts.map +1 -1
- package/lib/typescript/native/http.web.d.ts.map +1 -1
- 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/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 +1 -1
- 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 +217 -0
- 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/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 +33 -5
- package/src/native/http.ts +38 -8
- package/src/native/http.web.ts +2 -0
- package/src/native/hybrid.web.ts +21 -0
- package/src/native/storage.ts +27 -25
- package/src/network.ts +258 -0
- package/src/presets.ts +208 -0
- package/src/testing.ts +177 -0
package/README.md
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
# react-native-nitro-amplitude
|
|
2
2
|
|
|
3
|
-
[](https://github.com/JoaoPauloCMarra/react-native-nitro-amplitude/blob/main/LICENSE)
|
|
3
|
+
[](https://www.npmjs.com/package/react-native-nitro-amplitude)
|
|
4
|
+
[](https://opensource.org/license/mit)
|
|
6
5
|
[](https://reactnative.dev/)
|
|
7
6
|
[](https://expo.dev/)
|
|
8
7
|
[](https://nitro.margelo.com/)
|
|
@@ -33,7 +32,7 @@ context, storage, and background HTTP transport. Web builds use the package's
|
|
|
33
32
|
## Install
|
|
34
33
|
|
|
35
34
|
```sh
|
|
36
|
-
bun add react-native-nitro-amplitude react-native-nitro-modules@>=0.35.7
|
|
35
|
+
bun add react-native-nitro-amplitude "react-native-nitro-modules@>=0.35.7"
|
|
37
36
|
```
|
|
38
37
|
|
|
39
38
|
Peer dependencies:
|
|
@@ -147,6 +146,269 @@ await experiment.fetch({
|
|
|
147
146
|
});
|
|
148
147
|
```
|
|
149
148
|
|
|
149
|
+
## Durable storage preset
|
|
150
|
+
|
|
151
|
+
The package works without app configuration, but production apps usually want
|
|
152
|
+
Analytics queue storage, Analytics session storage, and Experiment variant
|
|
153
|
+
storage to survive restarts together:
|
|
154
|
+
|
|
155
|
+
```ts
|
|
156
|
+
import {
|
|
157
|
+
Experiment,
|
|
158
|
+
createDurableAmplitudeStoragePreset,
|
|
159
|
+
init,
|
|
160
|
+
} from "react-native-nitro-amplitude";
|
|
161
|
+
|
|
162
|
+
const storage = createDurableAmplitudeStoragePreset({ namespace: "main" });
|
|
163
|
+
|
|
164
|
+
await init("AMPLITUDE_API_KEY", "user-id", {
|
|
165
|
+
instanceName: "main",
|
|
166
|
+
...storage.analytics,
|
|
167
|
+
}).promise;
|
|
168
|
+
|
|
169
|
+
const experiment = Experiment.initializeWithAmplitudeAnalytics(
|
|
170
|
+
"AMPLITUDE_EXPERIMENT_DEPLOYMENT_KEY",
|
|
171
|
+
{
|
|
172
|
+
instanceName: "main",
|
|
173
|
+
...storage.experiment,
|
|
174
|
+
},
|
|
175
|
+
);
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
| State | Default | Durable preset |
|
|
179
|
+
| ------------------------------ | ----------------------------------------- | --------------------------------------- |
|
|
180
|
+
| Analytics event queue | Nitro-backed event storage | Nitro-backed event storage |
|
|
181
|
+
| Analytics session/cookie state | React Native local storage fallback | Nitro-backed session storage |
|
|
182
|
+
| User ID and device ID | Stored in session/cookie state after init | Stored in Nitro-backed session storage |
|
|
183
|
+
| Experiment variants | Nitro memory storage by default | Nitro-backed persistent variant storage |
|
|
184
|
+
| Exposure dedupe state | In memory per Experiment client session | In memory per Experiment client session |
|
|
185
|
+
|
|
186
|
+
`createPersistentAmplitudeConfig()` is an alias for the same preset. The
|
|
187
|
+
namespace isolates multiple app environments and instances.
|
|
188
|
+
|
|
189
|
+
## Combined client
|
|
190
|
+
|
|
191
|
+
Use `createAmplitudeClient` when Analytics and Experiment should share instance
|
|
192
|
+
name, identity, device ID, durable storage, and dry-run options:
|
|
193
|
+
|
|
194
|
+
```ts
|
|
195
|
+
import { createAmplitudeClient } from "react-native-nitro-amplitude";
|
|
196
|
+
|
|
197
|
+
const amplitude = createAmplitudeClient({
|
|
198
|
+
analyticsApiKey: "AMPLITUDE_API_KEY",
|
|
199
|
+
experimentDeploymentKey: "AMPLITUDE_EXPERIMENT_DEPLOYMENT_KEY",
|
|
200
|
+
instanceName: "main",
|
|
201
|
+
userId: "user-id",
|
|
202
|
+
durableStorage: true,
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
await amplitude.init();
|
|
206
|
+
await amplitude.experiment.fetch();
|
|
207
|
+
const variant = amplitude.experiment.variant("checkout-copy");
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
When `Experiment.initializeWithAmplitudeAnalytics` or `createAmplitudeClient`
|
|
211
|
+
uses the same `instanceName` as Analytics, the Experiment user provider reads
|
|
212
|
+
the Analytics user ID and device ID through Amplitude's connector. Multiple
|
|
213
|
+
Analytics instances are isolated by `instanceName`. TypeScript treats
|
|
214
|
+
`amplitude.experiment` as required when `experimentDeploymentKey` is present and
|
|
215
|
+
optional when the combined client is Analytics-only.
|
|
216
|
+
|
|
217
|
+
## Diagnostics and health checks
|
|
218
|
+
|
|
219
|
+
```ts
|
|
220
|
+
import {
|
|
221
|
+
getDiagnostics,
|
|
222
|
+
getLastNativeError,
|
|
223
|
+
healthCheck,
|
|
224
|
+
} from "react-native-nitro-amplitude";
|
|
225
|
+
|
|
226
|
+
const diagnostics = getDiagnostics();
|
|
227
|
+
const health = await healthCheck();
|
|
228
|
+
const lastNativeError = getLastNativeError();
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
Diagnostics expose initialized state, queue size, last flush time, last flush
|
|
232
|
+
duration, last flush error, user ID, device ID, session ID, active instance
|
|
233
|
+
names, network-enabled state, native HybridObject availability, and storage
|
|
234
|
+
writability. On native, `healthCheck()` verifies that native bindings can be
|
|
235
|
+
reached and storage can round-trip a value. On web, diagnostics intentionally
|
|
236
|
+
report `nativeAvailable: false` while browser fetch and storage fallbacks remain
|
|
237
|
+
usable.
|
|
238
|
+
|
|
239
|
+
Structured errors use stable codes: `not_initialized`, `network_error`,
|
|
240
|
+
`storage_error`, `invalid_api_key`, `invalid_deployment_key`,
|
|
241
|
+
`experiment_fetch_failed`, `native_unavailable`, `serialization_error`,
|
|
242
|
+
`event_too_large`, `timeout`, and `unknown`.
|
|
243
|
+
|
|
244
|
+
## Network controls and dry-run transport
|
|
245
|
+
|
|
246
|
+
```ts
|
|
247
|
+
import {
|
|
248
|
+
clearDryRunTransportRecords,
|
|
249
|
+
dryRunHttpClient,
|
|
250
|
+
dryRunTransport,
|
|
251
|
+
getDryRunTransportRecords,
|
|
252
|
+
setNetworkEnabled,
|
|
253
|
+
} from "react-native-nitro-amplitude";
|
|
254
|
+
|
|
255
|
+
setNetworkEnabled(false);
|
|
256
|
+
clearDryRunTransportRecords();
|
|
257
|
+
|
|
258
|
+
await init("AMPLITUDE_API_KEY", "benchmark-user", {
|
|
259
|
+
transportProvider: dryRunTransport,
|
|
260
|
+
}).promise;
|
|
261
|
+
|
|
262
|
+
const experiment = Experiment.initialize("DEPLOYMENT_KEY", {
|
|
263
|
+
httpClient: dryRunHttpClient,
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
const captured = getDryRunTransportRecords();
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
Use dry-run transport for QA screens, test runs, and benchmark-safe validation.
|
|
270
|
+
For side-by-side benchmarks, do not point both SDKs at production projects.
|
|
271
|
+
Either use dry-run transport or isolated Amplitude dev/benchmark projects.
|
|
272
|
+
|
|
273
|
+
## Request timing and performance debugging
|
|
274
|
+
|
|
275
|
+
Use the timing wrappers to split slow paths into HTTP time and app/package code
|
|
276
|
+
time without changing native code:
|
|
277
|
+
|
|
278
|
+
```ts
|
|
279
|
+
import {
|
|
280
|
+
createNetworkTimingBuffer,
|
|
281
|
+
createTimedAnalyticsTransport,
|
|
282
|
+
createTimedHttpClient,
|
|
283
|
+
init,
|
|
284
|
+
nitroHttpClient,
|
|
285
|
+
nitroTransport,
|
|
286
|
+
Experiment,
|
|
287
|
+
} from "react-native-nitro-amplitude";
|
|
288
|
+
|
|
289
|
+
const timings = createNetworkTimingBuffer(20);
|
|
290
|
+
|
|
291
|
+
await init("AMPLITUDE_API_KEY", "user-id", {
|
|
292
|
+
transportProvider: createTimedAnalyticsTransport(
|
|
293
|
+
nitroTransport,
|
|
294
|
+
timings.record,
|
|
295
|
+
),
|
|
296
|
+
}).promise;
|
|
297
|
+
|
|
298
|
+
const experiment = Experiment.initialize("DEPLOYMENT_KEY", {
|
|
299
|
+
httpClient: createTimedHttpClient(nitroHttpClient, timings.record),
|
|
300
|
+
});
|
|
301
|
+
|
|
302
|
+
console.log(timings.getTimings());
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
For Analytics, `track()` measures queue/code execution and `flushWithResult()`
|
|
306
|
+
is the request-backed path. For Experiment, `fetchWithMetadata()` is the
|
|
307
|
+
request-backed path and `variantWithMetadata()` measures cached variant
|
|
308
|
+
resolution plus exposure enqueue behavior. The example app shows both the last
|
|
309
|
+
request and a bounded request history so slow runs can be compared directly.
|
|
310
|
+
|
|
311
|
+
## Flush and fetch metadata
|
|
312
|
+
|
|
313
|
+
`flushWithResult()` returns sent, failed, dropped, retried, and reason fields
|
|
314
|
+
around the underlying Analytics flush result.
|
|
315
|
+
|
|
316
|
+
`experiment.fetchWithMetadata()` returns fetched flag keys, cache hit status,
|
|
317
|
+
duration, source, and failure reason. `variantWithMetadata()` returns the
|
|
318
|
+
variant, source, fallback status, stale status, and fallback/failure reason.
|
|
319
|
+
Repeated simultaneous Experiment fetches are deduplicated by sharing the
|
|
320
|
+
in-flight request.
|
|
321
|
+
|
|
322
|
+
```ts
|
|
323
|
+
const flush = await flushWithResult();
|
|
324
|
+
const fetch = await experiment.fetchWithMetadata(undefined, {
|
|
325
|
+
flagKeys: ["checkout-copy"],
|
|
326
|
+
});
|
|
327
|
+
const variant = experiment.variantWithMetadata("checkout-copy", "control");
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
`clearVariants()` clears cached variants without resetting Analytics identity.
|
|
331
|
+
`hasCachedVariant(flagKey)` checks whether a flag currently has a cached
|
|
332
|
+
variant.
|
|
333
|
+
|
|
334
|
+
## Experiment behavior
|
|
335
|
+
|
|
336
|
+
`fetch()` contacts Amplitude Experiment and stores returned variants. `variant()`
|
|
337
|
+
reads from the configured source and, when `automaticExposureTracking` is true,
|
|
338
|
+
sends an exposure through the configured exposure provider. `exposure()` sends
|
|
339
|
+
an exposure explicitly for a previously resolved key. `fetch()` does not send
|
|
340
|
+
exposures by itself.
|
|
341
|
+
|
|
342
|
+
If no exposure provider is configured, exposure calls are no-ops. The provider
|
|
343
|
+
is configured automatically when using
|
|
344
|
+
`Experiment.initializeWithAmplitudeAnalytics`.
|
|
345
|
+
|
|
346
|
+
Typed helpers are available for common flag shapes:
|
|
347
|
+
|
|
348
|
+
```ts
|
|
349
|
+
import {
|
|
350
|
+
variantBoolean,
|
|
351
|
+
variantJson,
|
|
352
|
+
variantNumber,
|
|
353
|
+
variantPayload,
|
|
354
|
+
variantString,
|
|
355
|
+
} from "react-native-nitro-amplitude";
|
|
356
|
+
|
|
357
|
+
const enabled = variantBoolean(experiment, "new-flow", false);
|
|
358
|
+
const label = variantString(experiment, "button-label", "Continue");
|
|
359
|
+
const limit = variantNumber(experiment, "max-items", 10);
|
|
360
|
+
const config = variantJson(experiment, "layout-json", { columns: 1 });
|
|
361
|
+
const payload = variantPayload(experiment, "payload-flag", { color: "blue" });
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
## Privacy, lifecycle, and identity recipes
|
|
365
|
+
|
|
366
|
+
Use `setOptOut(true)` to stop tracking, `reset()` to clear Analytics user ID and
|
|
367
|
+
rotate the device ID, and the durable storage preset `clear()` helper to clear
|
|
368
|
+
package-managed persisted state for a namespace.
|
|
369
|
+
|
|
370
|
+
Recommended sign-out sequence:
|
|
371
|
+
|
|
372
|
+
1. `await flushWithResult()`
|
|
373
|
+
2. `experiment.clearVariants()`
|
|
374
|
+
3. `reset()`
|
|
375
|
+
4. `setUserId(undefined)`
|
|
376
|
+
5. Clear app-owned user properties and app-owned experiment state
|
|
377
|
+
|
|
378
|
+
Recommended user switch sequence:
|
|
379
|
+
|
|
380
|
+
1. `await flushWithResult()` for the previous user
|
|
381
|
+
2. `experiment.clearVariants()`
|
|
382
|
+
3. `setUserId(nextUserId)`
|
|
383
|
+
4. `await experiment.fetch({ user_id: nextUserId })`
|
|
384
|
+
5. Render the first screen that depends on Experiment assignments
|
|
385
|
+
|
|
386
|
+
Consent-gated apps should wait to call `init()` until consent is granted. To
|
|
387
|
+
avoid pre-consent network traffic in test or privacy states, call
|
|
388
|
+
`setNetworkEnabled(false)` before initialization and use dry-run transport.
|
|
389
|
+
|
|
390
|
+
Client keys and deployment keys are not server secrets, but they should be
|
|
391
|
+
environment-specific and excluded from logs. Diagnostics intentionally expose
|
|
392
|
+
state shape and status rather than event property values.
|
|
393
|
+
|
|
394
|
+
## Native rebuild and Expo plugin
|
|
395
|
+
|
|
396
|
+
Installing the package changes native code. Metro reload is not enough. Rebuild
|
|
397
|
+
or prebuild the native app after installation, Nitro version changes, config
|
|
398
|
+
plugin changes, or React Native upgrades.
|
|
399
|
+
|
|
400
|
+
The Expo config plugin injects Android application context setup required by the
|
|
401
|
+
native Analytics adapter and lets Expo autolinking include the Nitro module.
|
|
402
|
+
After `bunx expo prebuild`, verify:
|
|
403
|
+
|
|
404
|
+
- Android `MainApplication.onCreate` calls `AndroidAmplitudeAdapter.setContext`.
|
|
405
|
+
- iOS Pods include `react-native-nitro-amplitude`.
|
|
406
|
+
- The app launches without a `NitroModules.createHybridObject` failure.
|
|
407
|
+
- `healthCheck()` reports `nativeAvailable: true`.
|
|
408
|
+
|
|
409
|
+
For Expo Doctor, this package may not appear in React Native Directory checks.
|
|
410
|
+
Exclude it from directory validation if your app enforces that check.
|
|
411
|
+
|
|
150
412
|
## Compatibility imports
|
|
151
413
|
|
|
152
414
|
The root entry exports Analytics and Experiment APIs for new code:
|
|
@@ -166,6 +428,11 @@ import { Experiment } from "react-native-nitro-amplitude/experiment";
|
|
|
166
428
|
`amplitude-rn-analytics`. `react-native-nitro-amplitude/experiment` mirrors the
|
|
167
429
|
public entrypoint shape of `amplitude-rn-experiment`.
|
|
168
430
|
|
|
431
|
+
Import app-facing APIs from the root package unless you are preserving old
|
|
432
|
+
import paths during a migration. The `/analytics` and `/experiment` subpaths are
|
|
433
|
+
stable compatibility paths. Do not import from `src`, `lib`, `native`, or other
|
|
434
|
+
private package internals.
|
|
435
|
+
|
|
169
436
|
## TypeScript
|
|
170
437
|
|
|
171
438
|
The package ships generated declaration files and re-exports the public
|
|
@@ -173,10 +440,14 @@ Analytics and Experiment types used by the implementation:
|
|
|
173
440
|
|
|
174
441
|
```ts
|
|
175
442
|
import type {
|
|
443
|
+
AmplitudeNetworkTimingBuffer,
|
|
176
444
|
ExperimentConfig,
|
|
445
|
+
ExperimentFetchResult,
|
|
446
|
+
ExperimentVariantResult,
|
|
177
447
|
Logger,
|
|
178
448
|
Variant,
|
|
179
449
|
} from "react-native-nitro-amplitude";
|
|
450
|
+
import { createNetworkTimingBuffer } from "react-native-nitro-amplitude";
|
|
180
451
|
import type { ReactNativeOptions } from "react-native-nitro-amplitude/analytics";
|
|
181
452
|
|
|
182
453
|
const analyticsOptions = {
|
|
@@ -189,10 +460,39 @@ const experimentConfig = {
|
|
|
189
460
|
automaticExposureTracking: true,
|
|
190
461
|
serverZone: "US",
|
|
191
462
|
} satisfies ExperimentConfig;
|
|
463
|
+
|
|
464
|
+
const lastTimings: AmplitudeNetworkTimingBuffer = createNetworkTimingBuffer(20);
|
|
465
|
+
|
|
466
|
+
function handleFetchResult(result: ExperimentFetchResult): void {
|
|
467
|
+
const failureReason = result.fetched ? undefined : result.failureReason;
|
|
468
|
+
void failureReason;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
function handleVariantResult(result: ExperimentVariantResult): Variant {
|
|
472
|
+
return result.variant;
|
|
473
|
+
}
|
|
192
474
|
```
|
|
193
475
|
|
|
194
476
|
Prefer `satisfies` for configuration objects so TypeScript keeps literal values
|
|
195
|
-
while still checking option names and value types.
|
|
477
|
+
while still checking option names and value types. The root package also
|
|
478
|
+
exports structured result and diagnostics types such as
|
|
479
|
+
`AmplitudeDiagnostics`, `AmplitudeErrorCode`, `AmplitudeNetworkTiming`,
|
|
480
|
+
`AmplitudeNetworkTimingBuffer`, `ExperimentFetchResult`, and
|
|
481
|
+
`ExperimentVariantResult` so app code can avoid stringly typed wrappers.
|
|
482
|
+
|
|
483
|
+
Test helpers are typed and can be imported from the root package:
|
|
484
|
+
|
|
485
|
+
```ts
|
|
486
|
+
import {
|
|
487
|
+
createFakeExperimentStorage,
|
|
488
|
+
createMockAmplitudeClient,
|
|
489
|
+
createMockExperimentClient,
|
|
490
|
+
} from "react-native-nitro-amplitude";
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
The package's CI validates strict public types, documented root exports,
|
|
494
|
+
compatibility subpaths, and representative README examples through type tests
|
|
495
|
+
and import smoke tests.
|
|
196
496
|
|
|
197
497
|
## Web
|
|
198
498
|
|
|
@@ -215,6 +515,10 @@ native module is loaded on web.
|
|
|
215
515
|
| `AmplitudeStorage` | Memory and disk KV for analytics/experiment |
|
|
216
516
|
| `AmplitudeWorker` | Background HTTP queue for upload/fetch requests |
|
|
217
517
|
|
|
518
|
+
If Nitro bindings are unavailable, rebuild the native app. Typical causes are a
|
|
519
|
+
missing prebuild, Pods not installed, Gradle cache using an old native project,
|
|
520
|
+
Hermes/New Architecture mismatch, or a Nitro Modules peer version mismatch.
|
|
521
|
+
|
|
218
522
|
## Platform support
|
|
219
523
|
|
|
220
524
|
| Platform | Analytics | Experiment | Native Nitro |
|
|
@@ -223,6 +527,81 @@ native module is loaded on web.
|
|
|
223
527
|
| Android | Yes | Yes | Yes |
|
|
224
528
|
| Web | Yes | Yes | No |
|
|
225
529
|
|
|
530
|
+
The package targets Hermes and the React Native New Architecture through Nitro
|
|
531
|
+
Modules. Tested release lanes use React Native 0.85, Expo SDK 56, Nitro Modules
|
|
532
|
+
0.35.7, Xcode 26, iOS 18+, Android Gradle Plugin from the Expo SDK 56 template,
|
|
533
|
+
and Android minSdk from the example template. Older RN versions are allowed by
|
|
534
|
+
peer range but should be validated in the consuming app.
|
|
535
|
+
|
|
536
|
+
Android ships consumer R8 rules with the package. iOS and Android release
|
|
537
|
+
builds should be part of app-level release validation when Analytics or
|
|
538
|
+
Experiment behavior is release-critical.
|
|
539
|
+
|
|
540
|
+
## Troubleshooting
|
|
541
|
+
|
|
542
|
+
- `Nitro module not found`: rebuild native projects, reinstall Pods, clean
|
|
543
|
+
Gradle/CMake outputs, and confirm `react-native-nitro-modules` peer version.
|
|
544
|
+
- No events in dashboard: check API key, server zone, opt-out state, network
|
|
545
|
+
state, flush result, and whether dry-run transport is configured.
|
|
546
|
+
- Experiment fetch returns no variant: check deployment key, flag key, user ID,
|
|
547
|
+
device ID, server zone, and `fetchWithMetadata()` failure reason.
|
|
548
|
+
- Missing deployment key: validate configuration before app startup and avoid
|
|
549
|
+
falling back to production keys in development.
|
|
550
|
+
- Hermes issues: confirm the app is rebuilt after installing Nitro Modules and
|
|
551
|
+
that the native module is present in the generated app.
|
|
552
|
+
- Pods or Gradle failures: run clean prebuild, reinstall Pods, and inspect the
|
|
553
|
+
package-owned `app.plugin.js`, podspec, Gradle, CMake, and generated Nitro
|
|
554
|
+
files first.
|
|
555
|
+
|
|
556
|
+
## Production checklist
|
|
557
|
+
|
|
558
|
+
- Use separate Analytics API keys and Experiment deployment keys for dev,
|
|
559
|
+
staging, benchmark, and production.
|
|
560
|
+
- Choose US or EU server zone consistently across Analytics and Experiment.
|
|
561
|
+
- Configure durable storage if sessions, queued events, or variants must
|
|
562
|
+
survive restarts.
|
|
563
|
+
- Define consent, opt-out, sign-out, user-switch, and local data clearing
|
|
564
|
+
behavior before release.
|
|
565
|
+
- Verify Android debug, Android release, iOS debug, and iOS release builds.
|
|
566
|
+
- Confirm events, identify calls, Experiment fetches, variants, exposures, and
|
|
567
|
+
flushes in Amplitude dashboards without logging keys or sensitive properties.
|
|
568
|
+
- Capture timing output for `track`, `flushWithResult`, `fetchWithMetadata`,
|
|
569
|
+
`variantWithMetadata`, and exposure in the example app.
|
|
570
|
+
- Confirm slow paths are either HTTP latency or local code time before changing
|
|
571
|
+
package internals.
|
|
572
|
+
- Capture `getDiagnostics()`, `healthCheck()`, package version, React Native
|
|
573
|
+
version, platform, and redacted app config when reporting support issues.
|
|
574
|
+
|
|
575
|
+
## Known limitations
|
|
576
|
+
|
|
577
|
+
- Legacy Amplitude SDK SQLite migration hooks are stubbed.
|
|
578
|
+
- Exposure dedupe state is in memory for the current Experiment client session.
|
|
579
|
+
- Background uploads are not guaranteed after process suspension; flush on
|
|
580
|
+
foreground/background transitions from app code when required.
|
|
581
|
+
- Event plan validation, reserved-property enforcement, event-size enforcement,
|
|
582
|
+
custom proxy/base URL examples, and local fake Experiment server support are
|
|
583
|
+
extension points rather than mandatory runtime behavior in this release.
|
|
584
|
+
- Tree shaking depends on the consuming bundler. Analytics-only apps should use
|
|
585
|
+
root or `/analytics` imports consistently and validate bundle output in their
|
|
586
|
+
own Metro setup.
|
|
587
|
+
|
|
588
|
+
## Benchmarks
|
|
589
|
+
|
|
590
|
+
Use dry-run transport or isolated benchmark projects so local measurements do
|
|
591
|
+
not pollute production Amplitude data. The repo benchmark gate is:
|
|
592
|
+
|
|
593
|
+
```sh
|
|
594
|
+
bun run benchmark
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
Native latency numbers depend on the device, build type, network, server zone,
|
|
598
|
+
and whether dry-run transport is used. Record cold start, repeated `track()`,
|
|
599
|
+
HTTP duration and total duration for `flushWithResult()`, HTTP duration and SDK
|
|
600
|
+
duration for `fetchWithMetadata()`, variant read latency, and exposure enqueue
|
|
601
|
+
latency separately for Android and iOS. Treat `createTimedAnalyticsTransport`
|
|
602
|
+
and `createTimedHttpClient` output as the first debug signal before profiling
|
|
603
|
+
native code.
|
|
604
|
+
|
|
226
605
|
## Development
|
|
227
606
|
|
|
228
607
|
From the repository root:
|
|
@@ -244,9 +623,9 @@ bun run example:ios
|
|
|
244
623
|
bun run example:smoke
|
|
245
624
|
```
|
|
246
625
|
|
|
247
|
-
|
|
248
|
-
|
|
626
|
+
Package invariants and release requirements live in `AGENTS.md` in this
|
|
627
|
+
repository.
|
|
249
628
|
|
|
250
629
|
## License
|
|
251
630
|
|
|
252
|
-
[MIT](https://
|
|
631
|
+
[MIT](https://opensource.org/license/mit)
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
namespace margelo::nitro::NitroAmplitude {
|
|
17
17
|
|
|
18
18
|
namespace {
|
|
19
|
+
constexpr int kDefaultTimeoutMillis = 10000;
|
|
20
|
+
constexpr int kMaxTimeoutMillis = 300000;
|
|
21
|
+
|
|
19
22
|
std::shared_ptr<::NitroAmplitude::NativeAmplitudeAdapter> createPlatformAdapter() {
|
|
20
23
|
#ifndef NITRO_AMPLITUDE_DISABLE_PLATFORM_ADAPTER
|
|
21
24
|
#if __APPLE__
|
|
@@ -60,8 +63,9 @@ void HybridAmplitudeWorker::enqueue(
|
|
|
60
63
|
throw std::runtime_error("NitroAmplitude: Invalid HTTP request");
|
|
61
64
|
}
|
|
62
65
|
if (std::isnan(timeoutMillis) || std::isinf(timeoutMillis) || timeoutMillis <= 0.0) {
|
|
63
|
-
timeoutMillis =
|
|
66
|
+
timeoutMillis = kDefaultTimeoutMillis;
|
|
64
67
|
}
|
|
68
|
+
timeoutMillis = std::min(std::ceil(timeoutMillis), static_cast<double>(kMaxTimeoutMillis));
|
|
65
69
|
|
|
66
70
|
WorkerRequest request{
|
|
67
71
|
requestId,
|
|
@@ -7,9 +7,30 @@ exports.useReactNativeConfig = exports.getTopLevelDomain = exports.getDefaultCon
|
|
|
7
7
|
var _analyticsCore = require("@amplitude/analytics-core");
|
|
8
8
|
var _localStorage = require("./storage/local-storage");
|
|
9
9
|
var _remnantDataMigration = _interopRequireDefault(require("./migration/remnant-data-migration"));
|
|
10
|
-
var
|
|
11
|
-
var
|
|
10
|
+
var _platform = require("./utils/platform");
|
|
11
|
+
var _networkGuardedFetchTransport = require("./network-guarded-fetch-transport");
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function createDefaultStorage() {
|
|
14
|
+
if ((0, _platform.isNative)()) {
|
|
15
|
+
const {
|
|
16
|
+
NitroAnalyticsStorage
|
|
17
|
+
} = require("../native/storage");
|
|
18
|
+
return new NitroAnalyticsStorage("analytics-events");
|
|
19
|
+
}
|
|
20
|
+
const {
|
|
21
|
+
NitroAnalyticsStorage
|
|
22
|
+
} = require("../native/storage.web");
|
|
23
|
+
return new NitroAnalyticsStorage("analytics-events");
|
|
24
|
+
}
|
|
25
|
+
function getDefaultTransport() {
|
|
26
|
+
if ((0, _platform.isNative)()) {
|
|
27
|
+
const {
|
|
28
|
+
nitroTransport
|
|
29
|
+
} = require("./nitro-transport");
|
|
30
|
+
return nitroTransport;
|
|
31
|
+
}
|
|
32
|
+
return new _networkGuardedFetchTransport.NetworkGuardedFetchTransport();
|
|
33
|
+
}
|
|
13
34
|
const getDefaultConfig = () => {
|
|
14
35
|
const cookieStorage = new _analyticsCore.MemoryStorage();
|
|
15
36
|
const trackingOptions = {
|
|
@@ -35,10 +56,10 @@ const getDefaultConfig = () => {
|
|
|
35
56
|
disableCookies: true,
|
|
36
57
|
domain: "",
|
|
37
58
|
sessionTimeout: 5 * 60 * 1000,
|
|
38
|
-
storageProvider:
|
|
59
|
+
storageProvider: createDefaultStorage(),
|
|
39
60
|
trackingSessionEvents: false,
|
|
40
61
|
trackingOptions,
|
|
41
|
-
transportProvider:
|
|
62
|
+
transportProvider: getDefaultTransport()
|
|
42
63
|
};
|
|
43
64
|
};
|
|
44
65
|
exports.getDefaultConfig = getDefaultConfig;
|
|
@@ -52,9 +73,9 @@ class ReactNativeConfig extends _analyticsCore.Config {
|
|
|
52
73
|
flushIntervalMillis: 1000,
|
|
53
74
|
flushMaxRetries: 5,
|
|
54
75
|
flushQueueSize: 30,
|
|
55
|
-
transportProvider: defaultConfig.transportProvider,
|
|
56
76
|
...options,
|
|
57
|
-
apiKey
|
|
77
|
+
apiKey,
|
|
78
|
+
transportProvider: options?.transportProvider ?? defaultConfig.transportProvider
|
|
58
79
|
});
|
|
59
80
|
|
|
60
81
|
// NOTE: Define `cookieStorage` first to persist user session
|
|
@@ -171,7 +192,7 @@ const useReactNativeConfig = async (apiKey, options) => {
|
|
|
171
192
|
let sessionId = options?.sessionId ?? previousCookies?.sessionId;
|
|
172
193
|
let userId = options?.userId ?? previousCookies?.userId;
|
|
173
194
|
let lastEventId = previousCookies?.lastEventId;
|
|
174
|
-
const storageProvider = options?.storageProvider ?? (await createEventsStorage(options));
|
|
195
|
+
const storageProvider = options?.storageProvider ?? (await createEventsStorage(options, defaultConfig));
|
|
175
196
|
if (options?.migrateLegacyData !== false) {
|
|
176
197
|
const legacySessionData = await new _remnantDataMigration.default(apiKey, options?.instanceName, storageProvider, previousCookies?.lastEventTime === undefined, options?.loggerProvider).execute();
|
|
177
198
|
deviceId = deviceId ?? legacySessionData.deviceId;
|
|
@@ -193,7 +214,7 @@ const useReactNativeConfig = async (apiKey, options) => {
|
|
|
193
214
|
...defaultConfig.trackingOptions,
|
|
194
215
|
...options?.trackingOptions
|
|
195
216
|
},
|
|
196
|
-
transportProvider: options?.transportProvider ??
|
|
217
|
+
transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,
|
|
197
218
|
userId
|
|
198
219
|
});
|
|
199
220
|
config.lastEventId = lastEventId;
|
|
@@ -236,7 +257,7 @@ const createFlexibleStorage = async options => {
|
|
|
236
257
|
}
|
|
237
258
|
return storage;
|
|
238
259
|
};
|
|
239
|
-
const createEventsStorage = async overrides => {
|
|
260
|
+
const createEventsStorage = async (overrides, baseConfig = getDefaultConfig()) => {
|
|
240
261
|
const hasStorageProviderProperty = overrides && Object.prototype.hasOwnProperty.call(overrides, "storageProvider");
|
|
241
262
|
// If storageProperty is explicitly undefined like `{ storageProperty: undefined }`
|
|
242
263
|
// then storageProvider is undefined
|
|
@@ -244,7 +265,7 @@ const createEventsStorage = async overrides => {
|
|
|
244
265
|
// then storageProvider uses the built-in memory storage
|
|
245
266
|
// Otherwise storageProvider is overriden
|
|
246
267
|
if (!hasStorageProviderProperty || overrides.storageProvider) {
|
|
247
|
-
for (const storage of [overrides?.storageProvider, new _localStorage.LocalStorage()]) {
|
|
268
|
+
for (const storage of [overrides?.storageProvider, hasStorageProviderProperty ? undefined : baseConfig.storageProvider, new _localStorage.LocalStorage()]) {
|
|
248
269
|
if (storage && (await storage.isEnabled())) {
|
|
249
270
|
return storage;
|
|
250
271
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_analyticsCore","require","_localStorage","_remnantDataMigration","_interopRequireDefault","_storage","_nitroTransport","e","__esModule","default","getDefaultConfig","cookieStorage","MemoryStorage","trackingOptions","adid","carrier","deviceManufacturer","deviceModel","ipAddress","language","osName","osVersion","platform","appSetId","idfv","country","cookieExpiration","cookieSameSite","cookieSecure","cookieUpgrade","disableCookies","domain","sessionTimeout","storageProvider","NitroAnalyticsStorage","trackingSessionEvents","transportProvider","nitroTransport","exports","ReactNativeConfig","Config","_optOut","constructor","apiKey","options","defaultConfig","flushIntervalMillis","flushMaxRetries","flushQueueSize","deviceId","lastEventTime","optOut","Boolean","sessionId","userId","appVersion","partnerId","_deviceId","updateStorage","_userId","_sessionId","_lastEventTime","lastEventId","_lastEventId","cache","set","getCookieName","catch","error","loggerProvider","String","useReactNativeConfig","getTopLevelDomain","createCookieStorage","previousCookies","get","queryParams","getQueryParams","createEventsStorage","migrateLegacyData","legacySessionData","RemnantDataMigration","instanceName","undefined","execute","config","UUID","FetchTransport","log","name","overrides","baseConfig","isEnabled","createFlexibleStorage","storage","LocalStorage","CookieStorage","expirationDays","sameSite","secure","hasStorageProviderProperty","Object","prototype","hasOwnProperty","call","url","location","hostname","host","parts","split","levels","storageKey","i","length","push","slice","join","value","remove"],"sourceRoot":"../../../src","sources":["analytics/config.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_analyticsCore","require","_localStorage","_remnantDataMigration","_interopRequireDefault","_platform","_networkGuardedFetchTransport","e","__esModule","default","createDefaultStorage","isNative","NitroAnalyticsStorage","getDefaultTransport","nitroTransport","NetworkGuardedFetchTransport","getDefaultConfig","cookieStorage","MemoryStorage","trackingOptions","adid","carrier","deviceManufacturer","deviceModel","ipAddress","language","osName","osVersion","platform","appSetId","idfv","country","cookieExpiration","cookieSameSite","cookieSecure","cookieUpgrade","disableCookies","domain","sessionTimeout","storageProvider","trackingSessionEvents","transportProvider","exports","ReactNativeConfig","Config","_optOut","constructor","apiKey","options","defaultConfig","flushIntervalMillis","flushMaxRetries","flushQueueSize","deviceId","lastEventTime","optOut","Boolean","sessionId","userId","appVersion","partnerId","_deviceId","updateStorage","_userId","_sessionId","_lastEventTime","lastEventId","_lastEventId","cache","set","getCookieName","catch","error","loggerProvider","String","useReactNativeConfig","getTopLevelDomain","createCookieStorage","previousCookies","get","queryParams","getQueryParams","createEventsStorage","migrateLegacyData","legacySessionData","RemnantDataMigration","instanceName","undefined","execute","config","UUID","log","name","overrides","baseConfig","isEnabled","createFlexibleStorage","storage","LocalStorage","CookieStorage","expirationDays","sameSite","secure","hasStorageProviderProperty","Object","prototype","hasOwnProperty","call","url","location","hostname","host","parts","split","levels","storageKey","i","length","push","slice","join","value","remove"],"sourceRoot":"../../../src","sources":["analytics/config.ts"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAgBA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,6BAAA,GAAAL,OAAA;AAAiF,SAAAG,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEjF,SAASG,oBAAoBA,CAAA,EAAG;EAC9B,IAAI,IAAAC,kBAAQ,EAAC,CAAC,EAAE;IACd,MAAM;MAAEC;IAAsB,CAAC,GAC7BX,OAAO,CAAC,mBAAmB,CAAuC;IACpE,OAAO,IAAIW,qBAAqB,CAAU,kBAAkB,CAAC;EAC/D;EACA,MAAM;IAAEA;EAAsB,CAAC,GAC7BX,OAAO,CAAC,uBAAuB,CAAuC;EACxE,OAAO,IAAIW,qBAAqB,CAAU,kBAAkB,CAAC;AAC/D;AAEA,SAASC,mBAAmBA,CAAA,EAAc;EACxC,IAAI,IAAAF,kBAAQ,EAAC,CAAC,EAAE;IACd,MAAM;MAAEG;IAAe,CAAC,GACtBb,OAAO,CAAC,mBAAmB,CAAuC;IACpE,OAAOa,cAAc;EACvB;EACA,OAAO,IAAIC,0DAA4B,CAAC,CAAC;AAC3C;AAEO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EACpC,MAAMC,aAAa,GAAG,IAAIC,4BAAa,CAAc,CAAC;EACtD,MAAMC,eAAqD,GAAG;IAC5DC,IAAI,EAAE,IAAI;IACVC,OAAO,EAAE,IAAI;IACbC,kBAAkB,EAAE,IAAI;IACxBC,WAAW,EAAE,IAAI;IACjBC,SAAS,EAAE,IAAI;IACfC,QAAQ,EAAE,IAAI;IACdC,MAAM,EAAE,IAAI;IACZC,SAAS,EAAE,IAAI;IACfC,QAAQ,EAAE,IAAI;IACdC,QAAQ,EAAE,IAAI;IACdC,IAAI,EAAE,IAAI;IACVC,OAAO,EAAE,KAAK,CAAE;EAClB,CAAC;EACD,OAAO;IACLC,gBAAgB,EAAE,GAAG;IACrBC,cAAc,EAAE,KAAK;IACrBC,YAAY,EAAE,KAAK;IACnBjB,aAAa;IACbkB,aAAa,EAAE,IAAI;IACnBC,cAAc,EAAE,IAAI;IACpBC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAC7BC,eAAe,EAAE7B,oBAAoB,CAAC,CAAC;IACvC8B,qBAAqB,EAAE,KAAK;IAC5BrB,eAAe;IACfsB,iBAAiB,EAAE5B,mBAAmB,CAAC;EACzC,CAAC;AACH,CAAC;AAAC6B,OAAA,CAAA1B,gBAAA,GAAAA,gBAAA;AAEK,MAAM2B,iBAAiB,SAASC,qBAAM,CAA+B;EAc1E;;EAIUC,OAAO,GAAG,KAAK;EAIzBC,WAAWA,CAACC,MAAc,EAAEC,OAA4B,EAAE;IACxD,MAAMC,aAAa,GAAGjC,gBAAgB,CAAC,CAAC;IACxC,KAAK,CAAC;MACJkC,mBAAmB,EAAE,IAAI;MACzBC,eAAe,EAAE,CAAC;MAClBC,cAAc,EAAE,EAAE;MAClB,GAAGJ,OAAO;MACVD,MAAM;MACNN,iBAAiB,EACfO,OAAO,EAAEP,iBAAiB,IAAIQ,aAAa,CAACR;IAChD,CAAC,CAAC;;IAEF;IACA;IACA,IAAI,CAACxB,aAAa,GAAG+B,OAAO,EAAE/B,aAAa,IAAIgC,aAAa,CAAChC,aAAa;IAC1E,IAAI,CAACoC,QAAQ,GAAGL,OAAO,EAAEK,QAAQ;IACjC,IAAI,CAACC,aAAa,GAAGN,OAAO,EAAEM,aAAa;IAC3C,IAAI,CAACC,MAAM,GAAGC,OAAO,CAACR,OAAO,EAAEO,MAAM,CAAC;IACtC,IAAI,CAACE,SAAS,GAAGT,OAAO,EAAES,SAAS;IACnC,IAAI,CAACC,MAAM,GAAGV,OAAO,EAAEU,MAAM;IAE7B,IAAI,CAACC,UAAU,GAAGX,OAAO,EAAEW,UAAU;IACrC,IAAI,CAAC3B,gBAAgB,GACnBgB,OAAO,EAAEhB,gBAAgB,IAAIiB,aAAa,CAACjB,gBAAgB;IAC7D,IAAI,CAACC,cAAc,GACjBe,OAAO,EAAEf,cAAc,IAAIgB,aAAa,CAAChB,cAAc;IACzD,IAAI,CAACC,YAAY,GAAGc,OAAO,EAAEd,YAAY,IAAIe,aAAa,CAACf,YAAY;IACvE,IAAI,CAACC,aAAa,GAAGa,OAAO,EAAEb,aAAa,IAAIc,aAAa,CAACd,aAAa;IAC1E,IAAI,CAACC,cAAc,GACjBY,OAAO,EAAEZ,cAAc,IAAIa,aAAa,CAACb,cAAc;IACzD,IAAI,CAACC,MAAM,GAAGW,OAAO,EAAEX,MAAM,IAAIY,aAAa,CAACZ,MAAM;IACrD,IAAI,CAACuB,SAAS,GAAGZ,OAAO,EAAEY,SAAS;IACnC,IAAI,CAACtB,cAAc,GACjBU,OAAO,EAAEV,cAAc,IAAIW,aAAa,CAACX,cAAc;IACzD,IAAI,CAACnB,eAAe,GAClB6B,OAAO,EAAE7B,eAAe,IAAI8B,aAAa,CAAC9B,eAAe;IAC3D,IAAI,CAACqB,qBAAqB,GACxBQ,OAAO,EAAER,qBAAqB,IAAIS,aAAa,CAACT,qBAAqB;EACzE;EAEA,IAAIa,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACQ,SAAS;EACvB;EAEA,IAAIR,QAAQA,CAACA,QAA4B,EAAE;IACzC,IAAI,IAAI,CAACQ,SAAS,KAAKR,QAAQ,EAAE;MAC/B,IAAI,CAACQ,SAAS,GAAGR,QAAQ;MACzB,IAAI,CAACS,aAAa,CAAC,CAAC;IACtB;EACF;EAEA,IAAIJ,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACK,OAAO;EACrB;EAEA,IAAIL,MAAMA,CAACA,MAA0B,EAAE;IACrC,IAAI,IAAI,CAACK,OAAO,KAAKL,MAAM,EAAE;MAC3B,IAAI,CAACK,OAAO,GAAGL,MAAM;MACrB,IAAI,CAACI,aAAa,CAAC,CAAC;IACtB;EACF;EAEA,IAAIL,SAASA,CAAA,EAAG;IACd,OAAO,IAAI,CAACO,UAAU;EACxB;EAEA,IAAIP,SAASA,CAACA,SAA6B,EAAE;IAC3C,IAAI,IAAI,CAACO,UAAU,KAAKP,SAAS,EAAE;MACjC,IAAI,CAACO,UAAU,GAAGP,SAAS;MAC3B,IAAI,CAACK,aAAa,CAAC,CAAC;IACtB;EACF;EAEA,IAAIP,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACV,OAAO;EACrB;EAEA,IAAIU,MAAMA,CAACA,MAAe,EAAE;IAC1B,IAAI,IAAI,CAACV,OAAO,KAAKU,MAAM,EAAE;MAC3B,IAAI,CAACV,OAAO,GAAGU,MAAM;MACrB,IAAI,CAACO,aAAa,CAAC,CAAC;IACtB;EACF;EAEA,IAAIR,aAAaA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACW,cAAc;EAC5B;EAEA,IAAIX,aAAaA,CAACA,aAAiC,EAAE;IACnD,IAAI,IAAI,CAACW,cAAc,KAAKX,aAAa,EAAE;MACzC,IAAI,CAACW,cAAc,GAAGX,aAAa;MACnC,IAAI,CAACQ,aAAa,CAAC,CAAC;IACtB;EACF;EAEA,IAAII,WAAWA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACC,YAAY;EAC1B;EAEA,IAAID,WAAWA,CAACA,WAA+B,EAAE;IAC/C,IAAI,IAAI,CAACC,YAAY,KAAKD,WAAW,EAAE;MACrC,IAAI,CAACC,YAAY,GAAGD,WAAW;MAC/B,IAAI,CAACJ,aAAa,CAAC,CAAC;IACtB;EACF;EAEQA,aAAaA,CAAA,EAAG;IACtB,MAAMM,KAAK,GAAG;MACZf,QAAQ,EAAE,IAAI,CAACQ,SAAS;MACxBH,MAAM,EAAE,IAAI,CAACK,OAAO;MACpBN,SAAS,EAAE,IAAI,CAACO,UAAU;MAC1BT,MAAM,EAAE,IAAI,CAACV,OAAO;MACpBS,aAAa,EAAE,IAAI,CAACW,cAAc;MAClCC,WAAW,EAAE,IAAI,CAACC;IACpB,CAAC;IACD,IAAI;MACF,KAAK,IAAI,CAAClD,aAAa,EACnBoD,GAAG,CAAC,IAAAC,4BAAa,EAAC,IAAI,CAACvB,MAAM,CAAC,EAAEqB,KAAK,CAAC,CACvCG,KAAK,CAAEC,KAAK,IAAK;QAChB,IAAI,CAACC,cAAc,EAAED,KAAK,CACxB,mCAAmCE,MAAM,CAACF,KAAK,CAAC,EAClD,CAAC;MACH,CAAC,CAAC;IACN,CAAC,CAAC,OAAOA,KAAK,EAAE;MACd,IAAI,CAACC,cAAc,EAAED,KAAK,CACxB,mCAAmCE,MAAM,CAACF,KAAK,CAAC,EAClD,CAAC;IACH;EACF;AACF;AAAC9B,OAAA,CAAAC,iBAAA,GAAAA,iBAAA;AAEM,MAAMgC,oBAAoB,GAAG,MAAAA,CAClC5B,MAAc,EACdC,OAA4B,KACI;EAChC,MAAMC,aAAa,GAAGjC,gBAAgB,CAAC,CAAC;;EAExC;EACA,MAAMoB,cAAc,GAClBY,OAAO,EAAEZ,cAAc,IAAIa,aAAa,CAACb,cAAc;EACzD,MAAMC,MAAM,GAAGD,cAAc,GACzB,EAAE,GACDY,OAAO,EAAEX,MAAM,KAAK,MAAMuC,iBAAiB,CAAC,CAAC,CAAE;EACpD,MAAM3D,aAAa,GAAG,MAAM4D,mBAAmB,CAAc;IAC3D,GAAG7B,OAAO;IACVZ,cAAc;IACdC;EACF,CAAC,CAAC;EACF,MAAMyC,eAAe,GAAG,MAAM7D,aAAa,CAAC8D,GAAG,CAAC,IAAAT,4BAAa,EAACvB,MAAM,CAAC,CAAC;EACtE,MAAMiC,WAAW,GAAG,IAAAC,6BAAc,EAAC,CAAC;;EAEpC;EACA,IAAI5B,QAAQ,GACVL,OAAO,EAAEK,QAAQ,IAAI2B,WAAW,CAAC3B,QAAQ,IAAIyB,eAAe,EAAEzB,QAAQ;EACxE,IAAIC,aAAa,GAAGN,OAAO,EAAEM,aAAa,IAAIwB,eAAe,EAAExB,aAAa;EAC5E,MAAMC,MAAM,GAAGP,OAAO,EAAEO,MAAM,IAAIC,OAAO,CAACsB,eAAe,EAAEvB,MAAM,CAAC;EAClE,IAAIE,SAAS,GAAGT,OAAO,EAAES,SAAS,IAAIqB,eAAe,EAAErB,SAAS;EAChE,IAAIC,MAAM,GAAGV,OAAO,EAAEU,MAAM,IAAIoB,eAAe,EAAEpB,MAAM;EACvD,IAAIQ,WAAW,GAAGY,eAAe,EAAEZ,WAAW;EAE9C,MAAM3B,eAAe,GACnBS,OAAO,EAAET,eAAe,KACvB,MAAM2C,mBAAmB,CAAClC,OAAO,EAAEC,aAAa,CAAC,CAAC;EAErD,IAAID,OAAO,EAAEmC,iBAAiB,KAAK,KAAK,EAAE;IACxC,MAAMC,iBAAiB,GAAG,MAAM,IAAIC,6BAAoB,CACtDtC,MAAM,EACNC,OAAO,EAAEsC,YAAY,EACrB/C,eAAe,EACfuC,eAAe,EAAExB,aAAa,KAAKiC,SAAS,EAC5CvC,OAAO,EAAEyB,cACX,CAAC,CAACe,OAAO,CAAC,CAAC;IACXnC,QAAQ,GAAGA,QAAQ,IAAI+B,iBAAiB,CAAC/B,QAAQ;IACjDK,MAAM,GAAGA,MAAM,IAAI0B,iBAAiB,CAAC1B,MAAM;IAC3CD,SAAS,GAAGA,SAAS,IAAI2B,iBAAiB,CAAC3B,SAAS;IACpDH,aAAa,GAAGA,aAAa,IAAI8B,iBAAiB,CAAC9B,aAAa;IAChEY,WAAW,GAAGA,WAAW,IAAIkB,iBAAiB,CAAClB,WAAW;EAC5D;EAEA,MAAMuB,MAAM,GAAG,IAAI9C,iBAAiB,CAACI,MAAM,EAAE;IAC3C,GAAGC,OAAO;IACV/B,aAAa;IACboC,QAAQ,EAAEA,QAAQ,IAAI,IAAAqC,mBAAI,EAAC,CAAC;IAC5BrD,MAAM;IACNiB,aAAa;IACbC,MAAM;IACNE,SAAS;IACTlB,eAAe;IACfpB,eAAe,EAAE;MACf,GAAG8B,aAAa,CAAC9B,eAAe;MAChC,GAAG6B,OAAO,EAAE7B;IACd,CAAC;IACDsB,iBAAiB,EACfO,OAAO,EAAEP,iBAAiB,IAAIQ,aAAa,CAACR,iBAAiB;IAC/DiB;EACF,CAAC,CAAC;EAEF+B,MAAM,CAACvB,WAAW,GAAGA,WAAW;EAEhCuB,MAAM,CAAChB,cAAc,EAAEkB,GAAG,CACxB,iBAAiB1E,aAAa,CAAC6B,WAAW,CAAC8C,IAAI,wBAC7Cd,eAAe,EAAErB,SAAS,IAAI,WAAW,wBACnBT,OAAO,EAAES,SAAS,IAAI,WAAW,EAC3D,CAAC;EAED,OAAOgC,MAAM;AACf,CAAC;AAAC/C,OAAA,CAAAiC,oBAAA,GAAAA,oBAAA;AAEK,MAAME,mBAAmB,GAAG,MAAAA,CACjCgB,SAA8B,EAC9BC,UAAU,GAAG9E,gBAAgB,CAAC,CAAC,KACP;EACxB,MAAMgC,OAAO,GAAG;IAAE,GAAG8C,UAAU;IAAE,GAAGD;EAAU,CAAC;EAC/C,MAAM5E,aAAa,GAAG4E,SAAS,EAAE5E,aAA2B;EAC5D,IAAI,CAACA,aAAa,IAAI,EAAE,MAAMA,aAAa,CAAC8E,SAAS,CAAC,CAAC,CAAC,EAAE;IACxD,OAAOC,qBAAqB,CAAIhD,OAAO,CAAC;EAC1C;EACA,OAAO/B,aAAa;AACtB,CAAC;AAACyB,OAAA,CAAAmC,mBAAA,GAAAA,mBAAA;AAEF,MAAMmB,qBAAqB,GAAG,MAC5BhD,OAA2B,IACH;EACxB,IAAIiD,OAAmB;EACvB,IAAIjD,OAAO,CAACZ,cAAc,EAAE;IAC1B6D,OAAO,GAAG,IAAIC,0BAAY,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAMD,OAAO,CAACF,SAAS,CAAC,CAAC,CAAC,EAAE;MAChCE,OAAO,GAAG,IAAI/E,4BAAa,CAAC,CAAC;IAC/B;IACA,OAAO+E,OAAO;EAChB;EAEAA,OAAO,GAAG,IAAIE,4BAAa,CAAC;IAC1B9D,MAAM,EAAEW,OAAO,CAACX,MAAM;IACtB+D,cAAc,EAAEpD,OAAO,CAAChB,gBAAgB;IACxCqE,QAAQ,EAAErD,OAAO,CAACf,cAAc;IAChCqE,MAAM,EAAEtD,OAAO,CAACd;EAClB,CAAC,CAAC;EACF,IAAI,EAAE,MAAM+D,OAAO,CAACF,SAAS,CAAC,CAAC,CAAC,EAAE;IAChCE,OAAO,GAAG,IAAIC,0BAAY,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAMD,OAAO,CAACF,SAAS,CAAC,CAAC,CAAC,EAAE;MAChCE,OAAO,GAAG,IAAI/E,4BAAa,CAAC,CAAC;IAC/B;EACF;EACA,OAAO+E,OAAO;AAChB,CAAC;AAEM,MAAMf,mBAAmB,GAAG,MAAAA,CACjCW,SAA8B,EAC9BC,UAAU,GAAG9E,gBAAgB,CAAC,CAAC,KACW;EAC1C,MAAMuF,0BAA0B,GAC9BV,SAAS,IACTW,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACd,SAAS,EAAE,iBAAiB,CAAC;EACpE;EACA;EACA;EACA;EACA;EACA,IAAI,CAACU,0BAA0B,IAAIV,SAAS,CAACtD,eAAe,EAAE;IAC5D,KAAK,MAAM0D,OAAO,IAAI,CACpBJ,SAAS,EAAEtD,eAAe,EAC1BgE,0BAA0B,GAAGhB,SAAS,GAAGO,UAAU,CAACvD,eAAe,EACnE,IAAI2D,0BAAY,CAAU,CAAC,CAC5B,EAAE;MACD,IAAID,OAAO,KAAK,MAAMA,OAAO,CAACF,SAAS,CAAC,CAAC,CAAC,EAAE;QAC1C,OAAOE,OAAO;MAChB;IACF;EACF;EACA,OAAOV,SAAS;AAClB,CAAC;AAAC7C,OAAA,CAAAwC,mBAAA,GAAAA,mBAAA;AAEK,MAAMN,iBAAiB,GAAG,MAAOgC,GAAY,IAAK;EACvD,IACE,EAAE,MAAM,IAAIT,4BAAa,CAAS,CAAC,CAACJ,SAAS,CAAC,CAAC,CAAC,IAC/C,CAACa,GAAG,KAAK,OAAOC,QAAQ,KAAK,WAAW,IAAI,CAACA,QAAQ,CAACC,QAAQ,CAAE,EACjE;IACA,OAAO,EAAE;EACX;EAEA,MAAMC,IAAI,GAAGH,GAAG,IAAIC,QAAQ,CAACC,QAAQ;EACrC,MAAME,KAAK,GAAGD,IAAI,CAACE,KAAK,CAAC,GAAG,CAAC;EAC7B,MAAMC,MAAM,GAAG,EAAE;EACjB,MAAMC,UAAU,GAAG,aAAa;EAEhC,KAAK,IAAIC,CAAC,GAAGJ,KAAK,CAACK,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAE,EAAEA,CAAC,EAAE;IAC1CF,MAAM,CAACI,IAAI,CAACN,KAAK,CAACO,KAAK,CAACH,CAAC,CAAC,CAACI,IAAI,CAAC,GAAG,CAAC,CAAC;EACvC;EACA,KAAK,IAAIJ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACtC,MAAM/E,MAAM,GAAG6E,MAAM,CAACE,CAAC,CAAC;IACxB,MAAMpE,OAAO,GAAG;MAAEX,MAAM,EAAE,GAAG,GAAGA;IAAO,CAAC;IACxC,MAAM4D,OAAO,GAAG,IAAIE,4BAAa,CAASnD,OAAO,CAAC;IAClD,MAAMiD,OAAO,CAAC5B,GAAG,CAAC8C,UAAU,EAAE,CAAC,CAAC;IAChC,MAAMM,KAAK,GAAG,MAAMxB,OAAO,CAAClB,GAAG,CAACoC,UAAU,CAAC;IAC3C,IAAIM,KAAK,EAAE;MACT,MAAMxB,OAAO,CAACyB,MAAM,CAACP,UAAU,CAAC;MAChC,OAAO,GAAG,GAAG9E,MAAM;IACrB;EACF;EAEA,OAAO,EAAE;AACX,CAAC;AAACK,OAAA,CAAAkC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -40,7 +40,7 @@ Object.defineProperty(exports, "createInstance", {
|
|
|
40
40
|
return _reactNativeClient.createInstance;
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
|
-
exports.track = exports.shutdown = exports.setUserId = exports.setSessionId = exports.setOptOut = exports.setGroup = exports.setDeviceId = exports.revenue = exports.reset = exports.remove = exports.logEvent = exports.init = exports.identify = exports.groupIdentify = exports.getUserId = exports.getSessionId = exports.getDeviceId = exports.flush = exports.extendSession = void 0;
|
|
43
|
+
exports.track = exports.shutdown = exports.setUserId = exports.setSessionId = exports.setOptOut = exports.setGroup = exports.setDeviceId = exports.revenue = exports.reset = exports.remove = exports.logEvent = exports.init = exports.identify = exports.healthCheck = exports.groupIdentify = exports.getUserId = exports.getSessionId = exports.getDiagnostics = exports.getDeviceId = exports.flushWithResult = exports.flush = exports.extendSession = void 0;
|
|
44
44
|
var _reactNativeClient = _interopRequireWildcard(require("./react-native-client"));
|
|
45
45
|
var Types = _interopRequireWildcard(require("./types"));
|
|
46
46
|
exports.Types = Types;
|
|
@@ -70,8 +70,14 @@ const {
|
|
|
70
70
|
setUserId,
|
|
71
71
|
shutdown,
|
|
72
72
|
track,
|
|
73
|
-
extendSession
|
|
73
|
+
extendSession,
|
|
74
|
+
flushWithResult,
|
|
75
|
+
getDiagnostics,
|
|
76
|
+
healthCheck
|
|
74
77
|
} = _reactNativeClient.default;
|
|
78
|
+
exports.healthCheck = healthCheck;
|
|
79
|
+
exports.getDiagnostics = getDiagnostics;
|
|
80
|
+
exports.flushWithResult = flushWithResult;
|
|
75
81
|
exports.extendSession = extendSession;
|
|
76
82
|
exports.track = track;
|
|
77
83
|
exports.shutdown = shutdown;
|