@amplitude/analytics-core 0.2.4 → 0.4.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 (160) hide show
  1. package/LICENSE +21 -0
  2. package/lib/cjs/config.d.ts +14 -15
  3. package/lib/cjs/config.d.ts.map +1 -1
  4. package/lib/cjs/config.js +38 -55
  5. package/lib/cjs/config.js.map +1 -1
  6. package/lib/cjs/core-client.d.ts +18 -12
  7. package/lib/cjs/core-client.d.ts.map +1 -1
  8. package/lib/cjs/core-client.js +87 -84
  9. package/lib/cjs/core-client.js.map +1 -1
  10. package/lib/cjs/event-bridge/event-bridge-channel.d.ts +10 -0
  11. package/lib/cjs/event-bridge/event-bridge-channel.d.ts.map +1 -0
  12. package/lib/cjs/event-bridge/event-bridge-channel.js +32 -0
  13. package/lib/cjs/event-bridge/event-bridge-channel.js.map +1 -0
  14. package/lib/cjs/event-bridge/event-bridge-container.d.ts +6 -0
  15. package/lib/cjs/event-bridge/event-bridge-container.d.ts.map +1 -0
  16. package/lib/cjs/event-bridge/event-bridge-container.js +17 -0
  17. package/lib/cjs/event-bridge/event-bridge-container.js.map +1 -0
  18. package/lib/cjs/event-bridge/event-bridge.d.ts +8 -0
  19. package/lib/cjs/event-bridge/event-bridge.d.ts.map +1 -0
  20. package/lib/cjs/event-bridge/event-bridge.js +23 -0
  21. package/lib/cjs/event-bridge/event-bridge.js.map +1 -0
  22. package/lib/cjs/event-bridge/event-channel.d.ts +5 -0
  23. package/lib/cjs/event-bridge/event-channel.d.ts.map +1 -0
  24. package/lib/cjs/event-bridge/event-channel.js +8 -0
  25. package/lib/cjs/event-bridge/event-channel.js.map +1 -0
  26. package/lib/cjs/event-bridge/event-receiver.d.ts +8 -0
  27. package/lib/cjs/event-bridge/event-receiver.d.ts.map +1 -0
  28. package/lib/cjs/event-bridge/event-receiver.js +27 -0
  29. package/lib/cjs/event-bridge/event-receiver.js.map +1 -0
  30. package/lib/cjs/index.d.ts +5 -3
  31. package/lib/cjs/index.d.ts.map +1 -1
  32. package/lib/cjs/index.js +12 -17
  33. package/lib/cjs/index.js.map +1 -1
  34. package/lib/cjs/messages.d.ts +1 -1
  35. package/lib/cjs/messages.d.ts.map +1 -1
  36. package/lib/cjs/messages.js +1 -1
  37. package/lib/cjs/messages.js.map +1 -1
  38. package/lib/cjs/plugins/destination.d.ts +2 -1
  39. package/lib/cjs/plugins/destination.d.ts.map +1 -1
  40. package/lib/cjs/plugins/destination.js +20 -6
  41. package/lib/cjs/plugins/destination.js.map +1 -1
  42. package/lib/cjs/storage/memory.d.ts +11 -0
  43. package/lib/cjs/storage/memory.d.ts.map +1 -0
  44. package/lib/cjs/storage/memory.js +29 -0
  45. package/lib/cjs/storage/memory.js.map +1 -0
  46. package/lib/cjs/timeline.d.ts +1 -0
  47. package/lib/cjs/timeline.d.ts.map +1 -1
  48. package/lib/cjs/timeline.js +16 -1
  49. package/lib/cjs/timeline.js.map +1 -1
  50. package/lib/cjs/transports/base.d.ts +7 -0
  51. package/lib/cjs/transports/base.d.ts.map +1 -0
  52. package/lib/cjs/transports/base.js +103 -0
  53. package/lib/cjs/transports/base.js.map +1 -0
  54. package/lib/cjs/utils/event-builder.d.ts +2 -2
  55. package/lib/cjs/utils/event-builder.d.ts.map +1 -1
  56. package/lib/cjs/utils/event-builder.js +3 -2
  57. package/lib/cjs/utils/event-builder.js.map +1 -1
  58. package/lib/cjs/utils/return-wrapper.d.ts +3 -0
  59. package/lib/cjs/utils/return-wrapper.d.ts.map +1 -0
  60. package/lib/cjs/utils/return-wrapper.js +16 -0
  61. package/lib/cjs/utils/return-wrapper.js.map +1 -0
  62. package/lib/cjs/utils/uuid.d.ts +10 -0
  63. package/lib/cjs/utils/uuid.d.ts.map +1 -0
  64. package/lib/cjs/utils/uuid.js +31 -0
  65. package/lib/cjs/utils/uuid.js.map +1 -0
  66. package/lib/cjs/utils/valid-properties.d.ts.map +1 -1
  67. package/lib/cjs/utils/valid-properties.js +5 -1
  68. package/lib/cjs/utils/valid-properties.js.map +1 -1
  69. package/lib/esm/config.d.ts +14 -15
  70. package/lib/esm/config.d.ts.map +1 -1
  71. package/lib/esm/config.js +25 -41
  72. package/lib/esm/config.js.map +1 -1
  73. package/lib/esm/core-client.d.ts +18 -12
  74. package/lib/esm/core-client.d.ts.map +1 -1
  75. package/lib/esm/core-client.js +87 -73
  76. package/lib/esm/core-client.js.map +1 -1
  77. package/lib/esm/event-bridge/event-bridge-channel.d.ts +10 -0
  78. package/lib/esm/event-bridge/event-bridge-channel.d.ts.map +1 -0
  79. package/lib/esm/event-bridge/event-bridge-channel.js +30 -0
  80. package/lib/esm/event-bridge/event-bridge-channel.js.map +1 -0
  81. package/lib/esm/event-bridge/event-bridge-container.d.ts +6 -0
  82. package/lib/esm/event-bridge/event-bridge-container.d.ts.map +1 -0
  83. package/lib/esm/event-bridge/event-bridge-container.js +15 -0
  84. package/lib/esm/event-bridge/event-bridge-container.js.map +1 -0
  85. package/lib/esm/event-bridge/event-bridge.d.ts +8 -0
  86. package/lib/esm/event-bridge/event-bridge.d.ts.map +1 -0
  87. package/lib/esm/event-bridge/event-bridge.js +21 -0
  88. package/lib/esm/event-bridge/event-bridge.js.map +1 -0
  89. package/lib/esm/event-bridge/event-channel.d.ts +5 -0
  90. package/lib/esm/event-bridge/event-channel.d.ts.map +1 -0
  91. package/lib/esm/event-bridge/event-channel.js +6 -0
  92. package/lib/esm/event-bridge/event-channel.js.map +1 -0
  93. package/lib/esm/event-bridge/event-receiver.d.ts +8 -0
  94. package/lib/esm/event-bridge/event-receiver.d.ts.map +1 -0
  95. package/lib/esm/event-bridge/event-receiver.js +25 -0
  96. package/lib/esm/event-bridge/event-receiver.js.map +1 -0
  97. package/lib/esm/index.d.ts +5 -3
  98. package/lib/esm/index.d.ts.map +1 -1
  99. package/lib/esm/index.js +5 -3
  100. package/lib/esm/index.js.map +1 -1
  101. package/lib/esm/messages.d.ts +1 -1
  102. package/lib/esm/messages.d.ts.map +1 -1
  103. package/lib/esm/messages.js +1 -1
  104. package/lib/esm/messages.js.map +1 -1
  105. package/lib/esm/plugins/destination.d.ts +2 -1
  106. package/lib/esm/plugins/destination.d.ts.map +1 -1
  107. package/lib/esm/plugins/destination.js +21 -7
  108. package/lib/esm/plugins/destination.js.map +1 -1
  109. package/lib/esm/storage/memory.d.ts +11 -0
  110. package/lib/esm/storage/memory.d.ts.map +1 -0
  111. package/lib/esm/storage/memory.js +27 -0
  112. package/lib/esm/storage/memory.js.map +1 -0
  113. package/lib/esm/timeline.d.ts +1 -0
  114. package/lib/esm/timeline.d.ts.map +1 -1
  115. package/lib/esm/timeline.js +14 -0
  116. package/lib/esm/timeline.js.map +1 -1
  117. package/lib/esm/transports/base.d.ts +7 -0
  118. package/lib/esm/transports/base.d.ts.map +1 -0
  119. package/lib/esm/transports/base.js +101 -0
  120. package/lib/esm/transports/base.js.map +1 -0
  121. package/lib/esm/utils/event-builder.d.ts +2 -2
  122. package/lib/esm/utils/event-builder.d.ts.map +1 -1
  123. package/lib/esm/utils/event-builder.js +3 -2
  124. package/lib/esm/utils/event-builder.js.map +1 -1
  125. package/lib/esm/utils/return-wrapper.d.ts +3 -0
  126. package/lib/esm/utils/return-wrapper.d.ts.map +1 -0
  127. package/lib/esm/utils/return-wrapper.js +13 -0
  128. package/lib/esm/utils/return-wrapper.js.map +1 -0
  129. package/lib/esm/utils/uuid.d.ts +10 -0
  130. package/lib/esm/utils/uuid.d.ts.map +1 -0
  131. package/lib/esm/utils/uuid.js +28 -0
  132. package/lib/esm/utils/uuid.js.map +1 -0
  133. package/lib/esm/utils/valid-properties.d.ts.map +1 -1
  134. package/lib/esm/utils/valid-properties.js +5 -1
  135. package/lib/esm/utils/valid-properties.js.map +1 -1
  136. package/package.json +3 -3
  137. package/lib/cjs/transports/http.d.ts +0 -5
  138. package/lib/cjs/transports/http.d.ts.map +0 -1
  139. package/lib/cjs/transports/http.js +0 -51
  140. package/lib/cjs/transports/http.js.map +0 -1
  141. package/lib/cjs/utils/response-builder.d.ts +0 -3
  142. package/lib/cjs/utils/response-builder.d.ts.map +0 -1
  143. package/lib/cjs/utils/response-builder.js +0 -74
  144. package/lib/cjs/utils/response-builder.js.map +0 -1
  145. package/lib/cjs/utils/status-builder.d.ts +0 -3
  146. package/lib/cjs/utils/status-builder.d.ts.map +0 -1
  147. package/lib/cjs/utils/status-builder.js +0 -26
  148. package/lib/cjs/utils/status-builder.js.map +0 -1
  149. package/lib/esm/transports/http.d.ts +0 -5
  150. package/lib/esm/transports/http.d.ts.map +0 -1
  151. package/lib/esm/transports/http.js +0 -49
  152. package/lib/esm/transports/http.js.map +0 -1
  153. package/lib/esm/utils/response-builder.d.ts +0 -3
  154. package/lib/esm/utils/response-builder.d.ts.map +0 -1
  155. package/lib/esm/utils/response-builder.js +0 -71
  156. package/lib/esm/utils/response-builder.js.map +0 -1
  157. package/lib/esm/utils/status-builder.d.ts +0 -3
  158. package/lib/esm/utils/status-builder.d.ts.map +0 -1
  159. package/lib/esm/utils/status-builder.js +0 -23
  160. package/lib/esm/utils/status-builder.js.map +0 -1
@@ -1,78 +1,92 @@
1
1
  import { __awaiter, __generator } from "tslib";
2
- import { createConfig, getConfig } from './config';
3
2
  import { createGroupIdentifyEvent, createIdentifyEvent, createTrackEvent, createRevenueEvent, createGroupEvent, } from './utils/event-builder';
4
- import { deregister, push, register } from './timeline';
3
+ import { deregister, flush, push, register } from './timeline';
5
4
  import { buildResult } from './utils/result-builder';
6
- export var init = function (config) {
7
- return createConfig(config);
8
- };
9
- export var track = function (eventType, eventProperties, eventOptions) {
10
- var config = getConfig();
11
- var event = createTrackEvent(eventType, eventProperties, eventOptions);
12
- return dispatch(event, config);
13
- };
14
- export var logEvent = track;
15
- export var identify = function (userId, deviceId, identify, eventOptions) {
16
- var config = getConfig();
17
- var event = createIdentifyEvent(userId, deviceId, identify, eventOptions);
18
- return dispatch(event, config);
19
- };
20
- export var groupIdentify = function (userId, deviceId, groupType, groupName, identify, eventOptions) {
21
- var config = getConfig();
22
- var event = createGroupIdentifyEvent(userId, deviceId, groupType, groupName, identify, eventOptions);
23
- return dispatch(event, config);
24
- };
25
- export var setGroup = function (groupType, groupName) {
26
- var config = getConfig();
27
- var event = createGroupEvent(groupType, groupName);
28
- return dispatch(event, config);
29
- };
30
- export var revenue = function (revenue, eventOptions) {
31
- var config = getConfig();
32
- var event = createRevenueEvent(revenue, eventOptions);
33
- return dispatch(event, config);
34
- };
35
- export var add = function (plugin) { return __awaiter(void 0, void 0, void 0, function () {
36
- var config;
37
- return __generator(this, function (_a) {
38
- config = getConfig();
39
- return [2 /*return*/, register(plugin, config)];
40
- });
41
- }); };
42
- export var remove = function (pluginName) { return __awaiter(void 0, void 0, void 0, function () {
43
- var config;
44
- return __generator(this, function (_a) {
45
- config = getConfig();
46
- return [2 /*return*/, deregister(pluginName, config)];
47
- });
48
- }); };
49
- export var dispatch = function (event, config) { return __awaiter(void 0, void 0, void 0, function () {
50
- var result, e_1, message;
51
- return __generator(this, function (_a) {
52
- switch (_a.label) {
53
- case 0:
54
- _a.trys.push([0, 2, , 3]);
55
- return [4 /*yield*/, push(event, config)];
56
- case 1:
57
- result = _a.sent();
58
- if (result.code === 200) {
59
- config.loggerProvider.log(result.message);
5
+ var AmplitudeCore = /** @class */ (function () {
6
+ function AmplitudeCore(name) {
7
+ if (name === void 0) { name = '$default'; }
8
+ this.logEvent = this.track.bind(this);
9
+ this.name = name;
10
+ }
11
+ // NOTE: Do not use `_apiKey` and `_userId` here
12
+ AmplitudeCore.prototype.init = function (_apiKey, _userId, config) {
13
+ this.config = config;
14
+ return Promise.resolve();
15
+ };
16
+ AmplitudeCore.prototype.track = function (eventInput, eventProperties, eventOptions) {
17
+ var event = createTrackEvent(eventInput, eventProperties, eventOptions);
18
+ return this.dispatch(event);
19
+ };
20
+ AmplitudeCore.prototype.identify = function (identify, eventOptions, userId, deviceId) {
21
+ var event = createIdentifyEvent(userId, deviceId, identify, eventOptions);
22
+ return this.dispatch(event);
23
+ };
24
+ AmplitudeCore.prototype.groupIdentify = function (groupType, groupName, identify, eventOptions, userId, deviceId) {
25
+ var event = createGroupIdentifyEvent(userId, deviceId, groupType, groupName, identify, eventOptions);
26
+ return this.dispatch(event);
27
+ };
28
+ AmplitudeCore.prototype.setGroup = function (groupType, groupName) {
29
+ var event = createGroupEvent(groupType, groupName);
30
+ return this.dispatch(event);
31
+ };
32
+ AmplitudeCore.prototype.revenue = function (revenue, eventOptions) {
33
+ var event = createRevenueEvent(revenue, eventOptions);
34
+ return this.dispatch(event);
35
+ };
36
+ AmplitudeCore.prototype.add = function (plugin) {
37
+ return __awaiter(this, void 0, void 0, function () {
38
+ var config;
39
+ return __generator(this, function (_a) {
40
+ config = this.config;
41
+ return [2 /*return*/, register(plugin, config)];
42
+ });
43
+ });
44
+ };
45
+ AmplitudeCore.prototype.remove = function (pluginName) {
46
+ return __awaiter(this, void 0, void 0, function () {
47
+ var config;
48
+ return __generator(this, function (_a) {
49
+ config = this.config;
50
+ return [2 /*return*/, deregister(pluginName, config)];
51
+ });
52
+ });
53
+ };
54
+ AmplitudeCore.prototype.dispatch = function (event) {
55
+ return __awaiter(this, void 0, void 0, function () {
56
+ var result, e_1, message;
57
+ return __generator(this, function (_a) {
58
+ switch (_a.label) {
59
+ case 0:
60
+ _a.trys.push([0, 2, , 3]);
61
+ return [4 /*yield*/, push(event, this.config)];
62
+ case 1:
63
+ result = _a.sent();
64
+ if (result.code === 200) {
65
+ this.config.loggerProvider.log(result.message);
66
+ }
67
+ else {
68
+ this.config.loggerProvider.error(result.message);
69
+ }
70
+ return [2 /*return*/, result];
71
+ case 2:
72
+ e_1 = _a.sent();
73
+ message = String(e_1);
74
+ this.config.loggerProvider.error(message);
75
+ return [2 /*return*/, buildResult(event, 0, message)];
76
+ case 3: return [2 /*return*/];
60
77
  }
61
- else {
62
- config.loggerProvider.error(result.message);
63
- }
64
- return [2 /*return*/, result];
65
- case 2:
66
- e_1 = _a.sent();
67
- message = String(e_1);
68
- config.loggerProvider.error(message);
69
- return [2 /*return*/, buildResult(event, 0, message)];
70
- case 3: return [2 /*return*/];
71
- }
72
- });
73
- }); };
74
- export var setOptOut = function (optOut) {
75
- var config = getConfig();
76
- config.optOut = Boolean(optOut);
77
- };
78
+ });
79
+ });
80
+ };
81
+ AmplitudeCore.prototype.setOptOut = function (optOut) {
82
+ var config = this.config;
83
+ config.optOut = Boolean(optOut);
84
+ };
85
+ AmplitudeCore.prototype.flush = function () {
86
+ var config = this.config;
87
+ return flush(config);
88
+ };
89
+ return AmplitudeCore;
90
+ }());
91
+ export { AmplitudeCore };
78
92
  //# sourceMappingURL=core-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-client.js","sourceRoot":"","sources":["../../src/core-client.ts"],"names":[],"mappings":"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","sourcesContent":["import { Config, Event, EventOptions, Identify, Plugin, Revenue } from '@amplitude/analytics-types';\nimport { createConfig, getConfig } from './config';\nimport {\n createGroupIdentifyEvent,\n createIdentifyEvent,\n createTrackEvent,\n createRevenueEvent,\n createGroupEvent,\n} from './utils/event-builder';\nimport { deregister, push, register } from './timeline';\nimport { buildResult } from './utils/result-builder';\n\nexport const init = (config: Config) => {\n return createConfig(config);\n};\n\nexport const track = (eventType: string, eventProperties?: Record<string, any>, eventOptions?: EventOptions) => {\n const config = getConfig();\n const event = createTrackEvent(eventType, eventProperties, eventOptions);\n return dispatch(event, config);\n};\nexport const logEvent = track;\n\nexport const identify = (\n userId: string | undefined,\n deviceId: string | undefined,\n identify: Identify,\n eventOptions?: EventOptions,\n) => {\n const config = getConfig();\n const event = createIdentifyEvent(userId, deviceId, identify, eventOptions);\n return dispatch(event, config);\n};\n\nexport const groupIdentify = (\n userId: string | undefined,\n deviceId: string | undefined,\n groupType: string,\n groupName: string | string[],\n identify: Identify,\n eventOptions?: EventOptions,\n) => {\n const config = getConfig();\n const event = createGroupIdentifyEvent(userId, deviceId, groupType, groupName, identify, eventOptions);\n return dispatch(event, config);\n};\n\nexport const setGroup = (groupType: string, groupName: string | string[]) => {\n const config = getConfig();\n const event = createGroupEvent(groupType, groupName);\n return dispatch(event, config);\n};\n\nexport const revenue = (revenue: Revenue, eventOptions?: EventOptions) => {\n const config = getConfig();\n const event = createRevenueEvent(revenue, eventOptions);\n return dispatch(event, config);\n};\n\nexport const add = async (plugin: Plugin) => {\n const config = getConfig();\n return register(plugin, config);\n};\n\nexport const remove = async (pluginName: string) => {\n const config = getConfig();\n return deregister(pluginName, config);\n};\n\nexport const dispatch = async (event: Event, config: Config) => {\n try {\n const result = await push(event, config);\n if (result.code === 200) {\n config.loggerProvider.log(result.message);\n } else {\n config.loggerProvider.error(result.message);\n }\n return result;\n } catch (e) {\n const message = String(e);\n config.loggerProvider.error(message);\n return buildResult(event, 0, message);\n }\n};\n\nexport const setOptOut = (optOut: boolean) => {\n const config = getConfig();\n config.optOut = Boolean(optOut);\n};\n"]}
1
+ {"version":3,"file":"core-client.js","sourceRoot":"","sources":["../../src/core-client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CoreClient,\n Config,\n Event,\n BaseEvent,\n EventOptions,\n Identify,\n Plugin,\n Revenue,\n} from '@amplitude/analytics-types';\nimport {\n createGroupIdentifyEvent,\n createIdentifyEvent,\n createTrackEvent,\n createRevenueEvent,\n createGroupEvent,\n} from './utils/event-builder';\nimport { deregister, flush, push, register } from './timeline';\nimport { buildResult } from './utils/result-builder';\nexport class AmplitudeCore<T extends Config> implements CoreClient<T> {\n name: string;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: T;\n\n constructor(name = '$default') {\n this.name = name;\n }\n\n // NOTE: Do not use `_apiKey` and `_userId` here\n init(_apiKey: string | undefined, _userId: string | undefined, config: T) {\n this.config = config;\n return Promise.resolve();\n }\n\n track(eventInput: BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: EventOptions) {\n const event = createTrackEvent(eventInput, eventProperties, eventOptions);\n return this.dispatch(event);\n }\n\n logEvent = this.track.bind(this);\n\n identify(identify: Identify, eventOptions?: EventOptions, userId?: string, deviceId?: string) {\n const event = createIdentifyEvent(userId, deviceId, identify, eventOptions);\n return this.dispatch(event);\n }\n\n groupIdentify(\n groupType: string,\n groupName: string | string[],\n identify: Identify,\n eventOptions?: EventOptions,\n userId?: string,\n deviceId?: string,\n ) {\n const event = createGroupIdentifyEvent(userId, deviceId, groupType, groupName, identify, eventOptions);\n return this.dispatch(event);\n }\n\n setGroup(groupType: string, groupName: string | string[]) {\n const event = createGroupEvent(groupType, groupName);\n return this.dispatch(event);\n }\n\n revenue(revenue: Revenue, eventOptions?: EventOptions) {\n const event = createRevenueEvent(revenue, eventOptions);\n return this.dispatch(event);\n }\n\n async add(plugin: Plugin) {\n const config = this.config;\n return register(plugin, config);\n }\n\n async remove(pluginName: string) {\n const config = this.config;\n return deregister(pluginName, config);\n }\n\n async dispatch(event: Event) {\n try {\n const result = await push(event, this.config);\n if (result.code === 200) {\n this.config.loggerProvider.log(result.message);\n } else {\n this.config.loggerProvider.error(result.message);\n }\n return result;\n } catch (e) {\n const message = String(e);\n this.config.loggerProvider.error(message);\n return buildResult(event, 0, message);\n }\n }\n\n setOptOut(optOut: boolean) {\n const config = this.config;\n config.optOut = Boolean(optOut);\n }\n\n flush() {\n const config = this.config;\n return flush(config);\n }\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import { Event, EventBridgeReceiver } from '@amplitude/analytics-types';
2
+ export declare class EventBridgeChannel {
3
+ channel: string;
4
+ queue: Event[];
5
+ receiver: EventBridgeReceiver | undefined;
6
+ constructor(channel: string);
7
+ sendEvent(event: Event): void;
8
+ setReceiver(receiver: EventBridgeReceiver): void;
9
+ }
10
+ //# sourceMappingURL=event-bridge-channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bridge-channel.d.ts","sourceRoot":"","sources":["../../../src/event-bridge/event-bridge-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAIxE,qBAAa,kBAAkB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,EAAE,CAAM;IACpB,QAAQ,EAAE,mBAAmB,GAAG,SAAS,CAAC;gBAE9B,OAAO,EAAE,MAAM;IAI3B,SAAS,CAAC,KAAK,EAAE,KAAK;IAQtB,WAAW,CAAC,QAAQ,EAAE,mBAAmB;CAW1C"}
@@ -0,0 +1,30 @@
1
+ import { __read, __spreadArray } from "tslib";
2
+ var QUEUE_CAPACITY = 512;
3
+ var EventBridgeChannel = /** @class */ (function () {
4
+ function EventBridgeChannel(channel) {
5
+ this.queue = [];
6
+ this.channel = channel;
7
+ }
8
+ EventBridgeChannel.prototype.sendEvent = function (event) {
9
+ if (!this.receiver) {
10
+ this.queue = __spreadArray(__spreadArray([], __read(this.queue.slice(0, QUEUE_CAPACITY)), false), [event], false);
11
+ return;
12
+ }
13
+ this.receiver.receive(this.channel, event);
14
+ };
15
+ EventBridgeChannel.prototype.setReceiver = function (receiver) {
16
+ var _this = this;
17
+ if (this.receiver) {
18
+ return;
19
+ }
20
+ this.receiver = receiver;
21
+ var events = this.queue;
22
+ this.queue = [];
23
+ events.forEach(function (event) {
24
+ _this.receiver.receive(_this.channel, event);
25
+ });
26
+ };
27
+ return EventBridgeChannel;
28
+ }());
29
+ export { EventBridgeChannel };
30
+ //# sourceMappingURL=event-bridge-channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bridge-channel.js","sourceRoot":"","sources":["../../../src/event-bridge/event-bridge-channel.ts"],"names":[],"mappings":";AAEA,IAAM,cAAc,GAAG,GAAG,CAAC;AAE3B;IAKE,4BAAY,OAAe;QAH3B,UAAK,GAAY,EAAE,CAAC;QAIlB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,sCAAS,GAAT,UAAU,KAAY;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,KAAK,0CAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,YAAE,KAAK,SAAC,CAAC;YAC7D,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,wCAAW,GAAX,UAAY,QAA6B;QAAzC,iBAUC;QATC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK;YAClB,KAAI,CAAC,QAAgC,CAAC,OAAO,CAAC,KAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC;IACH,yBAAC;AAAD,CAAC,AA5BD,IA4BC","sourcesContent":["import { Event, EventBridgeReceiver } from '@amplitude/analytics-types';\n\nconst QUEUE_CAPACITY = 512;\n\nexport class EventBridgeChannel {\n channel: string;\n queue: Event[] = [];\n receiver: EventBridgeReceiver | undefined;\n\n constructor(channel: string) {\n this.channel = channel;\n }\n\n sendEvent(event: Event) {\n if (!this.receiver) {\n this.queue = [...this.queue.slice(0, QUEUE_CAPACITY), event];\n return;\n }\n this.receiver.receive(this.channel, event);\n }\n\n setReceiver(receiver: EventBridgeReceiver) {\n if (this.receiver) {\n return;\n }\n this.receiver = receiver;\n const events = this.queue;\n this.queue = [];\n events.forEach((event) => {\n (this.receiver as EventBridgeReceiver).receive(this.channel, event);\n });\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import { EventBridge as IEventBridge } from '@amplitude/analytics-types';
2
+ export declare class EventBridgeContainer {
3
+ static instances: Record<string, IEventBridge>;
4
+ static getInstance(instanceName: string): IEventBridge;
5
+ }
6
+ //# sourceMappingURL=event-bridge-container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bridge-container.d.ts","sourceRoot":"","sources":["../../../src/event-bridge/event-bridge-container.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAGzE,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAM;IACpD,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY;CAMvD"}
@@ -0,0 +1,15 @@
1
+ import { EventBridge } from './event-bridge';
2
+ var EventBridgeContainer = /** @class */ (function () {
3
+ function EventBridgeContainer() {
4
+ }
5
+ EventBridgeContainer.getInstance = function (instanceName) {
6
+ if (!this.instances[instanceName]) {
7
+ this.instances[instanceName] = new EventBridge();
8
+ }
9
+ return this.instances[instanceName];
10
+ };
11
+ EventBridgeContainer.instances = {};
12
+ return EventBridgeContainer;
13
+ }());
14
+ export { EventBridgeContainer };
15
+ //# sourceMappingURL=event-bridge-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bridge-container.js","sourceRoot":"","sources":["../../../src/event-bridge/event-bridge-container.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;IAAA;IAQA,CAAC;IANQ,gCAAW,GAAlB,UAAmB,YAAoB;QACrC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YACjC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;SAClD;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IANM,8BAAS,GAAiC,EAAE,CAAC;IAOtD,2BAAC;CAAA,AARD,IAQC;SARY,oBAAoB","sourcesContent":["import { EventBridge as IEventBridge } from '@amplitude/analytics-types';\nimport { EventBridge } from './event-bridge';\n\nexport class EventBridgeContainer {\n static instances: Record<string, IEventBridge> = {};\n static getInstance(instanceName: string): IEventBridge {\n if (!this.instances[instanceName]) {\n this.instances[instanceName] = new EventBridge();\n }\n return this.instances[instanceName];\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { Event, EventBridgeReceiver, EventBridge as IEventBridge } from '@amplitude/analytics-types';
2
+ import { EventBridgeChannel } from './event-bridge-channel';
3
+ export declare class EventBridge implements IEventBridge {
4
+ eventBridgeChannels: Record<string, EventBridgeChannel | undefined>;
5
+ sendEvent(channel: string, event: Event): void;
6
+ setReceiver(channel: string, receiver: EventBridgeReceiver): void;
7
+ }
8
+ //# sourceMappingURL=event-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bridge.d.ts","sourceRoot":"","sources":["../../../src/event-bridge/event-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrG,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,qBAAa,WAAY,YAAW,YAAY;IAC9C,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,CAAC,CAAM;IAEzE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;IAOvC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB;CAM3D"}
@@ -0,0 +1,21 @@
1
+ import { EventBridgeChannel } from './event-bridge-channel';
2
+ var EventBridge = /** @class */ (function () {
3
+ function EventBridge() {
4
+ this.eventBridgeChannels = {};
5
+ }
6
+ EventBridge.prototype.sendEvent = function (channel, event) {
7
+ if (!this.eventBridgeChannels[channel]) {
8
+ this.eventBridgeChannels[channel] = new EventBridgeChannel(channel);
9
+ }
10
+ this.eventBridgeChannels[channel].sendEvent(event);
11
+ };
12
+ EventBridge.prototype.setReceiver = function (channel, receiver) {
13
+ if (!this.eventBridgeChannels[channel]) {
14
+ this.eventBridgeChannels[channel] = new EventBridgeChannel(channel);
15
+ }
16
+ this.eventBridgeChannels[channel].setReceiver(receiver);
17
+ };
18
+ return EventBridge;
19
+ }());
20
+ export { EventBridge };
21
+ //# sourceMappingURL=event-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bridge.js","sourceRoot":"","sources":["../../../src/event-bridge/event-bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D;IAAA;QACE,wBAAmB,GAAmD,EAAE,CAAC;IAe3E,CAAC;IAbC,+BAAS,GAAT,UAAU,OAAe,EAAE,KAAY;QACrC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE;YACtC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;SACrE;QACA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAwB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7E,CAAC;IAED,iCAAW,GAAX,UAAY,OAAe,EAAE,QAA6B;QACxD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE;YACtC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;SACrE;QACA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAwB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClF,CAAC;IACH,kBAAC;AAAD,CAAC,AAhBD,IAgBC","sourcesContent":["import { Event, EventBridgeReceiver, EventBridge as IEventBridge } from '@amplitude/analytics-types';\nimport { EventBridgeChannel } from './event-bridge-channel';\n\nexport class EventBridge implements IEventBridge {\n eventBridgeChannels: Record<string, EventBridgeChannel | undefined> = {};\n\n sendEvent(channel: string, event: Event) {\n if (!this.eventBridgeChannels[channel]) {\n this.eventBridgeChannels[channel] = new EventBridgeChannel(channel);\n }\n (this.eventBridgeChannels[channel] as EventBridgeChannel).sendEvent(event);\n }\n\n setReceiver(channel: string, receiver: EventBridgeReceiver) {\n if (!this.eventBridgeChannels[channel]) {\n this.eventBridgeChannels[channel] = new EventBridgeChannel(channel);\n }\n (this.eventBridgeChannels[channel] as EventBridgeChannel).setReceiver(receiver);\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export declare enum EventChannel {
2
+ EVENT = "EVENT",
3
+ IDENTIFY = "IDENTIFY"
4
+ }
5
+ //# sourceMappingURL=event-channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-channel.d.ts","sourceRoot":"","sources":["../../../src/event-bridge/event-channel.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,KAAK,UAAU;IACf,QAAQ,aAAa;CACtB"}
@@ -0,0 +1,6 @@
1
+ export var EventChannel;
2
+ (function (EventChannel) {
3
+ EventChannel["EVENT"] = "EVENT";
4
+ EventChannel["IDENTIFY"] = "IDENTIFY";
5
+ })(EventChannel || (EventChannel = {}));
6
+ //# sourceMappingURL=event-channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-channel.js","sourceRoot":"","sources":["../../../src/event-bridge/event-channel.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,qCAAqB,CAAA;AACvB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB","sourcesContent":["export enum EventChannel {\n EVENT = 'EVENT',\n IDENTIFY = 'IDENTIFY',\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { Config, CoreClient, Event, EventBridgeReceiver } from '@amplitude/analytics-types';
2
+ import { EventChannel } from './event-channel';
3
+ export declare class AnalyticsEventReceiver implements EventBridgeReceiver {
4
+ private client;
5
+ constructor(client: CoreClient<Config>);
6
+ receive(_channel: EventChannel, event: Event): void;
7
+ }
8
+ //# sourceMappingURL=event-receiver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-receiver.d.ts","sourceRoot":"","sources":["../../../src/event-bridge/event-receiver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,sBAAuB,YAAW,mBAAmB;IACpD,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;IAE9C,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK;CAiB7C"}
@@ -0,0 +1,25 @@
1
+ var AnalyticsEventReceiver = /** @class */ (function () {
2
+ function AnalyticsEventReceiver(client) {
3
+ this.client = client;
4
+ }
5
+ AnalyticsEventReceiver.prototype.receive = function (_channel, event) {
6
+ var _this = this;
7
+ this.client.config.loggerProvider.log("Receive event from event bridge ".concat(event.event_type));
8
+ this.client
9
+ .track({
10
+ event_type: event.event_type,
11
+ event_properties: event.event_properties,
12
+ user_properties: event.user_properties,
13
+ groups: event.groups,
14
+ group_properties: event.group_properties,
15
+ })
16
+ // Due to non-awaitable async interface, code is unreachable in test environment
17
+ .catch(
18
+ /* istanbul ignore next */ function (error) {
19
+ _this.client.config.loggerProvider.error(error);
20
+ });
21
+ };
22
+ return AnalyticsEventReceiver;
23
+ }());
24
+ export { AnalyticsEventReceiver };
25
+ //# sourceMappingURL=event-receiver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-receiver.js","sourceRoot":"","sources":["../../../src/event-bridge/event-receiver.ts"],"names":[],"mappings":"AAGA;IACE,gCAAoB,MAA0B;QAA1B,WAAM,GAAN,MAAM,CAAoB;IAAG,CAAC;IAElD,wCAAO,GAAP,UAAQ,QAAsB,EAAE,KAAY;QAA5C,iBAgBC;QAfC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,0CAAmC,KAAK,CAAC,UAAU,CAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,MAAM;aACR,KAAK,CAAC;YACL,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC,CAAC;YACF,gFAAgF;aAC/E,KAAK;QACJ,0BAA0B,CAAC,UAAC,KAAK;YAC/B,KAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC,CACF,CAAC;IACN,CAAC;IACH,6BAAC;AAAD,CAAC,AApBD,IAoBC","sourcesContent":["import { Config, CoreClient, Event, EventBridgeReceiver } from '@amplitude/analytics-types';\nimport { EventChannel } from './event-channel';\n\nexport class AnalyticsEventReceiver implements EventBridgeReceiver {\n constructor(private client: CoreClient<Config>) {}\n\n receive(_channel: EventChannel, event: Event) {\n this.client.config.loggerProvider.log(`Receive event from event bridge ${event.event_type}`);\n this.client\n .track({\n event_type: event.event_type,\n event_properties: event.event_properties,\n user_properties: event.user_properties,\n groups: event.groups,\n group_properties: event.group_properties,\n })\n // Due to non-awaitable async interface, code is unreachable in test environment\n .catch(\n /* istanbul ignore next */ (error) => {\n this.client.config.loggerProvider.error(error);\n },\n );\n }\n}\n"]}
@@ -1,10 +1,12 @@
1
- export { init, track, logEvent, identify, groupIdentify, setGroup, revenue, add, remove, setOptOut, } from './core-client';
2
- export { getConfig } from './config';
3
- export { buildResponse } from './utils/response-builder';
1
+ export { AmplitudeCore } from './core-client';
4
2
  export { Identify } from './identify';
5
3
  export { Revenue } from './revenue';
6
4
  export { Destination } from './plugins/destination';
7
5
  export { Config } from './config';
8
6
  export { Logger } from './logger';
9
7
  export { AMPLITUDE_PREFIX } from './constants';
8
+ export { returnWrapper } from './utils/return-wrapper';
9
+ export { UUID } from './utils/uuid';
10
+ export { MemoryStorage } from './storage/memory';
11
+ export { BaseTransport } from './transports/base';
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,OAAO,EACP,GAAG,EACH,MAAM,EACN,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
package/lib/esm/index.js CHANGED
@@ -1,10 +1,12 @@
1
- export { init, track, logEvent, identify, groupIdentify, setGroup, revenue, add, remove, setOptOut, } from './core-client';
2
- export { getConfig } from './config';
3
- export { buildResponse } from './utils/response-builder';
1
+ export { AmplitudeCore } from './core-client';
4
2
  export { Identify } from './identify';
5
3
  export { Revenue } from './revenue';
6
4
  export { Destination } from './plugins/destination';
7
5
  export { Config } from './config';
8
6
  export { Logger } from './logger';
9
7
  export { AMPLITUDE_PREFIX } from './constants';
8
+ export { returnWrapper } from './utils/return-wrapper';
9
+ export { UUID } from './utils/uuid';
10
+ export { MemoryStorage } from './storage/memory';
11
+ export { BaseTransport } from './transports/base';
10
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,OAAO,EACP,GAAG,EACH,MAAM,EACN,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC","sourcesContent":["export {\n init,\n track,\n logEvent,\n identify,\n groupIdentify,\n setGroup,\n revenue,\n add,\n remove,\n setOptOut,\n} from './core-client';\nexport { getConfig } from './config';\nexport { buildResponse } from './utils/response-builder';\nexport { Identify } from './identify';\nexport { Revenue } from './revenue';\nexport { Destination } from './plugins/destination';\nexport { Config } from './config';\nexport { Logger } from './logger';\nexport { AMPLITUDE_PREFIX } from './constants';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["export { AmplitudeCore } from './core-client';\nexport { Identify } from './identify';\nexport { Revenue } from './revenue';\nexport { Destination } from './plugins/destination';\nexport { Config } from './config';\nexport { Logger } from './logger';\nexport { AMPLITUDE_PREFIX } from './constants';\nexport { returnWrapper } from './utils/return-wrapper';\nexport { UUID } from './utils/uuid';\nexport { MemoryStorage } from './storage/memory';\nexport { BaseTransport } from './transports/base';\n"]}
@@ -2,5 +2,5 @@ export declare const SUCCESS_MESSAGE = "Event tracked successfully";
2
2
  export declare const UNEXPECTED_ERROR_MESSAGE = "Unexpected error occurred";
3
3
  export declare const MAX_RETRIES_EXCEEDED_MESSAGE = "Event rejected due to exceeded retry count";
4
4
  export declare const OPT_OUT_MESSAGE = "Event skipped due to optOut config";
5
- export declare const MISSING_API_KEY_MESSAGE = "Event skipped due to optOut config";
5
+ export declare const MISSING_API_KEY_MESSAGE = "Event rejected due to missing API key";
6
6
  //# sourceMappingURL=messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,+BAA+B,CAAC;AAC5D,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AACpE,eAAO,MAAM,4BAA4B,+CAA+C,CAAC;AACzF,eAAO,MAAM,eAAe,uCAAuC,CAAC;AACpE,eAAO,MAAM,uBAAuB,uCAAuC,CAAC"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,+BAA+B,CAAC;AAC5D,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AACpE,eAAO,MAAM,4BAA4B,+CAA+C,CAAC;AACzF,eAAO,MAAM,eAAe,uCAAuC,CAAC;AACpE,eAAO,MAAM,uBAAuB,0CAA0C,CAAC"}
@@ -2,5 +2,5 @@ export var SUCCESS_MESSAGE = 'Event tracked successfully';
2
2
  export var UNEXPECTED_ERROR_MESSAGE = 'Unexpected error occurred';
3
3
  export var MAX_RETRIES_EXCEEDED_MESSAGE = 'Event rejected due to exceeded retry count';
4
4
  export var OPT_OUT_MESSAGE = 'Event skipped due to optOut config';
5
- export var MISSING_API_KEY_MESSAGE = 'Event skipped due to optOut config';
5
+ export var MISSING_API_KEY_MESSAGE = 'Event rejected due to missing API key';
6
6
  //# sourceMappingURL=messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,eAAe,GAAG,4BAA4B,CAAC;AAC5D,MAAM,CAAC,IAAM,wBAAwB,GAAG,2BAA2B,CAAC;AACpE,MAAM,CAAC,IAAM,4BAA4B,GAAG,4CAA4C,CAAC;AACzF,MAAM,CAAC,IAAM,eAAe,GAAG,oCAAoC,CAAC;AACpE,MAAM,CAAC,IAAM,uBAAuB,GAAG,oCAAoC,CAAC","sourcesContent":["export const SUCCESS_MESSAGE = 'Event tracked successfully';\nexport const UNEXPECTED_ERROR_MESSAGE = 'Unexpected error occurred';\nexport const MAX_RETRIES_EXCEEDED_MESSAGE = 'Event rejected due to exceeded retry count';\nexport const OPT_OUT_MESSAGE = 'Event skipped due to optOut config';\nexport const MISSING_API_KEY_MESSAGE = 'Event skipped due to optOut config';\n"]}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,eAAe,GAAG,4BAA4B,CAAC;AAC5D,MAAM,CAAC,IAAM,wBAAwB,GAAG,2BAA2B,CAAC;AACpE,MAAM,CAAC,IAAM,4BAA4B,GAAG,4CAA4C,CAAC;AACzF,MAAM,CAAC,IAAM,eAAe,GAAG,oCAAoC,CAAC;AACpE,MAAM,CAAC,IAAM,uBAAuB,GAAG,uCAAuC,CAAC","sourcesContent":["export const SUCCESS_MESSAGE = 'Event tracked successfully';\nexport const UNEXPECTED_ERROR_MESSAGE = 'Unexpected error occurred';\nexport const MAX_RETRIES_EXCEEDED_MESSAGE = 'Event rejected due to exceeded retry count';\nexport const OPT_OUT_MESSAGE = 'Event skipped due to optOut config';\nexport const MISSING_API_KEY_MESSAGE = 'Event rejected due to missing API key';\n"]}
@@ -9,11 +9,12 @@ export declare class Destination implements DestinationPlugin {
9
9
  config: Config;
10
10
  scheduled: boolean;
11
11
  queue: Context[];
12
+ queueBuffer: Set<Context>;
12
13
  setup(config: Config): Promise<undefined>;
13
14
  execute(event: Event): Promise<Result>;
14
15
  addToQueue(...list: Context[]): void;
15
16
  schedule(timeout: number): void;
16
- flush(): Promise<void>;
17
+ flush(includeQueueBuffer?: boolean): Promise<void>;
17
18
  send(list: Context[]): Promise<void>;
18
19
  handleReponse(res: Response, list: Context[]): void;
19
20
  handleSuccessResponse(res: SuccessResponse, list: Context[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"destination.d.ts","sourceRoot":"","sources":["../../../src/plugins/destination.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,kBAAkB,IAAI,OAAO,EAC7B,iBAAiB,EACjB,KAAK,EACL,eAAe,EACf,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,MAAM,EAEN,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAOpC,qBAAa,WAAY,YAAW,iBAAiB;IACnD,IAAI,SAAe;IACnB,IAAI,yBAAmC;IAEvC,OAAO,SAAQ;IACf,QAAQ,SAAS;IACjB,UAAU,SAAM;IAChB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAa;IAI/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,UAAS;IAClB,KAAK,EAAE,OAAO,EAAE,CAAM;IAEtB,KAAK,CAAC,MAAM,EAAE,MAAM;IAapB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAYtC,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IA0B7B,QAAQ,CAAC,OAAO,EAAE,MAAM;IAalB,KAAK;IAOL,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;IAsB1B,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;IAwB5C,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;IAI3D,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;IAwB3D,6BAA6B,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,EAAE,OAAO,EAAE;IAS3E,uBAAuB,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;IAyB/D,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAIlC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAK7D,WAAW,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE;IAM9B,gBAAgB,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE;IAMnC,QAAQ;CAKT"}
1
+ {"version":3,"file":"destination.d.ts","sourceRoot":"","sources":["../../../src/plugins/destination.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,kBAAkB,IAAI,OAAO,EAC7B,iBAAiB,EACjB,KAAK,EACL,eAAe,EACf,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,MAAM,EAEN,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAOpC,qBAAa,WAAY,YAAW,iBAAiB;IACnD,IAAI,SAAe;IACnB,IAAI,yBAAmC;IAEvC,OAAO,SAAQ;IACf,QAAQ,SAAS;IACjB,UAAU,SAAM;IAChB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAa;IAI/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,UAAS;IAClB,KAAK,EAAE,OAAO,EAAE,CAAM;IACtB,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAa;IAEtC,KAAK,CAAC,MAAM,EAAE,MAAM;IAapB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAYtC,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IA8B7B,QAAQ,CAAC,OAAO,EAAE,MAAM;IAalB,KAAK,CAAC,kBAAkB,UAAQ;IAYhC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;IA0B1B,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;IAwB5C,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;IAI3D,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;IAyB3D,6BAA6B,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,EAAE,OAAO,EAAE;IAS3E,uBAAuB,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;IAyB/D,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAIlC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAK7D,WAAW,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE;IAM9B,gBAAgB,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE;IAMnC,QAAQ;CAKT"}
@@ -4,7 +4,7 @@ import { MISSING_API_KEY_MESSAGE, SUCCESS_MESSAGE, UNEXPECTED_ERROR_MESSAGE } fr
4
4
  import { STORAGE_PREFIX } from '../constants';
5
5
  import { chunk } from '../utils/chunk';
6
6
  import { buildResult } from '../utils/result-builder';
7
- import { getApiHost } from '../config';
7
+ import { createServerConfig } from '../config';
8
8
  var Destination = /** @class */ (function () {
9
9
  function Destination() {
10
10
  this.name = 'amplitude';
@@ -15,6 +15,7 @@ var Destination = /** @class */ (function () {
15
15
  this.backup = new Set();
16
16
  this.scheduled = false;
17
17
  this.queue = [];
18
+ this.queueBuffer = new Set();
18
19
  }
19
20
  Destination.prototype.setup = function (config) {
20
21
  var _this = this;
@@ -62,9 +63,13 @@ var Destination = /** @class */ (function () {
62
63
  _this.schedule(_this.config.flushIntervalMillis);
63
64
  return;
64
65
  }
66
+ _this.queueBuffer.add(context);
65
67
  setTimeout(function () {
66
- _this.queue = _this.queue.concat(context);
67
- _this.schedule(_this.config.flushIntervalMillis);
68
+ if (_this.queueBuffer.has(context)) {
69
+ _this.queueBuffer.delete(context);
70
+ _this.queue = _this.queue.concat(context);
71
+ _this.schedule(_this.config.flushIntervalMillis);
72
+ }
68
73
  }, delay || context.attempts * _this.backoff);
69
74
  });
70
75
  };
@@ -82,7 +87,8 @@ var Destination = /** @class */ (function () {
82
87
  });
83
88
  }, timeout);
84
89
  };
85
- Destination.prototype.flush = function () {
90
+ Destination.prototype.flush = function (includeQueueBuffer) {
91
+ if (includeQueueBuffer === void 0) { includeQueueBuffer = false; }
86
92
  return __awaiter(this, void 0, void 0, function () {
87
93
  var list, batches;
88
94
  var _this = this;
@@ -91,6 +97,10 @@ var Destination = /** @class */ (function () {
91
97
  case 0:
92
98
  list = this.queue;
93
99
  this.queue = [];
100
+ if (includeQueueBuffer) {
101
+ list.push.apply(list, __spreadArray([], __read(this.queueBuffer.values()), false));
102
+ this.queueBuffer.clear();
103
+ }
94
104
  batches = chunk(list, this.config.flushQueueSize);
95
105
  return [4 /*yield*/, Promise.all(batches.map(function (batch) { return _this.send(batch); }))];
96
106
  case 1:
@@ -102,7 +112,7 @@ var Destination = /** @class */ (function () {
102
112
  };
103
113
  Destination.prototype.send = function (list) {
104
114
  return __awaiter(this, void 0, void 0, function () {
105
- var payload, res, e_1;
115
+ var payload, serverUrl, res, e_1;
106
116
  return __generator(this, function (_a) {
107
117
  switch (_a.label) {
108
118
  case 0:
@@ -112,11 +122,15 @@ var Destination = /** @class */ (function () {
112
122
  payload = {
113
123
  api_key: this.config.apiKey,
114
124
  events: list.map(function (context) { return context.event; }),
125
+ options: {
126
+ min_id_length: this.config.minIdLength,
127
+ },
115
128
  };
116
129
  _a.label = 1;
117
130
  case 1:
118
131
  _a.trys.push([1, 3, , 4]);
119
- return [4 /*yield*/, this.config.transportProvider.send(getApiHost(this.config), payload)];
132
+ serverUrl = createServerConfig(this.config.serverUrl, this.config.serverZone, this.config.useBatch).serverUrl;
133
+ return [4 /*yield*/, this.config.transportProvider.send(serverUrl, payload)];
120
134
  case 2:
121
135
  res = _a.sent();
122
136
  if (res === null) {
@@ -162,7 +176,7 @@ var Destination = /** @class */ (function () {
162
176
  this.fulfillRequest(list, res.statusCode, res.body.error);
163
177
  return;
164
178
  }
165
- var dropIndex = __spreadArray(__spreadArray(__spreadArray([], __read(Object.values(res.body.eventsWithInvalidFields)), false), __read(Object.values(res.body.eventsWithMissingFields)), false), __read(res.body.silencedEvents), false).flat();
179
+ var dropIndex = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(Object.values(res.body.eventsWithInvalidFields)), false), __read(Object.values(res.body.eventsWithMissingFields)), false), __read(Object.values(res.body.eventsWithInvalidIdLengths)), false), __read(res.body.silencedEvents), false).flat();
166
180
  var dropIndexSet = new Set(dropIndex);
167
181
  var retry = list.filter(function (context, index) {
168
182
  if (dropIndexSet.has(index)) {