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