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
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { FetchHttpClient } from "../experiment/transport/http";
|
|
4
|
+
import { assertNetworkEnabled } from "../network";
|
|
5
|
+
export class NitroHttpClient {
|
|
6
|
+
request(requestUrl, method, headers, data, timeoutMillis = 10000) {
|
|
7
|
+
assertNetworkEnabled();
|
|
8
|
+
return FetchHttpClient.request(requestUrl, method, headers, data ?? "", timeoutMillis);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export const nitroHttpClient = new NitroHttpClient();
|
|
12
|
+
//# sourceMappingURL=http.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FetchHttpClient","assertNetworkEnabled","NitroHttpClient","request","requestUrl","method","headers","data","timeoutMillis","nitroHttpClient"],"sourceRoot":"../../../src","sources":["native/http.web.ts"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,8BAA8B;AAE9D,SAASC,oBAAoB,QAAQ,YAAY;AAEjD,OAAO,MAAMC,eAAe,CAAuB;EACjDC,OAAOA,CACLC,UAAkB,EAClBC,MAAc,EACdC,OAA+B,EAC/BC,IAAmB,EACnBC,aAAa,GAAG,KAAK,EACI;IACzBP,oBAAoB,CAAC,CAAC;IACtB,OAAOD,eAAe,CAACG,OAAO,CAC5BC,UAAU,EACVC,MAAM,EACNC,OAAO,EACPC,IAAI,IAAI,EAAE,EACVC,aACF,CAAC;EACH;AACF;AAEA,OAAO,MAAMC,eAAe,GAAG,IAAIP,eAAe,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function unavailable() {
|
|
4
|
+
throw new Error("Nitro Amplitude native bindings are not available on web");
|
|
5
|
+
}
|
|
6
|
+
export function getAmplitudeContext() {
|
|
7
|
+
return unavailable();
|
|
8
|
+
}
|
|
9
|
+
export function getAmplitudeStorage() {
|
|
10
|
+
return unavailable();
|
|
11
|
+
}
|
|
12
|
+
export function getAmplitudeWorker() {
|
|
13
|
+
return unavailable();
|
|
14
|
+
}
|
|
15
|
+
export function resetHybridInstancesForTests() {}
|
|
16
|
+
//# sourceMappingURL=hybrid.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["unavailable","Error","getAmplitudeContext","getAmplitudeStorage","getAmplitudeWorker","resetHybridInstancesForTests"],"sourceRoot":"../../../src","sources":["native/hybrid.web.ts"],"mappings":";;AAIA,SAASA,WAAWA,CAAA,EAAU;EAC5B,MAAM,IAAIC,KAAK,CAAC,0DAA0D,CAAC;AAC7E;AAEA,OAAO,SAASC,mBAAmBA,CAAA,EAAqB;EACtD,OAAOF,WAAW,CAAC,CAAC;AACtB;AAEA,OAAO,SAASG,mBAAmBA,CAAA,EAAqB;EACtD,OAAOH,WAAW,CAAC,CAAC;AACtB;AAEA,OAAO,SAASI,kBAAkBA,CAAA,EAAoB;EACpD,OAAOJ,WAAW,CAAC,CAAC;AACtB;AAEA,OAAO,SAASK,4BAA4BA,CAAA,EAAS,CAAC","ignoreList":[]}
|
|
@@ -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,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function namespaceKey(namespace, key) {
|
|
4
|
+
return `${namespace}::${key}`;
|
|
5
|
+
}
|
|
6
|
+
class WebStringStorage {
|
|
7
|
+
static memory = new Map();
|
|
8
|
+
constructor(namespace) {
|
|
9
|
+
this.namespace = namespace;
|
|
10
|
+
}
|
|
11
|
+
get(key) {
|
|
12
|
+
const storageKey = namespaceKey(this.namespace, key);
|
|
13
|
+
try {
|
|
14
|
+
if (typeof localStorage !== "undefined") {
|
|
15
|
+
return localStorage.getItem(storageKey) ?? undefined;
|
|
16
|
+
}
|
|
17
|
+
} catch {}
|
|
18
|
+
return WebStringStorage.memory.get(storageKey);
|
|
19
|
+
}
|
|
20
|
+
set(key, value) {
|
|
21
|
+
const storageKey = namespaceKey(this.namespace, key);
|
|
22
|
+
WebStringStorage.memory.set(storageKey, value);
|
|
23
|
+
try {
|
|
24
|
+
if (typeof localStorage !== "undefined") {
|
|
25
|
+
localStorage.setItem(storageKey, value);
|
|
26
|
+
}
|
|
27
|
+
} catch {}
|
|
28
|
+
}
|
|
29
|
+
remove(key) {
|
|
30
|
+
const storageKey = namespaceKey(this.namespace, key);
|
|
31
|
+
WebStringStorage.memory.delete(storageKey);
|
|
32
|
+
try {
|
|
33
|
+
if (typeof localStorage !== "undefined") {
|
|
34
|
+
localStorage.removeItem(storageKey);
|
|
35
|
+
}
|
|
36
|
+
} catch {}
|
|
37
|
+
}
|
|
38
|
+
reset() {
|
|
39
|
+
const prefix = `${this.namespace}::`;
|
|
40
|
+
for (const key of WebStringStorage.memory.keys()) {
|
|
41
|
+
if (key.startsWith(prefix)) {
|
|
42
|
+
WebStringStorage.memory.delete(key);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
if (typeof localStorage !== "undefined") {
|
|
47
|
+
for (let index = localStorage.length - 1; index >= 0; index--) {
|
|
48
|
+
const key = localStorage.key(index);
|
|
49
|
+
if (key?.startsWith(prefix)) {
|
|
50
|
+
localStorage.removeItem(key);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
} catch {}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export class NitroAnalyticsStorage {
|
|
58
|
+
constructor(namespace) {
|
|
59
|
+
this.storage = new WebStringStorage(namespace);
|
|
60
|
+
}
|
|
61
|
+
async isEnabled() {
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
async get(key) {
|
|
65
|
+
const raw = await this.getRaw(key);
|
|
66
|
+
if (!raw) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
return JSON.parse(raw);
|
|
71
|
+
} catch {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async getRaw(key) {
|
|
76
|
+
return this.storage.get(key);
|
|
77
|
+
}
|
|
78
|
+
async set(key, value) {
|
|
79
|
+
this.storage.set(key, JSON.stringify(value));
|
|
80
|
+
}
|
|
81
|
+
async remove(key) {
|
|
82
|
+
this.storage.remove(key);
|
|
83
|
+
}
|
|
84
|
+
async reset() {
|
|
85
|
+
this.storage.reset();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
export class NitroExperimentStorage {
|
|
89
|
+
constructor(namespace) {
|
|
90
|
+
this.storage = new WebStringStorage(namespace);
|
|
91
|
+
}
|
|
92
|
+
async get(key) {
|
|
93
|
+
return this.storage.get(key) ?? null;
|
|
94
|
+
}
|
|
95
|
+
async put(key, value) {
|
|
96
|
+
this.storage.set(key, value);
|
|
97
|
+
}
|
|
98
|
+
async delete(key) {
|
|
99
|
+
this.storage.remove(key);
|
|
100
|
+
}
|
|
101
|
+
async reset() {
|
|
102
|
+
this.storage.reset();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export class NitroMemoryStorage {
|
|
106
|
+
values = new Map();
|
|
107
|
+
constructor(namespace) {
|
|
108
|
+
this.namespace = namespace;
|
|
109
|
+
}
|
|
110
|
+
async get(key) {
|
|
111
|
+
return this.values.get(namespaceKey(this.namespace, key)) ?? null;
|
|
112
|
+
}
|
|
113
|
+
async put(key, value) {
|
|
114
|
+
this.values.set(namespaceKey(this.namespace, key), value);
|
|
115
|
+
}
|
|
116
|
+
async delete(key) {
|
|
117
|
+
this.values.delete(namespaceKey(this.namespace, key));
|
|
118
|
+
}
|
|
119
|
+
async reset() {
|
|
120
|
+
const prefix = `${this.namespace}::`;
|
|
121
|
+
for (const key of this.values.keys()) {
|
|
122
|
+
if (key.startsWith(prefix)) {
|
|
123
|
+
this.values.delete(key);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=storage.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["namespaceKey","namespace","key","WebStringStorage","memory","Map","constructor","get","storageKey","localStorage","getItem","undefined","set","value","setItem","remove","delete","removeItem","reset","prefix","keys","startsWith","index","length","NitroAnalyticsStorage","storage","isEnabled","raw","getRaw","JSON","parse","stringify","NitroExperimentStorage","put","NitroMemoryStorage","values"],"sourceRoot":"../../../src","sources":["native/storage.web.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":[]}
|