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.
Files changed (176) hide show
  1. package/README.md +547 -55
  2. package/cpp/bindings/HybridAmplitudeWorker.cpp +27 -7
  3. package/lib/commonjs/analytics/config.js +31 -10
  4. package/lib/commonjs/analytics/config.js.map +1 -1
  5. package/lib/commonjs/analytics/index.js +8 -2
  6. package/lib/commonjs/analytics/index.js.map +1 -1
  7. package/lib/commonjs/analytics/network-guarded-fetch-transport.js +16 -0
  8. package/lib/commonjs/analytics/network-guarded-fetch-transport.js.map +1 -0
  9. package/lib/commonjs/analytics/nitro-transport.js +2 -0
  10. package/lib/commonjs/analytics/nitro-transport.js.map +1 -1
  11. package/lib/commonjs/analytics/plugins/context.js +7 -1
  12. package/lib/commonjs/analytics/plugins/context.js.map +1 -1
  13. package/lib/commonjs/analytics/react-native-client.js +155 -9
  14. package/lib/commonjs/analytics/react-native-client.js.map +1 -1
  15. package/lib/commonjs/diagnostics.js +92 -0
  16. package/lib/commonjs/diagnostics.js.map +1 -0
  17. package/lib/commonjs/errors.js +48 -0
  18. package/lib/commonjs/errors.js.map +1 -0
  19. package/lib/commonjs/experiment/experimentClient.js +84 -2
  20. package/lib/commonjs/experiment/experimentClient.js.map +1 -1
  21. package/lib/commonjs/experiment/index.js +12 -0
  22. package/lib/commonjs/experiment/index.js.map +1 -1
  23. package/lib/commonjs/experiment/stubClient.js +25 -0
  24. package/lib/commonjs/experiment/stubClient.js.map +1 -1
  25. package/lib/commonjs/experiment/transport/http.js +8 -2
  26. package/lib/commonjs/experiment/transport/http.js.map +1 -1
  27. package/lib/commonjs/experiment/typed-variants.js +52 -0
  28. package/lib/commonjs/experiment/typed-variants.js.map +1 -0
  29. package/lib/commonjs/experiment/types/config.js +32 -4
  30. package/lib/commonjs/experiment/types/config.js.map +1 -1
  31. package/lib/commonjs/index.js +105 -3
  32. package/lib/commonjs/index.js.map +1 -1
  33. package/lib/commonjs/index.web.js +387 -13
  34. package/lib/commonjs/index.web.js.map +1 -1
  35. package/lib/commonjs/native/context.web.js +26 -0
  36. package/lib/commonjs/native/context.web.js.map +1 -0
  37. package/lib/commonjs/native/http.js +23 -8
  38. package/lib/commonjs/native/http.js.map +1 -1
  39. package/lib/commonjs/native/http.web.js +17 -0
  40. package/lib/commonjs/native/http.web.js.map +1 -0
  41. package/lib/commonjs/native/hybrid.web.js +23 -0
  42. package/lib/commonjs/native/hybrid.web.js.map +1 -0
  43. package/lib/commonjs/native/storage.js +27 -15
  44. package/lib/commonjs/native/storage.js.map +1 -1
  45. package/lib/commonjs/native/storage.web.js +135 -0
  46. package/lib/commonjs/native/storage.web.js.map +1 -0
  47. package/lib/commonjs/network.js +154 -0
  48. package/lib/commonjs/network.js.map +1 -0
  49. package/lib/commonjs/presets.js +118 -0
  50. package/lib/commonjs/presets.js.map +1 -0
  51. package/lib/commonjs/testing.js +166 -0
  52. package/lib/commonjs/testing.js.map +1 -0
  53. package/lib/module/analytics/config.js +32 -11
  54. package/lib/module/analytics/config.js.map +1 -1
  55. package/lib/module/analytics/index.js +4 -1
  56. package/lib/module/analytics/index.js.map +1 -1
  57. package/lib/module/analytics/network-guarded-fetch-transport.js +11 -0
  58. package/lib/module/analytics/network-guarded-fetch-transport.js.map +1 -0
  59. package/lib/module/analytics/nitro-transport.js +2 -0
  60. package/lib/module/analytics/nitro-transport.js.map +1 -1
  61. package/lib/module/analytics/plugins/context.js +7 -1
  62. package/lib/module/analytics/plugins/context.js.map +1 -1
  63. package/lib/module/analytics/react-native-client.js +154 -9
  64. package/lib/module/analytics/react-native-client.js.map +1 -1
  65. package/lib/module/diagnostics.js +85 -0
  66. package/lib/module/diagnostics.js.map +1 -0
  67. package/lib/module/errors.js +41 -0
  68. package/lib/module/errors.js.map +1 -0
  69. package/lib/module/experiment/experimentClient.js +84 -2
  70. package/lib/module/experiment/experimentClient.js.map +1 -1
  71. package/lib/module/experiment/index.js +1 -0
  72. package/lib/module/experiment/index.js.map +1 -1
  73. package/lib/module/experiment/stubClient.js +25 -0
  74. package/lib/module/experiment/stubClient.js.map +1 -1
  75. package/lib/module/experiment/transport/http.js +8 -2
  76. package/lib/module/experiment/transport/http.js.map +1 -1
  77. package/lib/module/experiment/typed-variants.js +43 -0
  78. package/lib/module/experiment/typed-variants.js.map +1 -0
  79. package/lib/module/experiment/types/config.js +31 -4
  80. package/lib/module/experiment/types/config.js.map +1 -1
  81. package/lib/module/index.js +15 -3
  82. package/lib/module/index.js.map +1 -1
  83. package/lib/module/index.web.js +60 -11
  84. package/lib/module/index.web.js.map +1 -1
  85. package/lib/module/native/context.web.js +18 -0
  86. package/lib/module/native/context.web.js.map +1 -0
  87. package/lib/module/native/http.js +23 -8
  88. package/lib/module/native/http.js.map +1 -1
  89. package/lib/module/native/http.web.js +12 -0
  90. package/lib/module/native/http.web.js.map +1 -0
  91. package/lib/module/native/hybrid.web.js +16 -0
  92. package/lib/module/native/hybrid.web.js.map +1 -0
  93. package/lib/module/native/storage.js +27 -15
  94. package/lib/module/native/storage.js.map +1 -1
  95. package/lib/module/native/storage.web.js +128 -0
  96. package/lib/module/native/storage.web.js.map +1 -0
  97. package/lib/module/network.js +138 -0
  98. package/lib/module/network.js.map +1 -0
  99. package/lib/module/presets.js +110 -0
  100. package/lib/module/presets.js.map +1 -0
  101. package/lib/module/testing.js +160 -0
  102. package/lib/module/testing.js.map +1 -0
  103. package/lib/typescript/analytics/config.d.ts +19 -6
  104. package/lib/typescript/analytics/config.d.ts.map +1 -1
  105. package/lib/typescript/analytics/index.d.ts +1 -1
  106. package/lib/typescript/analytics/index.d.ts.map +1 -1
  107. package/lib/typescript/analytics/network-guarded-fetch-transport.d.ts +6 -0
  108. package/lib/typescript/analytics/network-guarded-fetch-transport.d.ts.map +1 -0
  109. package/lib/typescript/analytics/nitro-transport.d.ts.map +1 -1
  110. package/lib/typescript/analytics/plugins/context.d.ts +2 -0
  111. package/lib/typescript/analytics/plugins/context.d.ts.map +1 -1
  112. package/lib/typescript/analytics/react-native-client.d.ts +46 -6
  113. package/lib/typescript/analytics/react-native-client.d.ts.map +1 -1
  114. package/lib/typescript/diagnostics.d.ts +21 -0
  115. package/lib/typescript/diagnostics.d.ts.map +1 -0
  116. package/lib/typescript/errors.d.ts +9 -0
  117. package/lib/typescript/errors.d.ts.map +1 -0
  118. package/lib/typescript/experiment/experimentClient.d.ts +9 -1
  119. package/lib/typescript/experiment/experimentClient.d.ts.map +1 -1
  120. package/lib/typescript/experiment/index.d.ts +1 -0
  121. package/lib/typescript/experiment/index.d.ts.map +1 -1
  122. package/lib/typescript/experiment/stubClient.d.ts +6 -1
  123. package/lib/typescript/experiment/stubClient.d.ts.map +1 -1
  124. package/lib/typescript/experiment/transport/http.d.ts.map +1 -1
  125. package/lib/typescript/experiment/typed-variants.d.ts +9 -0
  126. package/lib/typescript/experiment/typed-variants.d.ts.map +1 -0
  127. package/lib/typescript/experiment/types/client.d.ts +21 -0
  128. package/lib/typescript/experiment/types/client.d.ts.map +1 -1
  129. package/lib/typescript/experiment/types/config.d.ts.map +1 -1
  130. package/lib/typescript/index.d.ts +12 -3
  131. package/lib/typescript/index.d.ts.map +1 -1
  132. package/lib/typescript/index.web.d.ts +37 -8
  133. package/lib/typescript/index.web.d.ts.map +1 -1
  134. package/lib/typescript/native/context.web.d.ts +8 -0
  135. package/lib/typescript/native/context.web.d.ts.map +1 -0
  136. package/lib/typescript/native/http.d.ts.map +1 -1
  137. package/lib/typescript/native/http.web.d.ts +6 -0
  138. package/lib/typescript/native/http.web.d.ts.map +1 -0
  139. package/lib/typescript/native/hybrid.web.d.ts +8 -0
  140. package/lib/typescript/native/hybrid.web.d.ts.map +1 -0
  141. package/lib/typescript/native/storage.d.ts.map +1 -1
  142. package/lib/typescript/native/storage.web.d.ts +30 -0
  143. package/lib/typescript/native/storage.web.d.ts.map +1 -0
  144. package/lib/typescript/network.d.ts +50 -0
  145. package/lib/typescript/network.d.ts.map +1 -0
  146. package/lib/typescript/presets.d.ts +50 -0
  147. package/lib/typescript/presets.d.ts.map +1 -0
  148. package/lib/typescript/testing.d.ts +11 -0
  149. package/lib/typescript/testing.d.ts.map +1 -0
  150. package/package.json +4 -2
  151. package/src/analytics/config.ts +33 -8
  152. package/src/analytics/index.ts +3 -0
  153. package/src/analytics/network-guarded-fetch-transport.ts +10 -0
  154. package/src/analytics/nitro-transport.ts +2 -0
  155. package/src/analytics/plugins/context.ts +10 -1
  156. package/src/analytics/react-native-client.ts +238 -9
  157. package/src/diagnostics.ts +119 -0
  158. package/src/errors.ts +60 -0
  159. package/src/experiment/experimentClient.ts +116 -3
  160. package/src/experiment/index.ts +1 -0
  161. package/src/experiment/stubClient.ts +42 -1
  162. package/src/experiment/transport/http.ts +10 -2
  163. package/src/experiment/typed-variants.ts +68 -0
  164. package/src/experiment/types/client.ts +29 -0
  165. package/src/experiment/types/config.ts +29 -5
  166. package/src/index.ts +28 -2
  167. package/src/index.web.ts +89 -14
  168. package/src/native/context.web.ts +38 -0
  169. package/src/native/http.ts +38 -8
  170. package/src/native/http.web.ts +24 -0
  171. package/src/native/hybrid.web.ts +21 -0
  172. package/src/native/storage.ts +27 -25
  173. package/src/native/storage.web.ts +152 -0
  174. package/src/network.ts +258 -0
  175. package/src/presets.ts +208 -0
  176. 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
- return getAmplitudeStorage().get(namespaceKey(this.namespace, key), true);
26
+ const storage = getAmplitudeStorage();
27
+ return storage.get(namespaceKey(this.namespace, key), true);
27
28
  }
28
29
  async set(key, value) {
29
- getAmplitudeStorage().set(namespaceKey(this.namespace, key), JSON.stringify(value), true);
30
+ const storage = getAmplitudeStorage();
31
+ storage.set(namespaceKey(this.namespace, key), JSON.stringify(value), true);
30
32
  }
31
33
  async remove(key) {
32
- getAmplitudeStorage().remove(namespaceKey(this.namespace, key), true);
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 = getAmplitudeStorage().getKeysByPrefix(prefix, true);
40
+ const keys = storage.getKeysByPrefix(prefix, true);
37
41
  if (keys.length > 0) {
38
- getAmplitudeStorage().removeBatch(keys, true);
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 value = getAmplitudeStorage().get(namespaceKey(this.namespace, key), true);
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
- getAmplitudeStorage().set(namespaceKey(this.namespace, key), value, true);
56
+ const storage = getAmplitudeStorage();
57
+ storage.set(namespaceKey(this.namespace, key), value, true);
52
58
  }
53
59
  async delete(key) {
54
- getAmplitudeStorage().remove(namespaceKey(this.namespace, key), true);
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 = getAmplitudeStorage().getKeysByPrefix(prefix, true);
66
+ const keys = storage.getKeysByPrefix(prefix, true);
59
67
  if (keys.length > 0) {
60
- getAmplitudeStorage().removeBatch(keys, true);
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 value = getAmplitudeStorage().get(namespaceKey(this.namespace, key), false);
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
- getAmplitudeStorage().set(namespaceKey(this.namespace, key), value, false);
82
+ const storage = getAmplitudeStorage();
83
+ storage.set(namespaceKey(this.namespace, key), value, false);
74
84
  }
75
85
  async delete(key) {
76
- getAmplitudeStorage().remove(namespaceKey(this.namespace, key), false);
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 = getAmplitudeStorage().getKeysByPrefix(prefix, false);
92
+ const keys = storage.getKeysByPrefix(prefix, false);
81
93
  if (keys.length > 0) {
82
- getAmplitudeStorage().removeBatch(keys, false);
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":"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","ignoreList":[]}
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":[]}