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
|
@@ -23,19 +23,23 @@ export class NitroAnalyticsStorage {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
async getRaw(key) {
|
|
26
|
-
|
|
26
|
+
const storage = getAmplitudeStorage();
|
|
27
|
+
return storage.get(namespaceKey(this.namespace, key), true);
|
|
27
28
|
}
|
|
28
29
|
async set(key, value) {
|
|
29
|
-
|
|
30
|
+
const storage = getAmplitudeStorage();
|
|
31
|
+
storage.set(namespaceKey(this.namespace, key), JSON.stringify(value), true);
|
|
30
32
|
}
|
|
31
33
|
async remove(key) {
|
|
32
|
-
getAmplitudeStorage()
|
|
34
|
+
const storage = getAmplitudeStorage();
|
|
35
|
+
storage.remove(namespaceKey(this.namespace, key), true);
|
|
33
36
|
}
|
|
34
37
|
async reset() {
|
|
38
|
+
const storage = getAmplitudeStorage();
|
|
35
39
|
const prefix = `${this.namespace}::`;
|
|
36
|
-
const keys =
|
|
40
|
+
const keys = storage.getKeysByPrefix(prefix, true);
|
|
37
41
|
if (keys.length > 0) {
|
|
38
|
-
|
|
42
|
+
storage.removeBatch(keys, true);
|
|
39
43
|
}
|
|
40
44
|
}
|
|
41
45
|
}
|
|
@@ -44,20 +48,24 @@ export class NitroExperimentStorage {
|
|
|
44
48
|
this.namespace = namespace;
|
|
45
49
|
}
|
|
46
50
|
async get(key) {
|
|
47
|
-
const
|
|
51
|
+
const storage = getAmplitudeStorage();
|
|
52
|
+
const value = storage.get(namespaceKey(this.namespace, key), true);
|
|
48
53
|
return value ?? null;
|
|
49
54
|
}
|
|
50
55
|
async put(key, value) {
|
|
51
|
-
|
|
56
|
+
const storage = getAmplitudeStorage();
|
|
57
|
+
storage.set(namespaceKey(this.namespace, key), value, true);
|
|
52
58
|
}
|
|
53
59
|
async delete(key) {
|
|
54
|
-
getAmplitudeStorage()
|
|
60
|
+
const storage = getAmplitudeStorage();
|
|
61
|
+
storage.remove(namespaceKey(this.namespace, key), true);
|
|
55
62
|
}
|
|
56
63
|
async reset() {
|
|
64
|
+
const storage = getAmplitudeStorage();
|
|
57
65
|
const prefix = `${this.namespace}::`;
|
|
58
|
-
const keys =
|
|
66
|
+
const keys = storage.getKeysByPrefix(prefix, true);
|
|
59
67
|
if (keys.length > 0) {
|
|
60
|
-
|
|
68
|
+
storage.removeBatch(keys, true);
|
|
61
69
|
}
|
|
62
70
|
}
|
|
63
71
|
}
|
|
@@ -66,20 +74,24 @@ export class NitroMemoryStorage {
|
|
|
66
74
|
this.namespace = namespace;
|
|
67
75
|
}
|
|
68
76
|
async get(key) {
|
|
69
|
-
const
|
|
77
|
+
const storage = getAmplitudeStorage();
|
|
78
|
+
const value = storage.get(namespaceKey(this.namespace, key), false);
|
|
70
79
|
return value ?? null;
|
|
71
80
|
}
|
|
72
81
|
async put(key, value) {
|
|
73
|
-
|
|
82
|
+
const storage = getAmplitudeStorage();
|
|
83
|
+
storage.set(namespaceKey(this.namespace, key), value, false);
|
|
74
84
|
}
|
|
75
85
|
async delete(key) {
|
|
76
|
-
getAmplitudeStorage()
|
|
86
|
+
const storage = getAmplitudeStorage();
|
|
87
|
+
storage.remove(namespaceKey(this.namespace, key), false);
|
|
77
88
|
}
|
|
78
89
|
async reset() {
|
|
90
|
+
const storage = getAmplitudeStorage();
|
|
79
91
|
const prefix = `${this.namespace}::`;
|
|
80
|
-
const keys =
|
|
92
|
+
const keys = storage.getKeysByPrefix(prefix, false);
|
|
81
93
|
if (keys.length > 0) {
|
|
82
|
-
|
|
94
|
+
storage.removeBatch(keys, false);
|
|
83
95
|
}
|
|
84
96
|
}
|
|
85
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getAmplitudeStorage","namespaceKey","namespace","key","NitroAnalyticsStorage","constructor","isEnabled","get","raw","getRaw","undefined","JSON","parse","set","value","stringify","remove","reset","prefix","keys","getKeysByPrefix","length","removeBatch","NitroExperimentStorage","put","delete","NitroMemoryStorage"],"sourceRoot":"../../../src","sources":["native/storage.ts"],"mappings":";;AAEA,SAASA,mBAAmB,QAAQ,UAAU;AAE9C,SAASC,YAAYA,CAACC,SAAiB,EAAEC,GAAW,EAAU;EAC5D,OAAO,GAAGD,SAAS,KAAKC,GAAG,EAAE;AAC/B;AAEA,OAAO,MAAMC,qBAAqB,CAAmC;EACnEC,WAAWA,CAAkBH,SAAiB,EAAE;IAAA,KAAnBA,SAAiB,GAAjBA,SAAiB;EAAG;EAEjD,MAAMI,SAASA,CAAA,EAAqB;IAClC,OAAO,IAAI;EACb;EAEA,MAAMC,GAAGA,CAACJ,GAAW,EAA0B;IAC7C,MAAMK,GAAG,GAAG,MAAM,IAAI,CAACC,MAAM,CAACN,GAAG,CAAC;IAClC,IAAI,CAACK,GAAG,EAAE;MACR,OAAOE,SAAS;IAClB;IACA,IAAI;MACF,OAAOC,IAAI,CAACC,KAAK,CAACJ,GAAG,CAAC;IACxB,CAAC,CAAC,MAAM;MACN,OAAOE,SAAS;IAClB;EACF;EAEA,MAAMD,MAAMA,CAACN,GAAW,EAA+B;IACrD,
|
|
1
|
+
{"version":3,"names":["getAmplitudeStorage","namespaceKey","namespace","key","NitroAnalyticsStorage","constructor","isEnabled","get","raw","getRaw","undefined","JSON","parse","storage","set","value","stringify","remove","reset","prefix","keys","getKeysByPrefix","length","removeBatch","NitroExperimentStorage","put","delete","NitroMemoryStorage"],"sourceRoot":"../../../src","sources":["native/storage.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { BaseTransport } from "@amplitude/analytics-core";
|
|
4
|
+
import { createAmplitudeError } from "./errors";
|
|
5
|
+
let networkEnabled = true;
|
|
6
|
+
const dryRunRequests = [];
|
|
7
|
+
const dryRunEvents = [];
|
|
8
|
+
export function setNetworkEnabled(enabled) {
|
|
9
|
+
networkEnabled = enabled;
|
|
10
|
+
}
|
|
11
|
+
export function getNetworkEnabled() {
|
|
12
|
+
return networkEnabled;
|
|
13
|
+
}
|
|
14
|
+
export function clearDryRunTransportRecords() {
|
|
15
|
+
dryRunRequests.length = 0;
|
|
16
|
+
dryRunEvents.length = 0;
|
|
17
|
+
}
|
|
18
|
+
export function getDryRunTransportRecords() {
|
|
19
|
+
return dryRunRequests.map(request => ({
|
|
20
|
+
...request
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
export function getDryRunAnalyticsEvents() {
|
|
24
|
+
return dryRunEvents.map(event => ({
|
|
25
|
+
...event,
|
|
26
|
+
payload: {
|
|
27
|
+
...event.payload
|
|
28
|
+
}
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
export function assertNetworkEnabled() {
|
|
32
|
+
if (!networkEnabled) {
|
|
33
|
+
throw createAmplitudeError("network_error", "Amplitude network traffic is disabled");
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function nowMillis() {
|
|
37
|
+
return typeof performance !== "undefined" && performance.now ? performance.now() : Date.now();
|
|
38
|
+
}
|
|
39
|
+
function createTiming(kind, url, method, startedAt, status, error) {
|
|
40
|
+
const finishedAt = nowMillis();
|
|
41
|
+
return {
|
|
42
|
+
kind,
|
|
43
|
+
url,
|
|
44
|
+
method,
|
|
45
|
+
startedAt,
|
|
46
|
+
finishedAt,
|
|
47
|
+
durationMillis: Math.round((finishedAt - startedAt) * 10) / 10,
|
|
48
|
+
status,
|
|
49
|
+
error: error === undefined ? undefined : error instanceof Error ? error.message : String(error)
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export function createNetworkTimingBuffer(limit = 20) {
|
|
53
|
+
const timings = [];
|
|
54
|
+
const normalizedLimit = Number.isFinite(limit) && limit > 0 ? limit : 20;
|
|
55
|
+
return {
|
|
56
|
+
record: timing => {
|
|
57
|
+
timings.push(timing);
|
|
58
|
+
while (timings.length > normalizedLimit) {
|
|
59
|
+
timings.shift();
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
getTimings: () => timings.map(timing => ({
|
|
63
|
+
...timing
|
|
64
|
+
})),
|
|
65
|
+
clear: () => {
|
|
66
|
+
timings.length = 0;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export function createTimedAnalyticsTransport(transport, record) {
|
|
71
|
+
return {
|
|
72
|
+
async send(serverUrl, payload, enableRequestBodyCompression) {
|
|
73
|
+
const startedAt = nowMillis();
|
|
74
|
+
try {
|
|
75
|
+
const response = await transport.send(serverUrl, payload, enableRequestBodyCompression);
|
|
76
|
+
record(createTiming("analytics", serverUrl, "POST", startedAt, response?.status));
|
|
77
|
+
return response;
|
|
78
|
+
} catch (error) {
|
|
79
|
+
record(createTiming("analytics", serverUrl, "POST", startedAt, undefined, error));
|
|
80
|
+
throw error;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
export function createTimedHttpClient(httpClient, record) {
|
|
86
|
+
return {
|
|
87
|
+
async request(requestUrl, method, headers, data, timeoutMillis) {
|
|
88
|
+
const startedAt = nowMillis();
|
|
89
|
+
try {
|
|
90
|
+
const response = await httpClient.request(requestUrl, method, headers, data, timeoutMillis);
|
|
91
|
+
record(createTiming("experiment", requestUrl, method, startedAt, response.status));
|
|
92
|
+
return response;
|
|
93
|
+
} catch (error) {
|
|
94
|
+
record(createTiming("experiment", requestUrl, method, startedAt, undefined, error));
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
export class DryRunHttpClient {
|
|
101
|
+
async request(requestUrl, method, headers, data, timeoutMillis = 10000) {
|
|
102
|
+
dryRunRequests.push({
|
|
103
|
+
url: requestUrl,
|
|
104
|
+
method,
|
|
105
|
+
headers: {
|
|
106
|
+
...headers
|
|
107
|
+
},
|
|
108
|
+
data,
|
|
109
|
+
timeoutMillis,
|
|
110
|
+
createdAt: Date.now()
|
|
111
|
+
});
|
|
112
|
+
return {
|
|
113
|
+
status: 202,
|
|
114
|
+
body: JSON.stringify({
|
|
115
|
+
code: 202,
|
|
116
|
+
dryRun: true
|
|
117
|
+
})
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export class DryRunTransport extends BaseTransport {
|
|
122
|
+
async send(serverUrl, payload) {
|
|
123
|
+
dryRunEvents.push({
|
|
124
|
+
serverUrl,
|
|
125
|
+
payload: {
|
|
126
|
+
...payload
|
|
127
|
+
},
|
|
128
|
+
createdAt: Date.now()
|
|
129
|
+
});
|
|
130
|
+
return this.buildResponse({
|
|
131
|
+
code: 202,
|
|
132
|
+
dryRun: true
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
export const dryRunHttpClient = new DryRunHttpClient();
|
|
137
|
+
export const dryRunTransport = new DryRunTransport();
|
|
138
|
+
//# sourceMappingURL=network.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BaseTransport","createAmplitudeError","networkEnabled","dryRunRequests","dryRunEvents","setNetworkEnabled","enabled","getNetworkEnabled","clearDryRunTransportRecords","length","getDryRunTransportRecords","map","request","getDryRunAnalyticsEvents","event","payload","assertNetworkEnabled","nowMillis","performance","now","Date","createTiming","kind","url","method","startedAt","status","error","finishedAt","durationMillis","Math","round","undefined","Error","message","String","createNetworkTimingBuffer","limit","timings","normalizedLimit","Number","isFinite","record","timing","push","shift","getTimings","clear","createTimedAnalyticsTransport","transport","send","serverUrl","enableRequestBodyCompression","response","createTimedHttpClient","httpClient","requestUrl","headers","data","timeoutMillis","DryRunHttpClient","createdAt","body","JSON","stringify","code","dryRun","DryRunTransport","buildResponse","dryRunHttpClient","dryRunTransport"],"sourceRoot":"../../src","sources":["network.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { getAnalyticsConnector } from "@amplitude/analytics-core";
|
|
4
|
+
import { createInstance } from "./analytics/react-native-client";
|
|
5
|
+
import { NetworkGuardedFetchTransport } from "./analytics/network-guarded-fetch-transport";
|
|
6
|
+
import { isNative } from "./analytics/utils/platform";
|
|
7
|
+
import { Experiment } from "./experiment/factory";
|
|
8
|
+
import { dryRunHttpClient, dryRunTransport } from "./network";
|
|
9
|
+
function getStorageModule() {
|
|
10
|
+
if (isNative()) {
|
|
11
|
+
return require("./native/storage");
|
|
12
|
+
}
|
|
13
|
+
return require("./native/storage.web");
|
|
14
|
+
}
|
|
15
|
+
function getAnalyticsTransport() {
|
|
16
|
+
if (isNative()) {
|
|
17
|
+
const {
|
|
18
|
+
nitroTransport
|
|
19
|
+
} = require("./analytics/nitro-transport");
|
|
20
|
+
return nitroTransport;
|
|
21
|
+
}
|
|
22
|
+
return new NetworkGuardedFetchTransport();
|
|
23
|
+
}
|
|
24
|
+
export function createDurableAmplitudeStoragePreset(options = {}) {
|
|
25
|
+
const namespace = options.namespace ?? "default";
|
|
26
|
+
const {
|
|
27
|
+
NitroAnalyticsStorage,
|
|
28
|
+
NitroExperimentStorage
|
|
29
|
+
} = getStorageModule();
|
|
30
|
+
const analyticsEvents = new NitroAnalyticsStorage(`${namespace}:analytics-events`);
|
|
31
|
+
const analyticsSession = new NitroAnalyticsStorage(`${namespace}:analytics-session`);
|
|
32
|
+
const experimentVariants = new NitroExperimentStorage(`${namespace}:experiment-variants`);
|
|
33
|
+
return {
|
|
34
|
+
analytics: {
|
|
35
|
+
storageProvider: analyticsEvents,
|
|
36
|
+
cookieStorage: analyticsSession,
|
|
37
|
+
transportProvider: options.dryRun ? dryRunTransport : getAnalyticsTransport()
|
|
38
|
+
},
|
|
39
|
+
experiment: {
|
|
40
|
+
storage: experimentVariants
|
|
41
|
+
},
|
|
42
|
+
clear: async () => {
|
|
43
|
+
await analyticsEvents.reset();
|
|
44
|
+
await analyticsSession.reset();
|
|
45
|
+
await experimentVariants.reset?.();
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export function createPersistentAmplitudeConfig(namespaceOrOptions) {
|
|
50
|
+
if (typeof namespaceOrOptions === "string") {
|
|
51
|
+
return createDurableAmplitudeStoragePreset({
|
|
52
|
+
namespace: namespaceOrOptions
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return createDurableAmplitudeStoragePreset(namespaceOrOptions);
|
|
56
|
+
}
|
|
57
|
+
export function createExperimentUser(user) {
|
|
58
|
+
return {
|
|
59
|
+
...user,
|
|
60
|
+
user_properties: user.user_properties ? {
|
|
61
|
+
...user.user_properties
|
|
62
|
+
} : undefined,
|
|
63
|
+
groups: user.groups ? {
|
|
64
|
+
...user.groups
|
|
65
|
+
} : undefined,
|
|
66
|
+
group_properties: user.group_properties ? {
|
|
67
|
+
...user.group_properties
|
|
68
|
+
} : undefined
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
export function createAmplitudeClient(config) {
|
|
72
|
+
const instanceName = config.instanceName ?? "$default_instance";
|
|
73
|
+
const dryRunEnabled = config.dryRun || typeof config.durableStorage === "object" && config.durableStorage.dryRun;
|
|
74
|
+
const storagePreset = config.durableStorage === false ? undefined : createDurableAmplitudeStoragePreset({
|
|
75
|
+
namespace: typeof config.durableStorage === "object" ? config.durableStorage.namespace : instanceName,
|
|
76
|
+
dryRun: dryRunEnabled
|
|
77
|
+
});
|
|
78
|
+
const analytics = createInstance();
|
|
79
|
+
const experiment = config.experimentDeploymentKey !== undefined ? Experiment.initializeWithAmplitudeAnalytics(config.experimentDeploymentKey, {
|
|
80
|
+
...storagePreset?.experiment,
|
|
81
|
+
...config.experiment,
|
|
82
|
+
instanceName,
|
|
83
|
+
httpClient: dryRunEnabled ? config.experiment?.httpClient ?? dryRunHttpClient : config.experiment?.httpClient
|
|
84
|
+
}) : undefined;
|
|
85
|
+
const combined = {
|
|
86
|
+
analytics,
|
|
87
|
+
experiment,
|
|
88
|
+
init: async user => {
|
|
89
|
+
await analytics.init(config.analyticsApiKey, config.userId, {
|
|
90
|
+
...storagePreset?.analytics,
|
|
91
|
+
...config.analytics,
|
|
92
|
+
instanceName,
|
|
93
|
+
transportProvider: dryRunEnabled ? config.analytics?.transportProvider ?? dryRunTransport : config.analytics?.transportProvider ?? storagePreset?.analytics.transportProvider
|
|
94
|
+
}).promise;
|
|
95
|
+
if (experiment && user) {
|
|
96
|
+
experiment.setUser(user);
|
|
97
|
+
}
|
|
98
|
+
return combined;
|
|
99
|
+
},
|
|
100
|
+
flush: async () => analytics.flush().promise,
|
|
101
|
+
reset: () => analytics.reset(),
|
|
102
|
+
getUserId: () => analytics.getUserId(),
|
|
103
|
+
getDeviceId: () => analytics.getDeviceId()
|
|
104
|
+
};
|
|
105
|
+
return combined;
|
|
106
|
+
}
|
|
107
|
+
export function getConnectorIdentity(instanceName = "$default_instance") {
|
|
108
|
+
return getAnalyticsConnector(instanceName).identityStore.getIdentity();
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=presets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getAnalyticsConnector","createInstance","NetworkGuardedFetchTransport","isNative","Experiment","dryRunHttpClient","dryRunTransport","getStorageModule","require","getAnalyticsTransport","nitroTransport","createDurableAmplitudeStoragePreset","options","namespace","NitroAnalyticsStorage","NitroExperimentStorage","analyticsEvents","analyticsSession","experimentVariants","analytics","storageProvider","cookieStorage","transportProvider","dryRun","experiment","storage","clear","reset","createPersistentAmplitudeConfig","namespaceOrOptions","createExperimentUser","user","user_properties","undefined","groups","group_properties","createAmplitudeClient","config","instanceName","dryRunEnabled","durableStorage","storagePreset","experimentDeploymentKey","initializeWithAmplitudeAnalytics","httpClient","combined","init","analyticsApiKey","userId","promise","setUser","flush","getUserId","getDeviceId","getConnectorIdentity","identityStore","getIdentity"],"sourceRoot":"../../src","sources":["presets.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function createMockFunction(implementation) {
|
|
4
|
+
const fn = (...args) => {
|
|
5
|
+
fn.calls.push(args);
|
|
6
|
+
return implementation(...args);
|
|
7
|
+
};
|
|
8
|
+
fn.calls = [];
|
|
9
|
+
return fn;
|
|
10
|
+
}
|
|
11
|
+
function createReturn(eventType) {
|
|
12
|
+
const result = {
|
|
13
|
+
event: {
|
|
14
|
+
event_type: eventType
|
|
15
|
+
},
|
|
16
|
+
code: 200,
|
|
17
|
+
message: "dry_run"
|
|
18
|
+
};
|
|
19
|
+
return {
|
|
20
|
+
promise: Promise.resolve(result)
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export function createFakeExperimentStorage(initialValues = {}) {
|
|
24
|
+
const values = new Map(Object.entries(initialValues));
|
|
25
|
+
return {
|
|
26
|
+
values,
|
|
27
|
+
get: async key => values.get(key) ?? null,
|
|
28
|
+
put: async (key, value) => {
|
|
29
|
+
values.set(key, value);
|
|
30
|
+
},
|
|
31
|
+
delete: async key => {
|
|
32
|
+
values.delete(key);
|
|
33
|
+
},
|
|
34
|
+
reset: async () => {
|
|
35
|
+
values.clear();
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export function createMockAmplitudeClient() {
|
|
40
|
+
let userId;
|
|
41
|
+
let deviceId = "mock-device-id";
|
|
42
|
+
let sessionId;
|
|
43
|
+
const client = {
|
|
44
|
+
init: createMockFunction((_, nextUserId) => {
|
|
45
|
+
userId = nextUserId;
|
|
46
|
+
return createReturn("$init");
|
|
47
|
+
}),
|
|
48
|
+
track: createMockFunction(() => createReturn("$track")),
|
|
49
|
+
logEvent: createMockFunction(() => createReturn("$track")),
|
|
50
|
+
identify: createMockFunction(() => createReturn("$identify")),
|
|
51
|
+
groupIdentify: createMockFunction(() => createReturn("$groupidentify")),
|
|
52
|
+
setGroup: createMockFunction(() => createReturn("$groupidentify")),
|
|
53
|
+
revenue: createMockFunction(() => createReturn("revenue_amount")),
|
|
54
|
+
flush: createMockFunction(() => createReturn("$flush")),
|
|
55
|
+
flushWithResult: createMockFunction(async () => ({
|
|
56
|
+
ok: true,
|
|
57
|
+
sent: 0,
|
|
58
|
+
failed: 0,
|
|
59
|
+
dropped: 0,
|
|
60
|
+
retried: 0,
|
|
61
|
+
finishedAt: Date.now()
|
|
62
|
+
})),
|
|
63
|
+
add: createMockFunction(() => createReturn("$add")),
|
|
64
|
+
remove: createMockFunction(() => createReturn("$remove")),
|
|
65
|
+
setUserId: createMockFunction(nextUserId => {
|
|
66
|
+
userId = nextUserId;
|
|
67
|
+
}),
|
|
68
|
+
getUserId: createMockFunction(() => userId),
|
|
69
|
+
setDeviceId: createMockFunction(nextDeviceId => {
|
|
70
|
+
deviceId = nextDeviceId;
|
|
71
|
+
}),
|
|
72
|
+
getDeviceId: createMockFunction(() => deviceId),
|
|
73
|
+
setSessionId: createMockFunction(nextSessionId => {
|
|
74
|
+
sessionId = nextSessionId;
|
|
75
|
+
}),
|
|
76
|
+
getSessionId: createMockFunction(() => sessionId),
|
|
77
|
+
extendSession: createMockFunction(() => undefined),
|
|
78
|
+
setOptOut: createMockFunction(() => undefined),
|
|
79
|
+
reset: createMockFunction(() => {
|
|
80
|
+
userId = undefined;
|
|
81
|
+
deviceId = "mock-device-id-reset";
|
|
82
|
+
}),
|
|
83
|
+
shutdown: createMockFunction(() => undefined),
|
|
84
|
+
getDiagnostics: createMockFunction(() => ({
|
|
85
|
+
initialized: true,
|
|
86
|
+
userId,
|
|
87
|
+
deviceId,
|
|
88
|
+
sessionId,
|
|
89
|
+
queueSize: 0,
|
|
90
|
+
activeInstanceNames: ["$default_instance"]
|
|
91
|
+
})),
|
|
92
|
+
healthCheck: createMockFunction(async () => ({
|
|
93
|
+
ok: true,
|
|
94
|
+
analyticsInitialized: true,
|
|
95
|
+
nativeAvailable: true,
|
|
96
|
+
storageWritable: true,
|
|
97
|
+
errors: []
|
|
98
|
+
}))
|
|
99
|
+
};
|
|
100
|
+
return client;
|
|
101
|
+
}
|
|
102
|
+
export function createMockExperimentClient(initialVariants = {}) {
|
|
103
|
+
let user = {};
|
|
104
|
+
const variants = new Map(Object.entries(initialVariants));
|
|
105
|
+
let client;
|
|
106
|
+
client = {
|
|
107
|
+
start: createMockFunction(async nextUser => {
|
|
108
|
+
user = nextUser ?? user;
|
|
109
|
+
}),
|
|
110
|
+
stop: createMockFunction(() => undefined),
|
|
111
|
+
fetch: createMockFunction(async () => client),
|
|
112
|
+
fetchWithMetadata: createMockFunction(async () => ({
|
|
113
|
+
fetched: true,
|
|
114
|
+
flagKeys: Array.from(variants.keys()),
|
|
115
|
+
cacheHit: false,
|
|
116
|
+
durationMillis: 0,
|
|
117
|
+
source: "network"
|
|
118
|
+
})),
|
|
119
|
+
fetchOrThrow: createMockFunction(async () => client),
|
|
120
|
+
variant: createMockFunction((key, fallback) => {
|
|
121
|
+
return variants.get(key) ?? normalizeFallback(fallback);
|
|
122
|
+
}),
|
|
123
|
+
variantWithMetadata: createMockFunction((key, fallback) => ({
|
|
124
|
+
variant: variants.get(key) ?? normalizeFallback(fallback),
|
|
125
|
+
fallback: !variants.has(key),
|
|
126
|
+
stale: false,
|
|
127
|
+
reason: variants.has(key) ? undefined : "fallback"
|
|
128
|
+
})),
|
|
129
|
+
all: createMockFunction(() => Object.fromEntries(variants)),
|
|
130
|
+
clear: createMockFunction(() => variants.clear()),
|
|
131
|
+
clearVariants: createMockFunction(() => variants.clear()),
|
|
132
|
+
hasCachedVariant: createMockFunction(key => variants.has(key)),
|
|
133
|
+
getLastFetchTime: createMockFunction(() => undefined),
|
|
134
|
+
exposure: createMockFunction(() => undefined),
|
|
135
|
+
getUser: createMockFunction(() => ({
|
|
136
|
+
...user
|
|
137
|
+
})),
|
|
138
|
+
setUser: createMockFunction(nextUser => {
|
|
139
|
+
user = {
|
|
140
|
+
...nextUser
|
|
141
|
+
};
|
|
142
|
+
}),
|
|
143
|
+
getUserProvider: createMockFunction(() => ({
|
|
144
|
+
getUser: async () => ({
|
|
145
|
+
...user
|
|
146
|
+
})
|
|
147
|
+
})),
|
|
148
|
+
setUserProvider: createMockFunction(() => client)
|
|
149
|
+
};
|
|
150
|
+
return client;
|
|
151
|
+
function normalizeFallback(fallback) {
|
|
152
|
+
if (typeof fallback === "string") {
|
|
153
|
+
return {
|
|
154
|
+
value: fallback
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
return fallback ?? {};
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createMockFunction","implementation","fn","args","calls","push","createReturn","eventType","result","event","event_type","code","message","promise","Promise","resolve","createFakeExperimentStorage","initialValues","values","Map","Object","entries","get","key","put","value","set","delete","reset","clear","createMockAmplitudeClient","userId","deviceId","sessionId","client","init","_","nextUserId","track","logEvent","identify","groupIdentify","setGroup","revenue","flush","flushWithResult","ok","sent","failed","dropped","retried","finishedAt","Date","now","add","remove","setUserId","getUserId","setDeviceId","nextDeviceId","getDeviceId","setSessionId","nextSessionId","getSessionId","extendSession","undefined","setOptOut","shutdown","getDiagnostics","initialized","queueSize","activeInstanceNames","healthCheck","analyticsInitialized","nativeAvailable","storageWritable","errors","createMockExperimentClient","initialVariants","user","variants","start","nextUser","stop","fetch","fetchWithMetadata","fetched","flagKeys","Array","from","keys","cacheHit","durationMillis","source","fetchOrThrow","variant","fallback","normalizeFallback","variantWithMetadata","has","stale","reason","all","fromEntries","clearVariants","hasCachedVariant","getLastFetchTime","exposure","getUser","setUser","getUserProvider","setUserProvider"],"sourceRoot":"../../src","sources":["testing.ts"],"mappings":";;AAaA,SAASA,kBAAkBA,CACzBC,cAAyC,EACb;EAC5B,MAAMC,EAAE,GAAIA,CAAC,GAAGC,IAAU,KAAK;IAC7BD,EAAE,CAACE,KAAK,CAACC,IAAI,CAACF,IAAI,CAAC;IACnB,OAAOF,cAAc,CAAC,GAAGE,IAAI,CAAC;EAChC,CAAgC;EAChCD,EAAE,CAACE,KAAK,GAAG,EAAE;EACb,OAAOF,EAAE;AACX;AAEA,SAASI,YAAYA,CAACC,SAAiB,EAA2B;EAChE,MAAMC,MAAc,GAAG;IACrBC,KAAK,EAAE;MAAEC,UAAU,EAAEH;IAAU,CAAC;IAChCI,IAAI,EAAE,GAAG;IACTC,OAAO,EAAE;EACX,CAAC;EACD,OAAO;IACLC,OAAO,EAAEC,OAAO,CAACC,OAAO,CAACP,MAAM;EACjC,CAAC;AACH;AAMA,OAAO,SAASQ,2BAA2BA,CACzCC,aAAqC,GAAG,CAAC,CAAC,EACnB;EACvB,MAAMC,MAAM,GAAG,IAAIC,GAAG,CAACC,MAAM,CAACC,OAAO,CAACJ,aAAa,CAAC,CAAC;EACrD,OAAO;IACLC,MAAM;IACNI,GAAG,EAAE,MAAOC,GAAG,IAAKL,MAAM,CAACI,GAAG,CAACC,GAAG,CAAC,IAAI,IAAI;IAC3CC,GAAG,EAAE,MAAAA,CAAOD,GAAG,EAAEE,KAAK,KAAK;MACzBP,MAAM,CAACQ,GAAG,CAACH,GAAG,EAAEE,KAAK,CAAC;IACxB,CAAC;IACDE,MAAM,EAAE,MAAOJ,GAAG,IAAK;MACrBL,MAAM,CAACS,MAAM,CAACJ,GAAG,CAAC;IACpB,CAAC;IACDK,KAAK,EAAE,MAAAA,CAAA,KAAY;MACjBV,MAAM,CAACW,KAAK,CAAC,CAAC;IAChB;EACF,CAAC;AACH;AAEA,OAAO,SAASC,yBAAyBA,CAAA,EAA+B;EACtE,IAAIC,MAA0B;EAC9B,IAAIC,QAAQ,GAAG,gBAAgB;EAC/B,IAAIC,SAA6B;EACjC,MAAMC,MAAM,GAAG;IACbC,IAAI,EAAEnC,kBAAkB,CAAC,CAACoC,CAAS,EAAEC,UAAmB,KAAK;MAC3DN,MAAM,GAAGM,UAAU;MACnB,OAAO/B,YAAY,CAAC,OAAO,CAAC;IAC9B,CAAC,CAAC;IACFgC,KAAK,EAAEtC,kBAAkB,CAAC,MAAMM,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvDiC,QAAQ,EAAEvC,kBAAkB,CAAC,MAAMM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1DkC,QAAQ,EAAExC,kBAAkB,CAAC,MAAMM,YAAY,CAAC,WAAW,CAAC,CAAC;IAC7DmC,aAAa,EAAEzC,kBAAkB,CAAC,MAAMM,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACvEoC,QAAQ,EAAE1C,kBAAkB,CAAC,MAAMM,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAClEqC,OAAO,EAAE3C,kBAAkB,CAAC,MAAMM,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACjEsC,KAAK,EAAE5C,kBAAkB,CAAC,MAAMM,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvDuC,eAAe,EAAE7C,kBAAkB,CAAC,aAAa;MAC/C8C,EAAE,EAAE,IAAI;MACRC,IAAI,EAAE,CAAC;MACPC,MAAM,EAAE,CAAC;MACTC,OAAO,EAAE,CAAC;MACVC,OAAO,EAAE,CAAC;MACVC,UAAU,EAAEC,IAAI,CAACC,GAAG,CAAC;IACvB,CAAC,CAAC,CAAC;IACHC,GAAG,EAAEtD,kBAAkB,CAAC,MAAMM,YAAY,CAAC,MAAM,CAAC,CAAC;IACnDiD,MAAM,EAAEvD,kBAAkB,CAAC,MAAMM,YAAY,CAAC,SAAS,CAAC,CAAC;IACzDkD,SAAS,EAAExD,kBAAkB,CAAEqC,UAA8B,IAAK;MAChEN,MAAM,GAAGM,UAAU;IACrB,CAAC,CAAC;IACFoB,SAAS,EAAEzD,kBAAkB,CAAC,MAAM+B,MAAM,CAAC;IAC3C2B,WAAW,EAAE1D,kBAAkB,CAAE2D,YAAoB,IAAK;MACxD3B,QAAQ,GAAG2B,YAAY;IACzB,CAAC,CAAC;IACFC,WAAW,EAAE5D,kBAAkB,CAAC,MAAMgC,QAAQ,CAAC;IAC/C6B,YAAY,EAAE7D,kBAAkB,CAAE8D,aAAqB,IAAK;MAC1D7B,SAAS,GAAG6B,aAAa;IAC3B,CAAC,CAAC;IACFC,YAAY,EAAE/D,kBAAkB,CAAC,MAAMiC,SAAS,CAAC;IACjD+B,aAAa,EAAEhE,kBAAkB,CAAC,MAAMiE,SAAS,CAAC;IAClDC,SAAS,EAAElE,kBAAkB,CAAC,MAAMiE,SAAS,CAAC;IAC9CrC,KAAK,EAAE5B,kBAAkB,CAAC,MAAM;MAC9B+B,MAAM,GAAGkC,SAAS;MAClBjC,QAAQ,GAAG,sBAAsB;IACnC,CAAC,CAAC;IACFmC,QAAQ,EAAEnE,kBAAkB,CAAC,MAAMiE,SAAS,CAAC;IAC7CG,cAAc,EAAEpE,kBAAkB,CAAC,OAAO;MACxCqE,WAAW,EAAE,IAAI;MACjBtC,MAAM;MACNC,QAAQ;MACRC,SAAS;MACTqC,SAAS,EAAE,CAAC;MACZC,mBAAmB,EAAE,CAAC,mBAAmB;IAC3C,CAAC,CAAC,CAAC;IACHC,WAAW,EAAExE,kBAAkB,CAAC,aAAa;MAC3C8C,EAAE,EAAE,IAAI;MACR2B,oBAAoB,EAAE,IAAI;MAC1BC,eAAe,EAAE,IAAI;MACrBC,eAAe,EAAE,IAAI;MACrBC,MAAM,EAAE;IACV,CAAC,CAAC;EACJ,CAAC;EACD,OAAO1C,MAAM;AACf;AAEA,OAAO,SAAS2C,0BAA0BA,CACxCC,eAAyB,GAAG,CAAC,CAAC,EACtB;EACR,IAAIC,IAAoB,GAAG,CAAC,CAAC;EAC7B,MAAMC,QAAQ,GAAG,IAAI7D,GAAG,CAAkBC,MAAM,CAACC,OAAO,CAACyD,eAAe,CAAC,CAAC;EAC1E,IAAI5C,MAAc;EAClBA,MAAM,GAAG;IACP+C,KAAK,EAAEjF,kBAAkB,CAAC,MAAOkF,QAAyB,IAAK;MAC7DH,IAAI,GAAGG,QAAQ,IAAIH,IAAI;IACzB,CAAC,CAAC;IACFI,IAAI,EAAEnF,kBAAkB,CAAC,MAAMiE,SAAS,CAAC;IACzCmB,KAAK,EAAEpF,kBAAkB,CAAC,YAAYkC,MAAM,CAAC;IAC7CmD,iBAAiB,EAAErF,kBAAkB,CAAC,aAAa;MACjDsF,OAAO,EAAE,IAAI;MACbC,QAAQ,EAAEC,KAAK,CAACC,IAAI,CAACT,QAAQ,CAACU,IAAI,CAAC,CAAC,CAAC;MACrCC,QAAQ,EAAE,KAAK;MACfC,cAAc,EAAE,CAAC;MACjBC,MAAM,EAAE;IACV,CAAC,CAAC,CAAC;IACHC,YAAY,EAAE9F,kBAAkB,CAAC,YAAYkC,MAAM,CAAC;IACpD6D,OAAO,EAAE/F,kBAAkB,CAAC,CAACuB,GAAW,EAAEyE,QAA2B,KAAK;MACxE,OAAOhB,QAAQ,CAAC1D,GAAG,CAACC,GAAG,CAAC,IAAI0E,iBAAiB,CAACD,QAAQ,CAAC;IACzD,CAAC,CAAC;IACFE,mBAAmB,EAAElG,kBAAkB,CACrC,CAACuB,GAAW,EAAEyE,QAA2B,MAAM;MAC7CD,OAAO,EAAEf,QAAQ,CAAC1D,GAAG,CAACC,GAAG,CAAC,IAAI0E,iBAAiB,CAACD,QAAQ,CAAC;MACzDA,QAAQ,EAAE,CAAChB,QAAQ,CAACmB,GAAG,CAAC5E,GAAG,CAAC;MAC5B6E,KAAK,EAAE,KAAK;MACZC,MAAM,EAAErB,QAAQ,CAACmB,GAAG,CAAC5E,GAAG,CAAC,GAAG0C,SAAS,GAAG;IAC1C,CAAC,CACH,CAAC;IACDqC,GAAG,EAAEtG,kBAAkB,CAAC,MAAMoB,MAAM,CAACmF,WAAW,CAACvB,QAAQ,CAAC,CAAC;IAC3DnD,KAAK,EAAE7B,kBAAkB,CAAC,MAAMgF,QAAQ,CAACnD,KAAK,CAAC,CAAC,CAAC;IACjD2E,aAAa,EAAExG,kBAAkB,CAAC,MAAMgF,QAAQ,CAACnD,KAAK,CAAC,CAAC,CAAC;IACzD4E,gBAAgB,EAAEzG,kBAAkB,CAAEuB,GAAW,IAAKyD,QAAQ,CAACmB,GAAG,CAAC5E,GAAG,CAAC,CAAC;IACxEmF,gBAAgB,EAAE1G,kBAAkB,CAAC,MAAMiE,SAAS,CAAC;IACrD0C,QAAQ,EAAE3G,kBAAkB,CAAC,MAAMiE,SAAS,CAAC;IAC7C2C,OAAO,EAAE5G,kBAAkB,CAAC,OAAO;MAAE,GAAG+E;IAAK,CAAC,CAAC,CAAC;IAChD8B,OAAO,EAAE7G,kBAAkB,CAAEkF,QAAwB,IAAK;MACxDH,IAAI,GAAG;QAAE,GAAGG;MAAS,CAAC;IACxB,CAAC,CAAC;IACF4B,eAAe,EAAE9G,kBAAkB,CAAC,OAAO;MACzC4G,OAAO,EAAE,MAAAA,CAAA,MAAa;QAAE,GAAG7B;MAAK,CAAC;IACnC,CAAC,CAAC,CAAC;IACHgC,eAAe,EAAE/G,kBAAkB,CAAC,MAAMkC,MAAM;EAClD,CAAC;EACD,OAAOA,MAAM;EAEb,SAAS+D,iBAAiBA,CAACD,QAA2B,EAAW;IAC/D,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;MAChC,OAAO;QAAEvE,KAAK,EAAEuE;MAAS,CAAC;IAC5B;IACA,OAAOA,QAAQ,IAAI,CAAC,CAAC;EACvB;AACF","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Config, MemoryStorage, ReactNativeConfig as IReactNativeConfig, ReactNativeTrackingOptions, Event, ReactNativeOptions, Storage, UserSession } from "@amplitude/analytics-core";
|
|
2
|
-
import {
|
|
2
|
+
import type { Transport } from "@amplitude/analytics-core";
|
|
3
3
|
export declare const getDefaultConfig: () => {
|
|
4
4
|
cookieExpiration: number;
|
|
5
5
|
cookieSameSite: string;
|
|
@@ -9,10 +9,10 @@ export declare const getDefaultConfig: () => {
|
|
|
9
9
|
disableCookies: boolean;
|
|
10
10
|
domain: string;
|
|
11
11
|
sessionTimeout: number;
|
|
12
|
-
storageProvider: NitroAnalyticsStorage<Event[]>;
|
|
12
|
+
storageProvider: import("..").NitroAnalyticsStorage<Event[]>;
|
|
13
13
|
trackingSessionEvents: boolean;
|
|
14
14
|
trackingOptions: Required<ReactNativeTrackingOptions>;
|
|
15
|
-
transportProvider:
|
|
15
|
+
transportProvider: Transport;
|
|
16
16
|
};
|
|
17
17
|
export declare class ReactNativeConfig extends Config implements IReactNativeConfig {
|
|
18
18
|
appVersion?: string;
|
|
@@ -58,11 +58,24 @@ export declare const createCookieStorage: <T>(overrides?: ReactNativeOptions, ba
|
|
|
58
58
|
disableCookies: boolean;
|
|
59
59
|
domain: string;
|
|
60
60
|
sessionTimeout: number;
|
|
61
|
-
storageProvider: NitroAnalyticsStorage<Event[]>;
|
|
61
|
+
storageProvider: import("..").NitroAnalyticsStorage<Event[]>;
|
|
62
62
|
trackingSessionEvents: boolean;
|
|
63
63
|
trackingOptions: Required<ReactNativeTrackingOptions>;
|
|
64
|
-
transportProvider:
|
|
64
|
+
transportProvider: Transport;
|
|
65
65
|
}) => Promise<Storage<T>>;
|
|
66
|
-
export declare const createEventsStorage: (overrides?: ReactNativeOptions
|
|
66
|
+
export declare const createEventsStorage: (overrides?: ReactNativeOptions, baseConfig?: {
|
|
67
|
+
cookieExpiration: number;
|
|
68
|
+
cookieSameSite: string;
|
|
69
|
+
cookieSecure: boolean;
|
|
70
|
+
cookieStorage: MemoryStorage<UserSession>;
|
|
71
|
+
cookieUpgrade: boolean;
|
|
72
|
+
disableCookies: boolean;
|
|
73
|
+
domain: string;
|
|
74
|
+
sessionTimeout: number;
|
|
75
|
+
storageProvider: import("..").NitroAnalyticsStorage<Event[]>;
|
|
76
|
+
trackingSessionEvents: boolean;
|
|
77
|
+
trackingOptions: Required<ReactNativeTrackingOptions>;
|
|
78
|
+
transportProvider: Transport;
|
|
79
|
+
}) => Promise<Storage<Event[]> | undefined>;
|
|
67
80
|
export declare const getTopLevelDomain: (url?: string) => Promise<string>;
|
|
68
81
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/analytics/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,aAAa,EAEb,iBAAiB,IAAI,kBAAkB,EACvC,0BAA0B,EAC1B,KAAK,EACL,kBAAkB,EAClB,OAAO,EACP,WAAW,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/analytics/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,aAAa,EAEb,iBAAiB,IAAI,kBAAkB,EACvC,0BAA0B,EAC1B,KAAK,EACL,kBAAkB,EAClB,OAAO,EACP,WAAW,EAIZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA2B3D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;CA8B5B,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,MAAO,YAAW,kBAAkB;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,0BAA0B,CAAC;IAG5C,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,OAAO,UAAS;IAC1B,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEf,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAwCxD,IAAI,QAAQ,IAIW,MAAM,GAAG,SAAS,CAFxC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAKxC;IAED,IAAI,MAAM,IAIS,MAAM,GAAG,SAAS,CAFpC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAKpC;IAED,IAAI,SAAS,IAIY,MAAM,GAAG,SAAS,CAF1C;IAED,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAK1C;IAED,IAAI,MAAM,IAIS,OAAO,CAFzB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAKzB;IAED,IAAI,aAAa,IAIgB,MAAM,GAAG,SAAS,CAFlD;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAKlD;IAED,IAAI,WAAW,IAIc,MAAM,GAAG,SAAS,CAF9C;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAK9C;IAED,OAAO,CAAC,aAAa;CAuBtB;AAED,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,UAAU,kBAAkB,KAC3B,OAAO,CAAC,kBAAkB,CAwE5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,CAAC,EACzC,YAAY,kBAAkB,EAC9B;;;;;;;;;;;;;CAA+B,KAC9B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAOpB,CAAC;AA6BF,eAAO,MAAM,mBAAmB,GAC9B,YAAY,kBAAkB,EAC9B;;;;;;;;;;;;;CAA+B,KAC9B,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,CAqBtC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAU,MAAM,MAAM,oBA6BnD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Types from "./types";
|
|
2
2
|
export { createInstance } from "./react-native-client";
|
|
3
|
-
export declare const add: (plugin: Types.Plugin<Types.ReactNativeClient, Types.ReactNativeConfig>) => Types.AmplitudeReturn<void>, flush: () => Types.AmplitudeReturn<void>, getDeviceId: () => string | undefined, getSessionId: () => number | undefined, getUserId: () => string | undefined, groupIdentify: (groupType: string, groupName: string | string[], identify: Types.IIdentify, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, identify: (identify: Types.IIdentify, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, init: (apiKey: string, userId?: string, options?: Types.ReactNativeOptions) => Types.AmplitudeReturn<void>, logEvent: (eventInput: Types.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, remove: (pluginName: string) => Types.AmplitudeReturn<void>, reset: () => void, revenue: (revenue: Types.IRevenue, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setUserId: (userId: string | undefined) => void, shutdown: () => void, track: (eventInput: Types.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, extendSession: () => void
|
|
3
|
+
export declare const add: (plugin: Types.Plugin<Types.ReactNativeClient, Types.ReactNativeConfig>) => Types.AmplitudeReturn<void>, flush: () => Types.AmplitudeReturn<void>, getDeviceId: () => string | undefined, getSessionId: () => number | undefined, getUserId: () => string | undefined, groupIdentify: (groupType: string, groupName: string | string[], identify: Types.IIdentify, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, identify: (identify: Types.IIdentify, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, init: (apiKey: string, userId?: string, options?: Types.ReactNativeOptions) => Types.AmplitudeReturn<void>, logEvent: (eventInput: Types.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, remove: (pluginName: string) => Types.AmplitudeReturn<void>, reset: () => void, revenue: (revenue: Types.IRevenue, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setUserId: (userId: string | undefined) => void, shutdown: () => void, track: (eventInput: Types.BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: Types.EventOptions) => Types.AmplitudeReturn<Types.Result>, extendSession: () => void, flushWithResult: () => Promise<import("./react-native-client").AmplitudeFlushResult>, getDiagnostics: () => import("./react-native-client").AmplitudeAnalyticsDiagnostics, healthCheck: () => Promise<import("./react-native-client").AmplitudeHealthCheckResult>;
|
|
4
4
|
export { Revenue, Identify } from "@amplitude/analytics-core";
|
|
5
5
|
export { InMemoryStorage, LocalStorage, MemoryStorage, } from "./storage/local-storage";
|
|
6
6
|
export { Types };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analytics/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,eAAO,MACL,GAAG,2GACH,KAAK,qCACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,0JACb,QAAQ,yGACR,IAAI,wGACJ,QAAQ,2JACR,MAAM,uDACN,KAAK,cACL,OAAO,uGACP,WAAW,8BACX,QAAQ,+HACR,SAAS,6BACT,YAAY,+BACZ,SAAS,wCACT,QAAQ,cACR,KAAK,2JACL,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analytics/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,eAAO,MACL,GAAG,2GACH,KAAK,qCACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,0JACb,QAAQ,yGACR,IAAI,wGACJ,QAAQ,2JACR,MAAM,uDACN,KAAK,cACL,OAAO,uGACP,WAAW,8BACX,QAAQ,+HACR,SAAS,6BACT,YAAY,+BACZ,SAAS,wCACT,QAAQ,cACR,KAAK,2JACL,aAAa,cACb,eAAe,uEACf,cAAc,uEACd,WAAW,2EACH,CAAC;AAEX,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FetchTransport } from "@amplitude/analytics-core";
|
|
2
|
+
import type { Payload, Response } from "@amplitude/analytics-core";
|
|
3
|
+
export declare class NetworkGuardedFetchTransport extends FetchTransport {
|
|
4
|
+
send(serverUrl: string, payload: Payload): Promise<Response | null>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=network-guarded-fetch-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-guarded-fetch-transport.d.ts","sourceRoot":"","sources":["../../../src/analytics/network-guarded-fetch-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGnE,qBAAa,4BAA6B,SAAQ,cAAc;IACxD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAI1E"}
|