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
@@ -27,19 +27,23 @@ class NitroAnalyticsStorage {
27
27
  }
28
28
  }
29
29
  async getRaw(key) {
30
- return (0, _hybrid.getAmplitudeStorage)().get(namespaceKey(this.namespace, key), true);
30
+ const storage = (0, _hybrid.getAmplitudeStorage)();
31
+ return storage.get(namespaceKey(this.namespace, key), true);
31
32
  }
32
33
  async set(key, value) {
33
- (0, _hybrid.getAmplitudeStorage)().set(namespaceKey(this.namespace, key), JSON.stringify(value), true);
34
+ const storage = (0, _hybrid.getAmplitudeStorage)();
35
+ storage.set(namespaceKey(this.namespace, key), JSON.stringify(value), true);
34
36
  }
35
37
  async remove(key) {
36
- (0, _hybrid.getAmplitudeStorage)().remove(namespaceKey(this.namespace, key), true);
38
+ const storage = (0, _hybrid.getAmplitudeStorage)();
39
+ storage.remove(namespaceKey(this.namespace, key), true);
37
40
  }
38
41
  async reset() {
42
+ const storage = (0, _hybrid.getAmplitudeStorage)();
39
43
  const prefix = `${this.namespace}::`;
40
- const keys = (0, _hybrid.getAmplitudeStorage)().getKeysByPrefix(prefix, true);
44
+ const keys = storage.getKeysByPrefix(prefix, true);
41
45
  if (keys.length > 0) {
42
- (0, _hybrid.getAmplitudeStorage)().removeBatch(keys, true);
46
+ storage.removeBatch(keys, true);
43
47
  }
44
48
  }
45
49
  }
@@ -49,20 +53,24 @@ class NitroExperimentStorage {
49
53
  this.namespace = namespace;
50
54
  }
51
55
  async get(key) {
52
- const value = (0, _hybrid.getAmplitudeStorage)().get(namespaceKey(this.namespace, key), true);
56
+ const storage = (0, _hybrid.getAmplitudeStorage)();
57
+ const value = storage.get(namespaceKey(this.namespace, key), true);
53
58
  return value ?? null;
54
59
  }
55
60
  async put(key, value) {
56
- (0, _hybrid.getAmplitudeStorage)().set(namespaceKey(this.namespace, key), value, true);
61
+ const storage = (0, _hybrid.getAmplitudeStorage)();
62
+ storage.set(namespaceKey(this.namespace, key), value, true);
57
63
  }
58
64
  async delete(key) {
59
- (0, _hybrid.getAmplitudeStorage)().remove(namespaceKey(this.namespace, key), true);
65
+ const storage = (0, _hybrid.getAmplitudeStorage)();
66
+ storage.remove(namespaceKey(this.namespace, key), true);
60
67
  }
61
68
  async reset() {
69
+ const storage = (0, _hybrid.getAmplitudeStorage)();
62
70
  const prefix = `${this.namespace}::`;
63
- const keys = (0, _hybrid.getAmplitudeStorage)().getKeysByPrefix(prefix, true);
71
+ const keys = storage.getKeysByPrefix(prefix, true);
64
72
  if (keys.length > 0) {
65
- (0, _hybrid.getAmplitudeStorage)().removeBatch(keys, true);
73
+ storage.removeBatch(keys, true);
66
74
  }
67
75
  }
68
76
  }
@@ -72,20 +80,24 @@ class NitroMemoryStorage {
72
80
  this.namespace = namespace;
73
81
  }
74
82
  async get(key) {
75
- const value = (0, _hybrid.getAmplitudeStorage)().get(namespaceKey(this.namespace, key), false);
83
+ const storage = (0, _hybrid.getAmplitudeStorage)();
84
+ const value = storage.get(namespaceKey(this.namespace, key), false);
76
85
  return value ?? null;
77
86
  }
78
87
  async put(key, value) {
79
- (0, _hybrid.getAmplitudeStorage)().set(namespaceKey(this.namespace, key), value, false);
88
+ const storage = (0, _hybrid.getAmplitudeStorage)();
89
+ storage.set(namespaceKey(this.namespace, key), value, false);
80
90
  }
81
91
  async delete(key) {
82
- (0, _hybrid.getAmplitudeStorage)().remove(namespaceKey(this.namespace, key), false);
92
+ const storage = (0, _hybrid.getAmplitudeStorage)();
93
+ storage.remove(namespaceKey(this.namespace, key), false);
83
94
  }
84
95
  async reset() {
96
+ const storage = (0, _hybrid.getAmplitudeStorage)();
85
97
  const prefix = `${this.namespace}::`;
86
- const keys = (0, _hybrid.getAmplitudeStorage)().getKeysByPrefix(prefix, false);
98
+ const keys = storage.getKeysByPrefix(prefix, false);
87
99
  if (keys.length > 0) {
88
- (0, _hybrid.getAmplitudeStorage)().removeBatch(keys, false);
100
+ storage.removeBatch(keys, false);
89
101
  }
90
102
  }
91
103
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_hybrid","require","namespaceKey","namespace","key","NitroAnalyticsStorage","constructor","isEnabled","get","raw","getRaw","undefined","JSON","parse","getAmplitudeStorage","set","value","stringify","remove","reset","prefix","keys","getKeysByPrefix","length","removeBatch","exports","NitroExperimentStorage","put","delete","NitroMemoryStorage"],"sourceRoot":"../../../src","sources":["native/storage.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_hybrid","require","namespaceKey","namespace","key","NitroAnalyticsStorage","constructor","isEnabled","get","raw","getRaw","undefined","JSON","parse","storage","getAmplitudeStorage","set","value","stringify","remove","reset","prefix","keys","getKeysByPrefix","length","removeBatch","exports","NitroExperimentStorage","put","delete","NitroMemoryStorage"],"sourceRoot":"../../../src","sources":["native/storage.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NitroMemoryStorage = exports.NitroExperimentStorage = exports.NitroAnalyticsStorage = void 0;
7
+ function namespaceKey(namespace, key) {
8
+ return `${namespace}::${key}`;
9
+ }
10
+ class WebStringStorage {
11
+ static memory = new Map();
12
+ constructor(namespace) {
13
+ this.namespace = namespace;
14
+ }
15
+ get(key) {
16
+ const storageKey = namespaceKey(this.namespace, key);
17
+ try {
18
+ if (typeof localStorage !== "undefined") {
19
+ return localStorage.getItem(storageKey) ?? undefined;
20
+ }
21
+ } catch {}
22
+ return WebStringStorage.memory.get(storageKey);
23
+ }
24
+ set(key, value) {
25
+ const storageKey = namespaceKey(this.namespace, key);
26
+ WebStringStorage.memory.set(storageKey, value);
27
+ try {
28
+ if (typeof localStorage !== "undefined") {
29
+ localStorage.setItem(storageKey, value);
30
+ }
31
+ } catch {}
32
+ }
33
+ remove(key) {
34
+ const storageKey = namespaceKey(this.namespace, key);
35
+ WebStringStorage.memory.delete(storageKey);
36
+ try {
37
+ if (typeof localStorage !== "undefined") {
38
+ localStorage.removeItem(storageKey);
39
+ }
40
+ } catch {}
41
+ }
42
+ reset() {
43
+ const prefix = `${this.namespace}::`;
44
+ for (const key of WebStringStorage.memory.keys()) {
45
+ if (key.startsWith(prefix)) {
46
+ WebStringStorage.memory.delete(key);
47
+ }
48
+ }
49
+ try {
50
+ if (typeof localStorage !== "undefined") {
51
+ for (let index = localStorage.length - 1; index >= 0; index--) {
52
+ const key = localStorage.key(index);
53
+ if (key?.startsWith(prefix)) {
54
+ localStorage.removeItem(key);
55
+ }
56
+ }
57
+ }
58
+ } catch {}
59
+ }
60
+ }
61
+ class NitroAnalyticsStorage {
62
+ constructor(namespace) {
63
+ this.storage = new WebStringStorage(namespace);
64
+ }
65
+ async isEnabled() {
66
+ return true;
67
+ }
68
+ async get(key) {
69
+ const raw = await this.getRaw(key);
70
+ if (!raw) {
71
+ return undefined;
72
+ }
73
+ try {
74
+ return JSON.parse(raw);
75
+ } catch {
76
+ return undefined;
77
+ }
78
+ }
79
+ async getRaw(key) {
80
+ return this.storage.get(key);
81
+ }
82
+ async set(key, value) {
83
+ this.storage.set(key, JSON.stringify(value));
84
+ }
85
+ async remove(key) {
86
+ this.storage.remove(key);
87
+ }
88
+ async reset() {
89
+ this.storage.reset();
90
+ }
91
+ }
92
+ exports.NitroAnalyticsStorage = NitroAnalyticsStorage;
93
+ class NitroExperimentStorage {
94
+ constructor(namespace) {
95
+ this.storage = new WebStringStorage(namespace);
96
+ }
97
+ async get(key) {
98
+ return this.storage.get(key) ?? null;
99
+ }
100
+ async put(key, value) {
101
+ this.storage.set(key, value);
102
+ }
103
+ async delete(key) {
104
+ this.storage.remove(key);
105
+ }
106
+ async reset() {
107
+ this.storage.reset();
108
+ }
109
+ }
110
+ exports.NitroExperimentStorage = NitroExperimentStorage;
111
+ class NitroMemoryStorage {
112
+ values = new Map();
113
+ constructor(namespace) {
114
+ this.namespace = namespace;
115
+ }
116
+ async get(key) {
117
+ return this.values.get(namespaceKey(this.namespace, key)) ?? null;
118
+ }
119
+ async put(key, value) {
120
+ this.values.set(namespaceKey(this.namespace, key), value);
121
+ }
122
+ async delete(key) {
123
+ this.values.delete(namespaceKey(this.namespace, key));
124
+ }
125
+ async reset() {
126
+ const prefix = `${this.namespace}::`;
127
+ for (const key of this.values.keys()) {
128
+ if (key.startsWith(prefix)) {
129
+ this.values.delete(key);
130
+ }
131
+ }
132
+ }
133
+ }
134
+ exports.NitroMemoryStorage = NitroMemoryStorage;
135
+ //# 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","exports","NitroExperimentStorage","put","NitroMemoryStorage","values"],"sourceRoot":"../../../src","sources":["native/storage.web.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DryRunTransport = exports.DryRunHttpClient = void 0;
7
+ exports.assertNetworkEnabled = assertNetworkEnabled;
8
+ exports.clearDryRunTransportRecords = clearDryRunTransportRecords;
9
+ exports.createNetworkTimingBuffer = createNetworkTimingBuffer;
10
+ exports.createTimedAnalyticsTransport = createTimedAnalyticsTransport;
11
+ exports.createTimedHttpClient = createTimedHttpClient;
12
+ exports.dryRunTransport = exports.dryRunHttpClient = void 0;
13
+ exports.getDryRunAnalyticsEvents = getDryRunAnalyticsEvents;
14
+ exports.getDryRunTransportRecords = getDryRunTransportRecords;
15
+ exports.getNetworkEnabled = getNetworkEnabled;
16
+ exports.setNetworkEnabled = setNetworkEnabled;
17
+ var _analyticsCore = require("@amplitude/analytics-core");
18
+ var _errors = require("./errors");
19
+ let networkEnabled = true;
20
+ const dryRunRequests = [];
21
+ const dryRunEvents = [];
22
+ function setNetworkEnabled(enabled) {
23
+ networkEnabled = enabled;
24
+ }
25
+ function getNetworkEnabled() {
26
+ return networkEnabled;
27
+ }
28
+ function clearDryRunTransportRecords() {
29
+ dryRunRequests.length = 0;
30
+ dryRunEvents.length = 0;
31
+ }
32
+ function getDryRunTransportRecords() {
33
+ return dryRunRequests.map(request => ({
34
+ ...request
35
+ }));
36
+ }
37
+ function getDryRunAnalyticsEvents() {
38
+ return dryRunEvents.map(event => ({
39
+ ...event,
40
+ payload: {
41
+ ...event.payload
42
+ }
43
+ }));
44
+ }
45
+ function assertNetworkEnabled() {
46
+ if (!networkEnabled) {
47
+ throw (0, _errors.createAmplitudeError)("network_error", "Amplitude network traffic is disabled");
48
+ }
49
+ }
50
+ function nowMillis() {
51
+ return typeof performance !== "undefined" && performance.now ? performance.now() : Date.now();
52
+ }
53
+ function createTiming(kind, url, method, startedAt, status, error) {
54
+ const finishedAt = nowMillis();
55
+ return {
56
+ kind,
57
+ url,
58
+ method,
59
+ startedAt,
60
+ finishedAt,
61
+ durationMillis: Math.round((finishedAt - startedAt) * 10) / 10,
62
+ status,
63
+ error: error === undefined ? undefined : error instanceof Error ? error.message : String(error)
64
+ };
65
+ }
66
+ function createNetworkTimingBuffer(limit = 20) {
67
+ const timings = [];
68
+ const normalizedLimit = Number.isFinite(limit) && limit > 0 ? limit : 20;
69
+ return {
70
+ record: timing => {
71
+ timings.push(timing);
72
+ while (timings.length > normalizedLimit) {
73
+ timings.shift();
74
+ }
75
+ },
76
+ getTimings: () => timings.map(timing => ({
77
+ ...timing
78
+ })),
79
+ clear: () => {
80
+ timings.length = 0;
81
+ }
82
+ };
83
+ }
84
+ function createTimedAnalyticsTransport(transport, record) {
85
+ return {
86
+ async send(serverUrl, payload, enableRequestBodyCompression) {
87
+ const startedAt = nowMillis();
88
+ try {
89
+ const response = await transport.send(serverUrl, payload, enableRequestBodyCompression);
90
+ record(createTiming("analytics", serverUrl, "POST", startedAt, response?.status));
91
+ return response;
92
+ } catch (error) {
93
+ record(createTiming("analytics", serverUrl, "POST", startedAt, undefined, error));
94
+ throw error;
95
+ }
96
+ }
97
+ };
98
+ }
99
+ function createTimedHttpClient(httpClient, record) {
100
+ return {
101
+ async request(requestUrl, method, headers, data, timeoutMillis) {
102
+ const startedAt = nowMillis();
103
+ try {
104
+ const response = await httpClient.request(requestUrl, method, headers, data, timeoutMillis);
105
+ record(createTiming("experiment", requestUrl, method, startedAt, response.status));
106
+ return response;
107
+ } catch (error) {
108
+ record(createTiming("experiment", requestUrl, method, startedAt, undefined, error));
109
+ throw error;
110
+ }
111
+ }
112
+ };
113
+ }
114
+ class DryRunHttpClient {
115
+ async request(requestUrl, method, headers, data, timeoutMillis = 10000) {
116
+ dryRunRequests.push({
117
+ url: requestUrl,
118
+ method,
119
+ headers: {
120
+ ...headers
121
+ },
122
+ data,
123
+ timeoutMillis,
124
+ createdAt: Date.now()
125
+ });
126
+ return {
127
+ status: 202,
128
+ body: JSON.stringify({
129
+ code: 202,
130
+ dryRun: true
131
+ })
132
+ };
133
+ }
134
+ }
135
+ exports.DryRunHttpClient = DryRunHttpClient;
136
+ class DryRunTransport extends _analyticsCore.BaseTransport {
137
+ async send(serverUrl, payload) {
138
+ dryRunEvents.push({
139
+ serverUrl,
140
+ payload: {
141
+ ...payload
142
+ },
143
+ createdAt: Date.now()
144
+ });
145
+ return this.buildResponse({
146
+ code: 202,
147
+ dryRun: true
148
+ });
149
+ }
150
+ }
151
+ exports.DryRunTransport = DryRunTransport;
152
+ const dryRunHttpClient = exports.dryRunHttpClient = new DryRunHttpClient();
153
+ const dryRunTransport = exports.dryRunTransport = new DryRunTransport();
154
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_analyticsCore","require","_errors","networkEnabled","dryRunRequests","dryRunEvents","setNetworkEnabled","enabled","getNetworkEnabled","clearDryRunTransportRecords","length","getDryRunTransportRecords","map","request","getDryRunAnalyticsEvents","event","payload","assertNetworkEnabled","createAmplitudeError","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","exports","DryRunTransport","BaseTransport","buildResponse","dryRunHttpClient","dryRunTransport"],"sourceRoot":"../../src","sources":["network.ts"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAGA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAIE,cAAc,GAAG,IAAI;AAsCzB,MAAMC,cAA+B,GAAG,EAAE;AAC1C,MAAMC,YAA2B,GAAG,EAAE;AAE/B,SAASC,iBAAiBA,CAACC,OAAgB,EAAQ;EACxDJ,cAAc,GAAGI,OAAO;AAC1B;AAEO,SAASC,iBAAiBA,CAAA,EAAY;EAC3C,OAAOL,cAAc;AACvB;AAEO,SAASM,2BAA2BA,CAAA,EAAS;EAClDL,cAAc,CAACM,MAAM,GAAG,CAAC;EACzBL,YAAY,CAACK,MAAM,GAAG,CAAC;AACzB;AAEO,SAASC,yBAAyBA,CAAA,EAAoB;EAC3D,OAAOP,cAAc,CAACQ,GAAG,CAAEC,OAAO,KAAM;IAAE,GAAGA;EAAQ,CAAC,CAAC,CAAC;AAC1D;AAEO,SAASC,wBAAwBA,CAAA,EAAkB;EACxD,OAAOT,YAAY,CAACO,GAAG,CAAEG,KAAK,KAAM;IAClC,GAAGA,KAAK;IACRC,OAAO,EAAE;MAAE,GAAGD,KAAK,CAACC;IAAQ;EAC9B,CAAC,CAAC,CAAC;AACL;AAEO,SAASC,oBAAoBA,CAAA,EAAS;EAC3C,IAAI,CAACd,cAAc,EAAE;IACnB,MAAM,IAAAe,4BAAoB,EACxB,eAAe,EACf,uCACF,CAAC;EACH;AACF;AAEA,SAASC,SAASA,CAAA,EAAW;EAC3B,OAAO,OAAOC,WAAW,KAAK,WAAW,IAAIA,WAAW,CAACC,GAAG,GACxDD,WAAW,CAACC,GAAG,CAAC,CAAC,GACjBC,IAAI,CAACD,GAAG,CAAC,CAAC;AAChB;AAEA,SAASE,YAAYA,CACnBC,IAAoC,EACpCC,GAAW,EACXC,MAAc,EACdC,SAAiB,EACjBC,MAAwB,EACxBC,KAAe,EACS;EACxB,MAAMC,UAAU,GAAGX,SAAS,CAAC,CAAC;EAC9B,OAAO;IACLK,IAAI;IACJC,GAAG;IACHC,MAAM;IACNC,SAAS;IACTG,UAAU;IACVC,cAAc,EAAEC,IAAI,CAACC,KAAK,CAAC,CAACH,UAAU,GAAGH,SAAS,IAAI,EAAE,CAAC,GAAG,EAAE;IAC9DC,MAAM;IACNC,KAAK,EACHA,KAAK,KAAKK,SAAS,GACfA,SAAS,GACTL,KAAK,YAAYM,KAAK,GACpBN,KAAK,CAACO,OAAO,GACbC,MAAM,CAACR,KAAK;EACtB,CAAC;AACH;AAEO,SAASS,yBAAyBA,CACvCC,KAAK,GAAG,EAAE,EACoB;EAC9B,MAAMC,OAAiC,GAAG,EAAE;EAC5C,MAAMC,eAAe,GAAGC,MAAM,CAACC,QAAQ,CAACJ,KAAK,CAAC,IAAIA,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAG,EAAE;EACxE,OAAO;IACLK,MAAM,EAAGC,MAAM,IAAK;MAClBL,OAAO,CAACM,IAAI,CAACD,MAAM,CAAC;MACpB,OAAOL,OAAO,CAAC9B,MAAM,GAAG+B,eAAe,EAAE;QACvCD,OAAO,CAACO,KAAK,CAAC,CAAC;MACjB;IACF,CAAC;IACDC,UAAU,EAAEA,CAAA,KAAMR,OAAO,CAAC5B,GAAG,CAAEiC,MAAM,KAAM;MAAE,GAAGA;IAAO,CAAC,CAAC,CAAC;IAC1DI,KAAK,EAAEA,CAAA,KAAM;MACXT,OAAO,CAAC9B,MAAM,GAAG,CAAC;IACpB;EACF,CAAC;AACH;AAEO,SAASwC,6BAA6BA,CAC3CC,SAAoB,EACpBP,MAAsC,EAC3B;EACX,OAAO;IACL,MAAMQ,IAAIA,CACRC,SAAiB,EACjBrC,OAAgB,EAChBsC,4BAAsC,EACZ;MAC1B,MAAM3B,SAAS,GAAGR,SAAS,CAAC,CAAC;MAC7B,IAAI;QACF,MAAMoC,QAAQ,GAAG,MAAMJ,SAAS,CAACC,IAAI,CACnCC,SAAS,EACTrC,OAAO,EACPsC,4BACF,CAAC;QACDV,MAAM,CACJrB,YAAY,CACV,WAAW,EACX8B,SAAS,EACT,MAAM,EACN1B,SAAS,EACT4B,QAAQ,EAAE3B,MACZ,CACF,CAAC;QACD,OAAO2B,QAAQ;MACjB,CAAC,CAAC,OAAO1B,KAAK,EAAE;QACde,MAAM,CACJrB,YAAY,CACV,WAAW,EACX8B,SAAS,EACT,MAAM,EACN1B,SAAS,EACTO,SAAS,EACTL,KACF,CACF,CAAC;QACD,MAAMA,KAAK;MACb;IACF;EACF,CAAC;AACH;AAEO,SAAS2B,qBAAqBA,CACnCC,UAAsB,EACtBb,MAAsC,EAC1B;EACZ,OAAO;IACL,MAAM/B,OAAOA,CACX6C,UAAkB,EAClBhC,MAAc,EACdiC,OAA+B,EAC/BC,IAAmB,EACnBC,aAAsB,EACG;MACzB,MAAMlC,SAAS,GAAGR,SAAS,CAAC,CAAC;MAC7B,IAAI;QACF,MAAMoC,QAAQ,GAAG,MAAME,UAAU,CAAC5C,OAAO,CACvC6C,UAAU,EACVhC,MAAM,EACNiC,OAAO,EACPC,IAAI,EACJC,aACF,CAAC;QACDjB,MAAM,CACJrB,YAAY,CACV,YAAY,EACZmC,UAAU,EACVhC,MAAM,EACNC,SAAS,EACT4B,QAAQ,CAAC3B,MACX,CACF,CAAC;QACD,OAAO2B,QAAQ;MACjB,CAAC,CAAC,OAAO1B,KAAK,EAAE;QACde,MAAM,CACJrB,YAAY,CACV,YAAY,EACZmC,UAAU,EACVhC,MAAM,EACNC,SAAS,EACTO,SAAS,EACTL,KACF,CACF,CAAC;QACD,MAAMA,KAAK;MACb;IACF;EACF,CAAC;AACH;AAEO,MAAMiC,gBAAgB,CAAuB;EAClD,MAAMjD,OAAOA,CACX6C,UAAkB,EAClBhC,MAAc,EACdiC,OAA+B,EAC/BC,IAAmB,EACnBC,aAAa,GAAG,KAAK,EACI;IACzBzD,cAAc,CAAC0C,IAAI,CAAC;MAClBrB,GAAG,EAAEiC,UAAU;MACfhC,MAAM;MACNiC,OAAO,EAAE;QAAE,GAAGA;MAAQ,CAAC;MACvBC,IAAI;MACJC,aAAa;MACbE,SAAS,EAAEzC,IAAI,CAACD,GAAG,CAAC;IACtB,CAAC,CAAC;IACF,OAAO;MACLO,MAAM,EAAE,GAAG;MACXoC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;QAAEC,IAAI,EAAE,GAAG;QAAEC,MAAM,EAAE;MAAK,CAAC;IAClD,CAAC;EACH;AACF;AAACC,OAAA,CAAAP,gBAAA,GAAAA,gBAAA;AAEM,MAAMQ,eAAe,SAASC,4BAAa,CAAsB;EACtE,MAAMnB,IAAIA,CAACC,SAAiB,EAAErC,OAAgB,EAA4B;IACxEX,YAAY,CAACyC,IAAI,CAAC;MAChBO,SAAS;MACTrC,OAAO,EAAE;QAAE,GAAGA;MAAQ,CAAC;MACvB+C,SAAS,EAAEzC,IAAI,CAACD,GAAG,CAAC;IACtB,CAAC,CAAC;IACF,OAAO,IAAI,CAACmD,aAAa,CAAC;MAAEL,IAAI,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAK,CAAC,CAAC;EACxD;AACF;AAACC,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAEM,MAAMG,gBAAgB,GAAAJ,OAAA,CAAAI,gBAAA,GAAG,IAAIX,gBAAgB,CAAC,CAAC;AAC/C,MAAMY,eAAe,GAAAL,OAAA,CAAAK,eAAA,GAAG,IAAIJ,eAAe,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createAmplitudeClient = createAmplitudeClient;
7
+ exports.createDurableAmplitudeStoragePreset = createDurableAmplitudeStoragePreset;
8
+ exports.createExperimentUser = createExperimentUser;
9
+ exports.createPersistentAmplitudeConfig = createPersistentAmplitudeConfig;
10
+ exports.getConnectorIdentity = getConnectorIdentity;
11
+ var _analyticsCore = require("@amplitude/analytics-core");
12
+ var _reactNativeClient = require("./analytics/react-native-client");
13
+ var _networkGuardedFetchTransport = require("./analytics/network-guarded-fetch-transport");
14
+ var _platform = require("./analytics/utils/platform");
15
+ var _factory = require("./experiment/factory");
16
+ var _network = require("./network");
17
+ function getStorageModule() {
18
+ if ((0, _platform.isNative)()) {
19
+ return require("./native/storage");
20
+ }
21
+ return require("./native/storage.web");
22
+ }
23
+ function getAnalyticsTransport() {
24
+ if ((0, _platform.isNative)()) {
25
+ const {
26
+ nitroTransport
27
+ } = require("./analytics/nitro-transport");
28
+ return nitroTransport;
29
+ }
30
+ return new _networkGuardedFetchTransport.NetworkGuardedFetchTransport();
31
+ }
32
+ function createDurableAmplitudeStoragePreset(options = {}) {
33
+ const namespace = options.namespace ?? "default";
34
+ const {
35
+ NitroAnalyticsStorage,
36
+ NitroExperimentStorage
37
+ } = getStorageModule();
38
+ const analyticsEvents = new NitroAnalyticsStorage(`${namespace}:analytics-events`);
39
+ const analyticsSession = new NitroAnalyticsStorage(`${namespace}:analytics-session`);
40
+ const experimentVariants = new NitroExperimentStorage(`${namespace}:experiment-variants`);
41
+ return {
42
+ analytics: {
43
+ storageProvider: analyticsEvents,
44
+ cookieStorage: analyticsSession,
45
+ transportProvider: options.dryRun ? _network.dryRunTransport : getAnalyticsTransport()
46
+ },
47
+ experiment: {
48
+ storage: experimentVariants
49
+ },
50
+ clear: async () => {
51
+ await analyticsEvents.reset();
52
+ await analyticsSession.reset();
53
+ await experimentVariants.reset?.();
54
+ }
55
+ };
56
+ }
57
+ function createPersistentAmplitudeConfig(namespaceOrOptions) {
58
+ if (typeof namespaceOrOptions === "string") {
59
+ return createDurableAmplitudeStoragePreset({
60
+ namespace: namespaceOrOptions
61
+ });
62
+ }
63
+ return createDurableAmplitudeStoragePreset(namespaceOrOptions);
64
+ }
65
+ function createExperimentUser(user) {
66
+ return {
67
+ ...user,
68
+ user_properties: user.user_properties ? {
69
+ ...user.user_properties
70
+ } : undefined,
71
+ groups: user.groups ? {
72
+ ...user.groups
73
+ } : undefined,
74
+ group_properties: user.group_properties ? {
75
+ ...user.group_properties
76
+ } : undefined
77
+ };
78
+ }
79
+ function createAmplitudeClient(config) {
80
+ const instanceName = config.instanceName ?? "$default_instance";
81
+ const dryRunEnabled = config.dryRun || typeof config.durableStorage === "object" && config.durableStorage.dryRun;
82
+ const storagePreset = config.durableStorage === false ? undefined : createDurableAmplitudeStoragePreset({
83
+ namespace: typeof config.durableStorage === "object" ? config.durableStorage.namespace : instanceName,
84
+ dryRun: dryRunEnabled
85
+ });
86
+ const analytics = (0, _reactNativeClient.createInstance)();
87
+ const experiment = config.experimentDeploymentKey !== undefined ? _factory.Experiment.initializeWithAmplitudeAnalytics(config.experimentDeploymentKey, {
88
+ ...storagePreset?.experiment,
89
+ ...config.experiment,
90
+ instanceName,
91
+ httpClient: dryRunEnabled ? config.experiment?.httpClient ?? _network.dryRunHttpClient : config.experiment?.httpClient
92
+ }) : undefined;
93
+ const combined = {
94
+ analytics,
95
+ experiment,
96
+ init: async user => {
97
+ await analytics.init(config.analyticsApiKey, config.userId, {
98
+ ...storagePreset?.analytics,
99
+ ...config.analytics,
100
+ instanceName,
101
+ transportProvider: dryRunEnabled ? config.analytics?.transportProvider ?? _network.dryRunTransport : config.analytics?.transportProvider ?? storagePreset?.analytics.transportProvider
102
+ }).promise;
103
+ if (experiment && user) {
104
+ experiment.setUser(user);
105
+ }
106
+ return combined;
107
+ },
108
+ flush: async () => analytics.flush().promise,
109
+ reset: () => analytics.reset(),
110
+ getUserId: () => analytics.getUserId(),
111
+ getDeviceId: () => analytics.getDeviceId()
112
+ };
113
+ return combined;
114
+ }
115
+ function getConnectorIdentity(instanceName = "$default_instance") {
116
+ return (0, _analyticsCore.getAnalyticsConnector)(instanceName).identityStore.getIdentity();
117
+ }
118
+ //# sourceMappingURL=presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_analyticsCore","require","_reactNativeClient","_networkGuardedFetchTransport","_platform","_factory","_network","getStorageModule","isNative","getAnalyticsTransport","nitroTransport","NetworkGuardedFetchTransport","createDurableAmplitudeStoragePreset","options","namespace","NitroAnalyticsStorage","NitroExperimentStorage","analyticsEvents","analyticsSession","experimentVariants","analytics","storageProvider","cookieStorage","transportProvider","dryRun","dryRunTransport","experiment","storage","clear","reset","createPersistentAmplitudeConfig","namespaceOrOptions","createExperimentUser","user","user_properties","undefined","groups","group_properties","createAmplitudeClient","config","instanceName","dryRunEnabled","durableStorage","storagePreset","createInstance","experimentDeploymentKey","Experiment","initializeWithAmplitudeAnalytics","httpClient","dryRunHttpClient","combined","init","analyticsApiKey","userId","promise","setUser","flush","getUserId","getDeviceId","getConnectorIdentity","getAnalyticsConnector","identityStore","getIdentity"],"sourceRoot":"../../src","sources":["presets.ts"],"mappings":"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","ignoreList":[]}