@amplitude/analytics-core 0.10.1 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/core-client.d.ts +1 -1
- package/lib/cjs/core-client.d.ts.map +1 -1
- package/lib/cjs/core-client.js +13 -13
- package/lib/cjs/core-client.js.map +1 -1
- package/lib/cjs/event-bridge/event-bridge-channel.js +1 -1
- package/lib/cjs/event-bridge/event-bridge-channel.js.map +1 -1
- package/lib/cjs/identify.js +1 -1
- package/lib/cjs/identify.js.map +1 -1
- package/lib/cjs/plugins/destination.d.ts.map +1 -1
- package/lib/cjs/plugins/destination.js +26 -14
- package/lib/cjs/plugins/destination.js.map +1 -1
- package/lib/cjs/revenue.js +1 -1
- package/lib/cjs/revenue.js.map +1 -1
- package/lib/cjs/storage/memory.js +12 -12
- package/lib/cjs/timeline.js +14 -14
- package/lib/cjs/timeline.js.map +1 -1
- package/lib/cjs/utils/debug.js +3 -3
- package/lib/cjs/utils/debug.js.map +1 -1
- package/lib/cjs/utils/event-builder.d.ts +5 -5
- package/lib/cjs/utils/event-builder.d.ts.map +1 -1
- package/lib/cjs/utils/event-builder.js +5 -5
- package/lib/cjs/utils/event-builder.js.map +1 -1
- package/lib/cjs/utils/return-wrapper.js +1 -1
- package/lib/cjs/utils/return-wrapper.js.map +1 -1
- package/lib/cjs/utils/valid-properties.js +1 -1
- package/lib/cjs/utils/valid-properties.js.map +1 -1
- package/lib/esm/core-client.d.ts +1 -1
- package/lib/esm/core-client.d.ts.map +1 -1
- package/lib/esm/plugins/destination.d.ts.map +1 -1
- package/lib/esm/plugins/destination.js +14 -2
- package/lib/esm/plugins/destination.js.map +1 -1
- package/lib/esm/utils/event-builder.d.ts +5 -5
- package/lib/esm/utils/event-builder.d.ts.map +1 -1
- package/package.json +4 -4
package/lib/cjs/core-client.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare class AmplitudeCore<T extends Config> implements CoreClient<T> {
|
|
|
11
11
|
_init(config: T): Promise<void>;
|
|
12
12
|
runQueuedFunctions(queueName: 'q' | 'dispatchQ'): Promise<void>;
|
|
13
13
|
track(eventInput: BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: EventOptions): Promise<Result>;
|
|
14
|
-
logEvent: (eventInput: BaseEvent | string, eventProperties?: Record<string, any
|
|
14
|
+
logEvent: (eventInput: BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: EventOptions) => Promise<Result>;
|
|
15
15
|
identify(identify: Identify, eventOptions?: EventOptions): Promise<Result>;
|
|
16
16
|
groupIdentify(groupType: string, groupName: string | string[], identify: Identify, eventOptions?: EventOptions): Promise<Result>;
|
|
17
17
|
setGroup(groupType: string, groupName: string | string[], eventOptions?: EventOptions): Promise<Result>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-client.d.ts","sourceRoot":"","sources":["../../src/core-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,MAAM,EACN,KAAK,EACL,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,EACP,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,qBAAa,aAAa,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IACnE,YAAY,UAAS;IACrB,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,CAAC,CAAC;IAGV,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAM;IACrC,SAAS,CAAC,SAAS,EAAE,gBAAgB,EAAE,CAAM;gBAEjC,IAAI,SAAa;IAKvB,KAAK,CAAC,MAAM,EAAE,CAAC;IAMf,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,WAAW;IAQrD,KAAK,CAAC,UAAU,EAAE,SAAS,GAAG,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY;IAKxG,QAAQ,eALU,SAAS,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"core-client.d.ts","sourceRoot":"","sources":["../../src/core-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,MAAM,EACN,KAAK,EACL,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,EACP,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,qBAAa,aAAa,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IACnE,YAAY,UAAS;IACrB,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,CAAC,CAAC;IAGV,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAM;IACrC,SAAS,CAAC,SAAS,EAAE,gBAAgB,EAAE,CAAM;gBAEjC,IAAI,SAAa;IAKvB,KAAK,CAAC,MAAM,EAAE,CAAC;IAMf,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,WAAW;IAQrD,KAAK,CAAC,UAAU,EAAE,SAAS,GAAG,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY;IAKxG,QAAQ,eALU,SAAS,GAAG,MAAM,oBAAoB,OAAO,MAAM,EAAE,GAAG,CAAC,iBAAiB,YAAY,qBAKvE;IAEjC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,YAAY;IAKxD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,YAAY;IAK9G,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,YAAY;IAKrF,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,YAAY;IAK/C,GAAG,CAAC,MAAM,EAAE,MAAM;IAQlB,MAAM,CAAC,UAAU,EAAE,MAAM;IAQ/B,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAOtE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAUvC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB5C,SAAS,CAAC,MAAM,EAAE,OAAO;IAQzB,KAAK;CAGN"}
|
package/lib/cjs/core-client.js
CHANGED
|
@@ -16,8 +16,8 @@ var AmplitudeCore = /** @class */ (function () {
|
|
|
16
16
|
this.name = name;
|
|
17
17
|
}
|
|
18
18
|
AmplitudeCore.prototype._init = function (config) {
|
|
19
|
-
return
|
|
20
|
-
return
|
|
19
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
20
|
+
return tslib_1.__generator(this, function (_a) {
|
|
21
21
|
switch (_a.label) {
|
|
22
22
|
case 0:
|
|
23
23
|
this.config = config;
|
|
@@ -31,10 +31,10 @@ var AmplitudeCore = /** @class */ (function () {
|
|
|
31
31
|
});
|
|
32
32
|
};
|
|
33
33
|
AmplitudeCore.prototype.runQueuedFunctions = function (queueName) {
|
|
34
|
-
return
|
|
34
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
35
35
|
var queuedFunctions, queuedFunctions_1, queuedFunctions_1_1, queuedFunction, e_1_1;
|
|
36
36
|
var e_1, _a;
|
|
37
|
-
return
|
|
37
|
+
return tslib_1.__generator(this, function (_b) {
|
|
38
38
|
switch (_b.label) {
|
|
39
39
|
case 0:
|
|
40
40
|
queuedFunctions = this[queueName];
|
|
@@ -42,7 +42,7 @@ var AmplitudeCore = /** @class */ (function () {
|
|
|
42
42
|
_b.label = 1;
|
|
43
43
|
case 1:
|
|
44
44
|
_b.trys.push([1, 6, 7, 8]);
|
|
45
|
-
queuedFunctions_1 =
|
|
45
|
+
queuedFunctions_1 = tslib_1.__values(queuedFunctions), queuedFunctions_1_1 = queuedFunctions_1.next();
|
|
46
46
|
_b.label = 2;
|
|
47
47
|
case 2:
|
|
48
48
|
if (!!queuedFunctions_1_1.done) return [3 /*break*/, 5];
|
|
@@ -91,8 +91,8 @@ var AmplitudeCore = /** @class */ (function () {
|
|
|
91
91
|
return this.dispatch(event);
|
|
92
92
|
};
|
|
93
93
|
AmplitudeCore.prototype.add = function (plugin) {
|
|
94
|
-
return
|
|
95
|
-
return
|
|
94
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
95
|
+
return tslib_1.__generator(this, function (_a) {
|
|
96
96
|
if (!this.config) {
|
|
97
97
|
this.q.push(this.add.bind(this, plugin));
|
|
98
98
|
return [2 /*return*/];
|
|
@@ -102,8 +102,8 @@ var AmplitudeCore = /** @class */ (function () {
|
|
|
102
102
|
});
|
|
103
103
|
};
|
|
104
104
|
AmplitudeCore.prototype.remove = function (pluginName) {
|
|
105
|
-
return
|
|
106
|
-
return
|
|
105
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
106
|
+
return tslib_1.__generator(this, function (_a) {
|
|
107
107
|
if (!this.config) {
|
|
108
108
|
this.q.push(this.remove.bind(this, pluginName));
|
|
109
109
|
return [2 /*return*/];
|
|
@@ -119,9 +119,9 @@ var AmplitudeCore = /** @class */ (function () {
|
|
|
119
119
|
void this.process(event).then(callback);
|
|
120
120
|
};
|
|
121
121
|
AmplitudeCore.prototype.dispatch = function (event) {
|
|
122
|
-
return
|
|
122
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
123
123
|
var _this = this;
|
|
124
|
-
return
|
|
124
|
+
return tslib_1.__generator(this, function (_a) {
|
|
125
125
|
if (!this.config) {
|
|
126
126
|
return [2 /*return*/, new Promise(function (resolve) {
|
|
127
127
|
_this.dispatchQ.push(_this.dispatchWithCallback.bind(_this, event, resolve));
|
|
@@ -132,9 +132,9 @@ var AmplitudeCore = /** @class */ (function () {
|
|
|
132
132
|
});
|
|
133
133
|
};
|
|
134
134
|
AmplitudeCore.prototype.process = function (event) {
|
|
135
|
-
return
|
|
135
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
136
136
|
var result, e_2, message, result;
|
|
137
|
-
return
|
|
137
|
+
return tslib_1.__generator(this, function (_a) {
|
|
138
138
|
switch (_a.label) {
|
|
139
139
|
case 0:
|
|
140
140
|
_a.trys.push([0, 2, , 3]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-client.js","sourceRoot":"","sources":["../../src/core-client.ts"],"names":[],"mappings":";;;AAWA,uDAM+B;AAC/B,uCAAsC;AACtC,yDAAqD;AACrD,uCAAqE;AAErE;IAYE,uBAAY,IAAiB;QAAjB,qBAAA,EAAA,iBAAiB;QAX7B,iBAAY,GAAG,KAAK,CAAC;QAQX,MAAC,GAAuB,EAAE,CAAC;QAC3B,cAAS,GAAuB,EAAE,CAAC;QA0B7C,aAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAvB/B,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEK,6BAAK,GAAX,UAAY,MAAS;;;;;wBACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;wBACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACtB,qBAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAA;;wBAAlC,SAAkC,CAAC;;;;;KACpC;IAEK,0CAAkB,GAAxB,UAAyB,SAA4B;;;;;;;wBAC7C,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;wBACxC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;;;;wBACQ,oBAAA,
|
|
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 Result,\n} from '@amplitude/analytics-types';\nimport {\n createGroupIdentifyEvent,\n createIdentifyEvent,\n createTrackEvent,\n createRevenueEvent,\n createGroupEvent,\n} from './utils/event-builder';\nimport { Timeline } from './timeline';\nimport { buildResult } from './utils/result-builder';\nimport { CLIENT_NOT_INITIALIZED, OPT_OUT_MESSAGE } from './messages';\n\nexport class AmplitudeCore<T extends Config> implements CoreClient<T> {\n initializing = false;\n name: string;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: T;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n timeline: Timeline;\n protected q: CallableFunction[] = [];\n protected dispatchQ: CallableFunction[] = [];\n\n constructor(name = '$default') {\n this.timeline = new Timeline();\n this.name = name;\n }\n\n async _init(config: T) {\n this.config = config;\n this.timeline.reset();\n await this.runQueuedFunctions('q');\n }\n\n async runQueuedFunctions(queueName: 'q' | 'dispatchQ') {\n const queuedFunctions = this[queueName];\n this[queueName] = [];\n for (const queuedFunction of queuedFunctions) {\n await queuedFunction();\n }\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) {\n const event = createIdentifyEvent(identify, eventOptions);\n return this.dispatch(event);\n }\n\n groupIdentify(groupType: string, groupName: string | string[], identify: Identify, eventOptions?: EventOptions) {\n const event = createGroupIdentifyEvent(groupType, groupName, identify, eventOptions);\n return this.dispatch(event);\n }\n\n setGroup(groupType: string, groupName: string | string[], eventOptions?: EventOptions) {\n const event = createGroupEvent(groupType, groupName, eventOptions);\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 if (!this.config) {\n this.q.push(this.add.bind(this, plugin));\n return;\n }\n return this.timeline.register(plugin, this.config);\n }\n\n async remove(pluginName: string) {\n if (!this.config) {\n this.q.push(this.remove.bind(this, pluginName));\n return;\n }\n return this.timeline.deregister(pluginName);\n }\n\n dispatchWithCallback(event: Event, callback: (result: Result) => void): void {\n if (!this.config) {\n return callback(buildResult(event, 0, CLIENT_NOT_INITIALIZED));\n }\n void this.process(event).then(callback);\n }\n\n async dispatch(event: Event): Promise<Result> {\n if (!this.config) {\n return new Promise<Result>((resolve) => {\n this.dispatchQ.push(this.dispatchWithCallback.bind(this, event, resolve));\n });\n }\n\n return this.process(event);\n }\n\n async process(event: Event): Promise<Result> {\n try {\n // skip event processing if opt out\n if (this.config.optOut) {\n return buildResult(event, 0, OPT_OUT_MESSAGE);\n }\n\n const result = await this.timeline.push(event);\n\n result.code === 200\n ? this.config.loggerProvider.log(result.message)\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 const result = buildResult(event, 0, message);\n\n return result;\n }\n }\n\n setOptOut(optOut: boolean) {\n if (!this.config) {\n this.q.push(this.setOptOut.bind(this, Boolean(optOut)));\n return;\n }\n this.config.optOut = Boolean(optOut);\n }\n\n flush() {\n return this.timeline.flush();\n }\n}\n"]}
|
|
@@ -9,7 +9,7 @@ var EventBridgeChannel = /** @class */ (function () {
|
|
|
9
9
|
}
|
|
10
10
|
EventBridgeChannel.prototype.sendEvent = function (event) {
|
|
11
11
|
if (!this.receiver) {
|
|
12
|
-
this.queue =
|
|
12
|
+
this.queue = tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(this.queue.slice(0, QUEUE_CAPACITY)), false), [event], false);
|
|
13
13
|
return;
|
|
14
14
|
}
|
|
15
15
|
this.receiver.receive(this.channel, event);
|
|
@@ -1 +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,
|
|
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,kEAAO,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;AA5BY,gDAAkB","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"]}
|
package/lib/cjs/identify.js
CHANGED
|
@@ -10,7 +10,7 @@ var Identify = /** @class */ (function () {
|
|
|
10
10
|
this._properties = {};
|
|
11
11
|
}
|
|
12
12
|
Identify.prototype.getUserProperties = function () {
|
|
13
|
-
return
|
|
13
|
+
return tslib_1.__assign({}, this._properties);
|
|
14
14
|
};
|
|
15
15
|
Identify.prototype.set = function (property, value) {
|
|
16
16
|
this._safeSet(analytics_types_1.IdentifyOperation.SET, property, value);
|
package/lib/cjs/identify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identify.js","sourceRoot":"","sources":["../../src/identify.ts"],"names":[],"mappings":";;;AAAA,8DAKoC;AACpC,yCAA0C;AAC1C,6DAA6D;AAE7D;IAAA;QACqB,iBAAY,GAAgB,IAAI,GAAG,EAAU,CAAC;QACvD,gBAAW,GAA2B,EAAE,CAAC;IAmGrD,CAAC;IAjGQ,oCAAiB,GAAxB;QACE,
|
|
1
|
+
{"version":3,"file":"identify.js","sourceRoot":"","sources":["../../src/identify.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n IdentifyOperation,\n IdentifyUserProperties,\n ValidPropertyType,\n Identify as IIdentify,\n} from '@amplitude/analytics-types';\nimport { UNSET_VALUE } from './constants';\nimport { isValidProperties } from './utils/valid-properties';\n\nexport class Identify implements IIdentify {\n protected readonly _propertySet: Set<string> = new Set<string>();\n protected _properties: IdentifyUserProperties = {};\n\n public getUserProperties(): IdentifyUserProperties {\n return { ...this._properties };\n }\n\n public set(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.SET, property, value);\n return this;\n }\n\n public setOnce(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.SET_ONCE, property, value);\n return this;\n }\n\n public append(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.APPEND, property, value);\n return this;\n }\n\n public prepend(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.PREPEND, property, value);\n return this;\n }\n\n public postInsert(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.POSTINSERT, property, value);\n return this;\n }\n\n public preInsert(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.PREINSERT, property, value);\n return this;\n }\n\n public remove(property: string, value: ValidPropertyType): Identify {\n this._safeSet(IdentifyOperation.REMOVE, property, value);\n return this;\n }\n\n public add(property: string, value: number): Identify {\n this._safeSet(IdentifyOperation.ADD, property, value);\n return this;\n }\n\n public unset(property: string): Identify {\n this._safeSet(IdentifyOperation.UNSET, property, UNSET_VALUE);\n return this;\n }\n\n public clearAll(): Identify {\n // When clear all happens, all properties are unset. Reset the entire object.\n this._properties = {};\n this._properties[IdentifyOperation.CLEAR_ALL] = UNSET_VALUE;\n\n return this;\n }\n\n // Returns whether or not this set actually worked.\n private _safeSet(operation: IdentifyOperation, property: string, value: ValidPropertyType): boolean {\n if (this._validate(operation, property, value)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n let userPropertyMap: any = this._properties[operation];\n if (userPropertyMap === undefined) {\n userPropertyMap = {};\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._properties[operation] = userPropertyMap;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n userPropertyMap[property] = value;\n this._propertySet.add(property);\n return true;\n }\n\n return false;\n }\n\n private _validate(operation: IdentifyOperation, property: string, value: ValidPropertyType): boolean {\n if (this._properties[IdentifyOperation.CLEAR_ALL] !== undefined) {\n // clear all already set. Skipping operation;\n return false;\n }\n\n if (this._propertySet.has(property)) {\n // Property already used. Skipping operation\n return false;\n }\n\n if (operation === IdentifyOperation.ADD) {\n return typeof value === 'number';\n }\n\n if (operation !== IdentifyOperation.UNSET && operation !== IdentifyOperation.REMOVE) {\n return isValidProperties(property, value);\n }\n return true;\n }\n}\n"]}
|
|
@@ -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;AAapC,qBAAa,WAAY,YAAW,iBAAiB;IACnD,IAAI,SAAe;IACnB,IAAI,yBAAmC;IAEvC,YAAY,SAAQ;IACpB,eAAe,SAAS;IACxB,UAAU,SAAM;IAIhB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAQ;IACvD,KAAK,EAAE,OAAO,EAAE,CAAM;IAEhB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAa/C,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAYtC,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IA0B7B,QAAQ,CAAC,OAAO,EAAE,MAAM;IAWlB,KAAK,CAAC,QAAQ,UAAQ;IAetB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,UAAO;
|
|
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;AAapC,qBAAa,WAAY,YAAW,iBAAiB;IACnD,IAAI,SAAe;IACnB,IAAI,yBAAmC;IAEvC,YAAY,SAAQ;IACpB,eAAe,SAAS;IACxB,UAAU,SAAM;IAIhB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAQ;IACvD,KAAK,EAAE,OAAO,EAAE,CAAM;IAEhB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAa/C,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAYtC,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IA0B7B,QAAQ,CAAC,OAAO,EAAE,MAAM;IAWlB,KAAK,CAAC,QAAQ,UAAQ;IAetB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,UAAO;IA4C3C,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;IASlC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAK7D;;;;;OAKG;IACH,UAAU;CAOX"}
|
|
@@ -19,10 +19,10 @@ var Destination = /** @class */ (function () {
|
|
|
19
19
|
}
|
|
20
20
|
Destination.prototype.setup = function (config) {
|
|
21
21
|
var _a;
|
|
22
|
-
return
|
|
22
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
23
23
|
var unsent;
|
|
24
24
|
var _this = this;
|
|
25
|
-
return
|
|
25
|
+
return tslib_1.__generator(this, function (_b) {
|
|
26
26
|
switch (_b.label) {
|
|
27
27
|
case 0:
|
|
28
28
|
this.config = config;
|
|
@@ -92,10 +92,10 @@ var Destination = /** @class */ (function () {
|
|
|
92
92
|
};
|
|
93
93
|
Destination.prototype.flush = function (useRetry) {
|
|
94
94
|
if (useRetry === void 0) { useRetry = false; }
|
|
95
|
-
return
|
|
95
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
96
96
|
var list, later, batches;
|
|
97
97
|
var _this = this;
|
|
98
|
-
return
|
|
98
|
+
return tslib_1.__generator(this, function (_a) {
|
|
99
99
|
switch (_a.label) {
|
|
100
100
|
case 0:
|
|
101
101
|
list = [];
|
|
@@ -117,9 +117,9 @@ var Destination = /** @class */ (function () {
|
|
|
117
117
|
};
|
|
118
118
|
Destination.prototype.send = function (list, useRetry) {
|
|
119
119
|
if (useRetry === void 0) { useRetry = true; }
|
|
120
|
-
return
|
|
121
|
-
var payload, serverUrl, res, e_1;
|
|
122
|
-
return
|
|
120
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
121
|
+
var payload, serverUrl, res, responseBody, e_1;
|
|
122
|
+
return tslib_1.__generator(this, function (_a) {
|
|
123
123
|
switch (_a.label) {
|
|
124
124
|
case 0:
|
|
125
125
|
if (!this.config.apiKey) {
|
|
@@ -129,7 +129,7 @@ var Destination = /** @class */ (function () {
|
|
|
129
129
|
api_key: this.config.apiKey,
|
|
130
130
|
events: list.map(function (context) {
|
|
131
131
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
132
|
-
var _a = context.event, extra = _a.extra, eventWithoutExtra =
|
|
132
|
+
var _a = context.event, extra = _a.extra, eventWithoutExtra = tslib_1.__rest(_a, ["extra"]);
|
|
133
133
|
return eventWithoutExtra;
|
|
134
134
|
}),
|
|
135
135
|
options: {
|
|
@@ -148,7 +148,19 @@ var Destination = /** @class */ (function () {
|
|
|
148
148
|
return [2 /*return*/];
|
|
149
149
|
}
|
|
150
150
|
if (!useRetry) {
|
|
151
|
-
|
|
151
|
+
if ('body' in res) {
|
|
152
|
+
responseBody = '';
|
|
153
|
+
try {
|
|
154
|
+
responseBody = JSON.stringify(res.body, null, 2);
|
|
155
|
+
}
|
|
156
|
+
catch (_b) {
|
|
157
|
+
// to avoid crash, but don't care about the error, add comment to avoid empty block lint error
|
|
158
|
+
}
|
|
159
|
+
this.fulfillRequest(list, res.statusCode, "".concat(res.status, ": ").concat(responseBody));
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
this.fulfillRequest(list, res.statusCode, res.status);
|
|
163
|
+
}
|
|
152
164
|
return [2 /*return*/];
|
|
153
165
|
}
|
|
154
166
|
this.handleReponse(res, list);
|
|
@@ -190,7 +202,7 @@ var Destination = /** @class */ (function () {
|
|
|
190
202
|
this.fulfillRequest(list, res.statusCode, res.body.error);
|
|
191
203
|
return;
|
|
192
204
|
}
|
|
193
|
-
var dropIndex =
|
|
205
|
+
var dropIndex = tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(Object.values(res.body.eventsWithInvalidFields)), false), tslib_1.__read(Object.values(res.body.eventsWithMissingFields)), false), tslib_1.__read(Object.values(res.body.eventsWithInvalidIdLengths)), false), tslib_1.__read(res.body.silencedEvents), false).flat();
|
|
194
206
|
var dropIndexSet = new Set(dropIndex);
|
|
195
207
|
var retry = list.filter(function (context, index) {
|
|
196
208
|
if (dropIndexSet.has(index)) {
|
|
@@ -199,7 +211,7 @@ var Destination = /** @class */ (function () {
|
|
|
199
211
|
}
|
|
200
212
|
return true;
|
|
201
213
|
});
|
|
202
|
-
this.addToQueue.apply(this,
|
|
214
|
+
this.addToQueue.apply(this, tslib_1.__spreadArray([], tslib_1.__read(retry), false));
|
|
203
215
|
};
|
|
204
216
|
Destination.prototype.handlePayloadTooLargeResponse = function (res, list) {
|
|
205
217
|
if (list.length === 1) {
|
|
@@ -207,7 +219,7 @@ var Destination = /** @class */ (function () {
|
|
|
207
219
|
return;
|
|
208
220
|
}
|
|
209
221
|
this.config.flushQueueSize /= 2;
|
|
210
|
-
this.addToQueue.apply(this,
|
|
222
|
+
this.addToQueue.apply(this, tslib_1.__spreadArray([], tslib_1.__read(list), false));
|
|
211
223
|
};
|
|
212
224
|
Destination.prototype.handleRateLimitResponse = function (res, list) {
|
|
213
225
|
var _this = this;
|
|
@@ -228,11 +240,11 @@ var Destination = /** @class */ (function () {
|
|
|
228
240
|
}
|
|
229
241
|
return true;
|
|
230
242
|
});
|
|
231
|
-
this.addToQueue.apply(this,
|
|
243
|
+
this.addToQueue.apply(this, tslib_1.__spreadArray([], tslib_1.__read(retry), false));
|
|
232
244
|
};
|
|
233
245
|
Destination.prototype.handleOtherReponse = function (list) {
|
|
234
246
|
var _this = this;
|
|
235
|
-
this.addToQueue.apply(this,
|
|
247
|
+
this.addToQueue.apply(this, tslib_1.__spreadArray([], tslib_1.__read(list.map(function (context) {
|
|
236
248
|
context.timeout = context.attempts * _this.retryTimeout;
|
|
237
249
|
return context;
|
|
238
250
|
})), false));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"destination.js","sourceRoot":"","sources":["../../../src/plugins/destination.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Config,\n DestinationContext as Context,\n DestinationPlugin,\n Event,\n InvalidResponse,\n PayloadTooLargeResponse,\n PluginType,\n RateLimitResponse,\n Response,\n Result,\n Status,\n SuccessResponse,\n} from '@amplitude/analytics-types';\nimport {\n INVALID_API_KEY,\n MAX_RETRIES_EXCEEDED_MESSAGE,\n MISSING_API_KEY_MESSAGE,\n SUCCESS_MESSAGE,\n UNEXPECTED_ERROR_MESSAGE,\n} from '../messages';\nimport { STORAGE_PREFIX } from '../constants';\nimport { chunk } from '../utils/chunk';\nimport { buildResult } from '../utils/result-builder';\nimport { createServerConfig } from '../config';\n\nexport class Destination implements DestinationPlugin {\n name = 'amplitude';\n type = PluginType.DESTINATION as const;\n\n retryTimeout = 1000;\n throttleTimeout = 30000;\n storageKey = '';\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: Config;\n scheduled: ReturnType<typeof setTimeout> | null = null;\n queue: Context[] = [];\n\n async setup(config: Config): Promise<undefined> {\n this.config = config;\n\n this.storageKey = `${STORAGE_PREFIX}_${this.config.apiKey.substring(0, 10)}`;\n const unsent = await this.config.storageProvider?.get(this.storageKey);\n this.saveEvents(); // sets storage to '[]'\n if (unsent && unsent.length > 0) {\n void Promise.all(unsent.map((event) => this.execute(event))).catch();\n }\n\n return Promise.resolve(undefined);\n }\n\n execute(event: Event): Promise<Result> {\n return new Promise((resolve) => {\n const context = {\n event,\n attempts: 0,\n callback: (result: Result) => resolve(result),\n timeout: 0,\n };\n void this.addToQueue(context);\n });\n }\n\n addToQueue(...list: Context[]) {\n const tryable = list.filter((context) => {\n if (context.attempts < this.config.flushMaxRetries) {\n context.attempts += 1;\n return true;\n }\n void this.fulfillRequest([context], 500, MAX_RETRIES_EXCEEDED_MESSAGE);\n return false;\n });\n\n tryable.forEach((context) => {\n this.queue = this.queue.concat(context);\n if (context.timeout === 0) {\n this.schedule(this.config.flushIntervalMillis);\n return;\n }\n\n setTimeout(() => {\n context.timeout = 0;\n this.schedule(0);\n }, context.timeout);\n });\n\n this.saveEvents();\n }\n\n schedule(timeout: number) {\n if (this.scheduled) return;\n this.scheduled = setTimeout(() => {\n void this.flush(true).then(() => {\n if (this.queue.length > 0) {\n this.schedule(timeout);\n }\n });\n }, timeout);\n }\n\n async flush(useRetry = false) {\n const list: Context[] = [];\n const later: Context[] = [];\n this.queue.forEach((context) => (context.timeout === 0 ? list.push(context) : later.push(context)));\n this.queue = later;\n\n if (this.scheduled) {\n clearTimeout(this.scheduled);\n this.scheduled = null;\n }\n\n const batches = chunk(list, this.config.flushQueueSize);\n await Promise.all(batches.map((batch) => this.send(batch, useRetry)));\n }\n\n async send(list: Context[], useRetry = true) {\n if (!this.config.apiKey) {\n return this.fulfillRequest(list, 400, MISSING_API_KEY_MESSAGE);\n }\n\n const payload = {\n api_key: this.config.apiKey,\n events: list.map((context) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { extra, ...eventWithoutExtra } = context.event;\n return eventWithoutExtra;\n }),\n options: {\n min_id_length: this.config.minIdLength,\n },\n };\n\n try {\n const { serverUrl } = createServerConfig(this.config.serverUrl, this.config.serverZone, this.config.useBatch);\n const res = await this.config.transportProvider.send(serverUrl, payload);\n if (res === null) {\n this.fulfillRequest(list, 0, UNEXPECTED_ERROR_MESSAGE);\n return;\n }\n if (!useRetry) {\n this.fulfillRequest(list, res.statusCode, res.status);\n return;\n }\n this.handleReponse(res, list);\n } catch (e) {\n this.fulfillRequest(list, 0, String(e));\n }\n }\n\n handleReponse(res: Response, list: Context[]) {\n const { status } = res;\n switch (status) {\n case Status.Success:\n this.handleSuccessResponse(res, list);\n break;\n\n case Status.Invalid:\n this.handleInvalidResponse(res, list);\n break;\n\n case Status.PayloadTooLarge:\n this.handlePayloadTooLargeResponse(res, list);\n break;\n\n case Status.RateLimit:\n this.handleRateLimitResponse(res, list);\n break;\n\n default:\n this.handleOtherReponse(list);\n }\n }\n\n handleSuccessResponse(res: SuccessResponse, list: Context[]) {\n this.fulfillRequest(list, res.statusCode, SUCCESS_MESSAGE);\n }\n\n handleInvalidResponse(res: InvalidResponse, list: Context[]) {\n if (res.body.missingField || res.body.error.startsWith(INVALID_API_KEY)) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n\n const dropIndex = [\n ...Object.values(res.body.eventsWithInvalidFields),\n ...Object.values(res.body.eventsWithMissingFields),\n ...Object.values(res.body.eventsWithInvalidIdLengths),\n ...res.body.silencedEvents,\n ].flat();\n const dropIndexSet = new Set(dropIndex);\n\n const retry = list.filter((context, index) => {\n if (dropIndexSet.has(index)) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n return true;\n });\n\n this.addToQueue(...retry);\n }\n\n handlePayloadTooLargeResponse(res: PayloadTooLargeResponse, list: Context[]) {\n if (list.length === 1) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n this.config.flushQueueSize /= 2;\n this.addToQueue(...list);\n }\n\n handleRateLimitResponse(res: RateLimitResponse, list: Context[]) {\n const dropUserIds = Object.keys(res.body.exceededDailyQuotaUsers);\n const dropDeviceIds = Object.keys(res.body.exceededDailyQuotaDevices);\n const throttledIndex = res.body.throttledEvents;\n const dropUserIdsSet = new Set(dropUserIds);\n const dropDeviceIdsSet = new Set(dropDeviceIds);\n const throttledIndexSet = new Set(throttledIndex);\n\n const retry = list.filter((context, index) => {\n if (\n (context.event.user_id && dropUserIdsSet.has(context.event.user_id)) ||\n (context.event.device_id && dropDeviceIdsSet.has(context.event.device_id))\n ) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n if (throttledIndexSet.has(index)) {\n context.timeout = this.throttleTimeout;\n }\n return true;\n });\n\n this.addToQueue(...retry);\n }\n\n handleOtherReponse(list: Context[]) {\n this.addToQueue(\n ...list.map((context) => {\n context.timeout = context.attempts * this.retryTimeout;\n return context;\n }),\n );\n }\n\n fulfillRequest(list: Context[], code: number, message: string) {\n this.saveEvents();\n list.forEach((context) => context.callback(buildResult(context.event, code, message)));\n }\n\n /**\n * Saves events to storage\n * This is called on\n * 1) new events are added to queue; or\n * 2) response comes back for a request\n */\n saveEvents() {\n if (!this.config.storageProvider) {\n return;\n }\n const events = Array.from(this.queue.map((context) => context.event));\n void this.config.storageProvider.set(this.storageKey, events);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"destination.js","sourceRoot":"","sources":["../../../src/plugins/destination.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Config,\n DestinationContext as Context,\n DestinationPlugin,\n Event,\n InvalidResponse,\n PayloadTooLargeResponse,\n PluginType,\n RateLimitResponse,\n Response,\n Result,\n Status,\n SuccessResponse,\n} from '@amplitude/analytics-types';\nimport {\n INVALID_API_KEY,\n MAX_RETRIES_EXCEEDED_MESSAGE,\n MISSING_API_KEY_MESSAGE,\n SUCCESS_MESSAGE,\n UNEXPECTED_ERROR_MESSAGE,\n} from '../messages';\nimport { STORAGE_PREFIX } from '../constants';\nimport { chunk } from '../utils/chunk';\nimport { buildResult } from '../utils/result-builder';\nimport { createServerConfig } from '../config';\n\nexport class Destination implements DestinationPlugin {\n name = 'amplitude';\n type = PluginType.DESTINATION as const;\n\n retryTimeout = 1000;\n throttleTimeout = 30000;\n storageKey = '';\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: Config;\n scheduled: ReturnType<typeof setTimeout> | null = null;\n queue: Context[] = [];\n\n async setup(config: Config): Promise<undefined> {\n this.config = config;\n\n this.storageKey = `${STORAGE_PREFIX}_${this.config.apiKey.substring(0, 10)}`;\n const unsent = await this.config.storageProvider?.get(this.storageKey);\n this.saveEvents(); // sets storage to '[]'\n if (unsent && unsent.length > 0) {\n void Promise.all(unsent.map((event) => this.execute(event))).catch();\n }\n\n return Promise.resolve(undefined);\n }\n\n execute(event: Event): Promise<Result> {\n return new Promise((resolve) => {\n const context = {\n event,\n attempts: 0,\n callback: (result: Result) => resolve(result),\n timeout: 0,\n };\n void this.addToQueue(context);\n });\n }\n\n addToQueue(...list: Context[]) {\n const tryable = list.filter((context) => {\n if (context.attempts < this.config.flushMaxRetries) {\n context.attempts += 1;\n return true;\n }\n void this.fulfillRequest([context], 500, MAX_RETRIES_EXCEEDED_MESSAGE);\n return false;\n });\n\n tryable.forEach((context) => {\n this.queue = this.queue.concat(context);\n if (context.timeout === 0) {\n this.schedule(this.config.flushIntervalMillis);\n return;\n }\n\n setTimeout(() => {\n context.timeout = 0;\n this.schedule(0);\n }, context.timeout);\n });\n\n this.saveEvents();\n }\n\n schedule(timeout: number) {\n if (this.scheduled) return;\n this.scheduled = setTimeout(() => {\n void this.flush(true).then(() => {\n if (this.queue.length > 0) {\n this.schedule(timeout);\n }\n });\n }, timeout);\n }\n\n async flush(useRetry = false) {\n const list: Context[] = [];\n const later: Context[] = [];\n this.queue.forEach((context) => (context.timeout === 0 ? list.push(context) : later.push(context)));\n this.queue = later;\n\n if (this.scheduled) {\n clearTimeout(this.scheduled);\n this.scheduled = null;\n }\n\n const batches = chunk(list, this.config.flushQueueSize);\n await Promise.all(batches.map((batch) => this.send(batch, useRetry)));\n }\n\n async send(list: Context[], useRetry = true) {\n if (!this.config.apiKey) {\n return this.fulfillRequest(list, 400, MISSING_API_KEY_MESSAGE);\n }\n\n const payload = {\n api_key: this.config.apiKey,\n events: list.map((context) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { extra, ...eventWithoutExtra } = context.event;\n return eventWithoutExtra;\n }),\n options: {\n min_id_length: this.config.minIdLength,\n },\n };\n\n try {\n const { serverUrl } = createServerConfig(this.config.serverUrl, this.config.serverZone, this.config.useBatch);\n const res = await this.config.transportProvider.send(serverUrl, payload);\n if (res === null) {\n this.fulfillRequest(list, 0, UNEXPECTED_ERROR_MESSAGE);\n return;\n }\n if (!useRetry) {\n if ('body' in res) {\n let responseBody = '';\n try {\n responseBody = JSON.stringify(res.body, null, 2);\n } catch {\n // to avoid crash, but don't care about the error, add comment to avoid empty block lint error\n }\n this.fulfillRequest(list, res.statusCode, `${res.status}: ${responseBody}`);\n } else {\n this.fulfillRequest(list, res.statusCode, res.status);\n }\n return;\n }\n this.handleReponse(res, list);\n } catch (e) {\n this.fulfillRequest(list, 0, String(e));\n }\n }\n\n handleReponse(res: Response, list: Context[]) {\n const { status } = res;\n switch (status) {\n case Status.Success:\n this.handleSuccessResponse(res, list);\n break;\n\n case Status.Invalid:\n this.handleInvalidResponse(res, list);\n break;\n\n case Status.PayloadTooLarge:\n this.handlePayloadTooLargeResponse(res, list);\n break;\n\n case Status.RateLimit:\n this.handleRateLimitResponse(res, list);\n break;\n\n default:\n this.handleOtherReponse(list);\n }\n }\n\n handleSuccessResponse(res: SuccessResponse, list: Context[]) {\n this.fulfillRequest(list, res.statusCode, SUCCESS_MESSAGE);\n }\n\n handleInvalidResponse(res: InvalidResponse, list: Context[]) {\n if (res.body.missingField || res.body.error.startsWith(INVALID_API_KEY)) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n\n const dropIndex = [\n ...Object.values(res.body.eventsWithInvalidFields),\n ...Object.values(res.body.eventsWithMissingFields),\n ...Object.values(res.body.eventsWithInvalidIdLengths),\n ...res.body.silencedEvents,\n ].flat();\n const dropIndexSet = new Set(dropIndex);\n\n const retry = list.filter((context, index) => {\n if (dropIndexSet.has(index)) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n return true;\n });\n\n this.addToQueue(...retry);\n }\n\n handlePayloadTooLargeResponse(res: PayloadTooLargeResponse, list: Context[]) {\n if (list.length === 1) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n this.config.flushQueueSize /= 2;\n this.addToQueue(...list);\n }\n\n handleRateLimitResponse(res: RateLimitResponse, list: Context[]) {\n const dropUserIds = Object.keys(res.body.exceededDailyQuotaUsers);\n const dropDeviceIds = Object.keys(res.body.exceededDailyQuotaDevices);\n const throttledIndex = res.body.throttledEvents;\n const dropUserIdsSet = new Set(dropUserIds);\n const dropDeviceIdsSet = new Set(dropDeviceIds);\n const throttledIndexSet = new Set(throttledIndex);\n\n const retry = list.filter((context, index) => {\n if (\n (context.event.user_id && dropUserIdsSet.has(context.event.user_id)) ||\n (context.event.device_id && dropDeviceIdsSet.has(context.event.device_id))\n ) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n if (throttledIndexSet.has(index)) {\n context.timeout = this.throttleTimeout;\n }\n return true;\n });\n\n this.addToQueue(...retry);\n }\n\n handleOtherReponse(list: Context[]) {\n this.addToQueue(\n ...list.map((context) => {\n context.timeout = context.attempts * this.retryTimeout;\n return context;\n }),\n );\n }\n\n fulfillRequest(list: Context[], code: number, message: string) {\n this.saveEvents();\n list.forEach((context) => context.callback(buildResult(context.event, code, message)));\n }\n\n /**\n * Saves events to storage\n * This is called on\n * 1) new events are added to queue; or\n * 2) response comes back for a request\n */\n saveEvents() {\n if (!this.config.storageProvider) {\n return;\n }\n const events = Array.from(this.queue.map((context) => context.event));\n void this.config.storageProvider.set(this.storageKey, events);\n }\n}\n"]}
|
package/lib/cjs/revenue.js
CHANGED
|
@@ -38,7 +38,7 @@ var Revenue = /** @class */ (function () {
|
|
|
38
38
|
return this;
|
|
39
39
|
};
|
|
40
40
|
Revenue.prototype.getEventProperties = function () {
|
|
41
|
-
var eventProperties = this.properties ?
|
|
41
|
+
var eventProperties = this.properties ? tslib_1.__assign({}, this.properties) : {};
|
|
42
42
|
eventProperties[analytics_types_1.RevenueProperty.REVENUE_PRODUCT_ID] = this.productId;
|
|
43
43
|
eventProperties[analytics_types_1.RevenueProperty.REVENUE_QUANTITY] = this.quantity;
|
|
44
44
|
eventProperties[analytics_types_1.RevenueProperty.REVENUE_PRICE] = this.price;
|
package/lib/cjs/revenue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revenue.js","sourceRoot":"","sources":["../../src/revenue.ts"],"names":[],"mappings":";;;AAAA,8DAKoC;AACpC,6DAAyD;AAEzD;IAQE;QACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;IACnB,CAAC;IAED,8BAAY,GAAZ,UAAa,SAAiB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6BAAW,GAAX,UAAY,QAAgB;QAC1B,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAAQ,GAAR,UAAS,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gCAAc,GAAd,UAAe,WAAmB;QAChC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4BAAU,GAAV,UAAW,OAAe;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAkB,GAAlB,UAAmB,UAAgD;QACjE,IAAI,IAAA,gCAAa,EAAC,UAAU,CAAC,EAAE;YAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAkB,GAAlB;QACE,IAAM,eAAe,GAA2B,IAAI,CAAC,UAAU,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"revenue.js","sourceRoot":"","sources":["../../src/revenue.ts"],"names":[],"mappings":";;;AAAA,8DAKoC;AACpC,6DAAyD;AAEzD;IAQE;QACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;IACnB,CAAC;IAED,8BAAY,GAAZ,UAAa,SAAiB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6BAAW,GAAX,UAAY,QAAgB;QAC1B,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAAQ,GAAR,UAAS,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gCAAc,GAAd,UAAe,WAAmB;QAChC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4BAAU,GAAV,UAAW,OAAe;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAkB,GAAlB,UAAmB,UAAgD;QACjE,IAAI,IAAA,gCAAa,EAAC,UAAU,CAAC,EAAE;YAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAkB,GAAlB;QACE,IAAM,eAAe,GAA2B,IAAI,CAAC,UAAU,CAAC,CAAC,sBAAM,IAAI,CAAC,UAAU,EAAG,CAAC,CAAC,EAAE,CAAC;QAC9F,eAAe,CAAC,iCAAe,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACrE,eAAe,CAAC,iCAAe,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClE,eAAe,CAAC,iCAAe,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5D,eAAe,CAAC,iCAAe,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACjE,eAAe,CAAC,iCAAe,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACxD,OAAO,eAAe,CAAC;IACzB,CAAC;IACH,cAAC;AAAD,CAAC,AAzDD,IAyDC;AAzDY,0BAAO","sourcesContent":["import {\n RevenueProperty,\n RevenueEventProperties,\n Revenue as IRevenue,\n ValidPropertyType,\n} from '@amplitude/analytics-types';\nimport { isValidObject } from './utils/valid-properties';\n\nexport class Revenue implements IRevenue {\n private productId: string;\n private quantity: number;\n private price: number;\n private revenueType?: string;\n private properties?: { [key: string]: any };\n private revenue?: number;\n\n constructor() {\n this.productId = '';\n this.quantity = 1;\n this.price = 0.0;\n }\n\n setProductId(productId: string) {\n this.productId = productId;\n return this;\n }\n\n setQuantity(quantity: number) {\n if (quantity > 0) {\n this.quantity = quantity;\n }\n return this;\n }\n\n setPrice(price: number) {\n this.price = price;\n return this;\n }\n\n setRevenueType(revenueType: string) {\n this.revenueType = revenueType;\n return this;\n }\n\n setRevenue(revenue: number) {\n this.revenue = revenue;\n return this;\n }\n\n setEventProperties(properties: { [key: string]: ValidPropertyType }) {\n if (isValidObject(properties)) {\n this.properties = properties;\n }\n return this;\n }\n\n getEventProperties(): RevenueEventProperties {\n const eventProperties: RevenueEventProperties = this.properties ? { ...this.properties } : {};\n eventProperties[RevenueProperty.REVENUE_PRODUCT_ID] = this.productId;\n eventProperties[RevenueProperty.REVENUE_QUANTITY] = this.quantity;\n eventProperties[RevenueProperty.REVENUE_PRICE] = this.price;\n eventProperties[RevenueProperty.REVENUE_TYPE] = this.revenueType;\n eventProperties[RevenueProperty.REVENUE] = this.revenue;\n return eventProperties;\n }\n}\n"]}
|
|
@@ -6,23 +6,23 @@ var MemoryStorage = /** @class */ (function () {
|
|
|
6
6
|
this.memoryStorage = new Map();
|
|
7
7
|
}
|
|
8
8
|
MemoryStorage.prototype.isEnabled = function () {
|
|
9
|
-
return
|
|
10
|
-
return
|
|
9
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
10
|
+
return tslib_1.__generator(this, function (_a) {
|
|
11
11
|
return [2 /*return*/, true];
|
|
12
12
|
});
|
|
13
13
|
});
|
|
14
14
|
};
|
|
15
15
|
MemoryStorage.prototype.get = function (key) {
|
|
16
|
-
return
|
|
17
|
-
return
|
|
16
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
17
|
+
return tslib_1.__generator(this, function (_a) {
|
|
18
18
|
return [2 /*return*/, this.memoryStorage.get(key)];
|
|
19
19
|
});
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
MemoryStorage.prototype.getRaw = function (key) {
|
|
23
|
-
return
|
|
23
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
24
24
|
var value;
|
|
25
|
-
return
|
|
25
|
+
return tslib_1.__generator(this, function (_a) {
|
|
26
26
|
switch (_a.label) {
|
|
27
27
|
case 0: return [4 /*yield*/, this.get(key)];
|
|
28
28
|
case 1:
|
|
@@ -33,24 +33,24 @@ var MemoryStorage = /** @class */ (function () {
|
|
|
33
33
|
});
|
|
34
34
|
};
|
|
35
35
|
MemoryStorage.prototype.set = function (key, value) {
|
|
36
|
-
return
|
|
37
|
-
return
|
|
36
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
37
|
+
return tslib_1.__generator(this, function (_a) {
|
|
38
38
|
this.memoryStorage.set(key, value);
|
|
39
39
|
return [2 /*return*/];
|
|
40
40
|
});
|
|
41
41
|
});
|
|
42
42
|
};
|
|
43
43
|
MemoryStorage.prototype.remove = function (key) {
|
|
44
|
-
return
|
|
45
|
-
return
|
|
44
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
45
|
+
return tslib_1.__generator(this, function (_a) {
|
|
46
46
|
this.memoryStorage.delete(key);
|
|
47
47
|
return [2 /*return*/];
|
|
48
48
|
});
|
|
49
49
|
});
|
|
50
50
|
};
|
|
51
51
|
MemoryStorage.prototype.reset = function () {
|
|
52
|
-
return
|
|
53
|
-
return
|
|
52
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
53
|
+
return tslib_1.__generator(this, function (_a) {
|
|
54
54
|
this.memoryStorage.clear();
|
|
55
55
|
return [2 /*return*/];
|
|
56
56
|
});
|
package/lib/cjs/timeline.js
CHANGED
|
@@ -13,8 +13,8 @@ var Timeline = /** @class */ (function () {
|
|
|
13
13
|
this.plugins = [];
|
|
14
14
|
}
|
|
15
15
|
Timeline.prototype.register = function (plugin, config) {
|
|
16
|
-
return
|
|
17
|
-
return
|
|
16
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
17
|
+
return tslib_1.__generator(this, function (_a) {
|
|
18
18
|
switch (_a.label) {
|
|
19
19
|
case 0: return [4 /*yield*/, plugin.setup(config)];
|
|
20
20
|
case 1:
|
|
@@ -55,27 +55,27 @@ var Timeline = /** @class */ (function () {
|
|
|
55
55
|
}, timeout);
|
|
56
56
|
};
|
|
57
57
|
Timeline.prototype.apply = function (item) {
|
|
58
|
-
return
|
|
58
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
59
59
|
var _a, event, _b, resolve, before, before_1, before_1_1, plugin, e_1_1, enrichment, enrichment_1, enrichment_1_1, plugin, e_2_1, destination, executeDestinations;
|
|
60
60
|
var e_1, _c, e_2, _d;
|
|
61
|
-
return
|
|
61
|
+
return tslib_1.__generator(this, function (_e) {
|
|
62
62
|
switch (_e.label) {
|
|
63
63
|
case 0:
|
|
64
64
|
if (!item) {
|
|
65
65
|
return [2 /*return*/];
|
|
66
66
|
}
|
|
67
|
-
_a =
|
|
68
|
-
_b =
|
|
67
|
+
_a = tslib_1.__read(item, 1), event = _a[0];
|
|
68
|
+
_b = tslib_1.__read(item, 2), resolve = _b[1];
|
|
69
69
|
before = this.plugins.filter(function (plugin) { return plugin.type === analytics_types_1.PluginType.BEFORE; });
|
|
70
70
|
_e.label = 1;
|
|
71
71
|
case 1:
|
|
72
72
|
_e.trys.push([1, 6, 7, 8]);
|
|
73
|
-
before_1 =
|
|
73
|
+
before_1 = tslib_1.__values(before), before_1_1 = before_1.next();
|
|
74
74
|
_e.label = 2;
|
|
75
75
|
case 2:
|
|
76
76
|
if (!!before_1_1.done) return [3 /*break*/, 5];
|
|
77
77
|
plugin = before_1_1.value;
|
|
78
|
-
return [4 /*yield*/, plugin.execute(
|
|
78
|
+
return [4 /*yield*/, plugin.execute(tslib_1.__assign({}, event))];
|
|
79
79
|
case 3:
|
|
80
80
|
event = _e.sent();
|
|
81
81
|
_e.label = 4;
|
|
@@ -98,12 +98,12 @@ var Timeline = /** @class */ (function () {
|
|
|
98
98
|
_e.label = 9;
|
|
99
99
|
case 9:
|
|
100
100
|
_e.trys.push([9, 14, 15, 16]);
|
|
101
|
-
enrichment_1 =
|
|
101
|
+
enrichment_1 = tslib_1.__values(enrichment), enrichment_1_1 = enrichment_1.next();
|
|
102
102
|
_e.label = 10;
|
|
103
103
|
case 10:
|
|
104
104
|
if (!!enrichment_1_1.done) return [3 /*break*/, 13];
|
|
105
105
|
plugin = enrichment_1_1.value;
|
|
106
|
-
return [4 /*yield*/, plugin.execute(
|
|
106
|
+
return [4 /*yield*/, plugin.execute(tslib_1.__assign({}, event))];
|
|
107
107
|
case 11:
|
|
108
108
|
event = _e.sent();
|
|
109
109
|
_e.label = 12;
|
|
@@ -124,11 +124,11 @@ var Timeline = /** @class */ (function () {
|
|
|
124
124
|
case 16:
|
|
125
125
|
destination = this.plugins.filter(function (plugin) { return plugin.type === analytics_types_1.PluginType.DESTINATION; });
|
|
126
126
|
executeDestinations = destination.map(function (plugin) {
|
|
127
|
-
var eventClone =
|
|
127
|
+
var eventClone = tslib_1.__assign({}, event);
|
|
128
128
|
return plugin.execute(eventClone).catch(function (e) { return (0, result_builder_1.buildResult)(eventClone, 0, String(e)); });
|
|
129
129
|
});
|
|
130
130
|
void Promise.all(executeDestinations).then(function (_a) {
|
|
131
|
-
var _b =
|
|
131
|
+
var _b = tslib_1.__read(_a, 1), result = _b[0];
|
|
132
132
|
resolve(result);
|
|
133
133
|
});
|
|
134
134
|
return [2 /*return*/];
|
|
@@ -137,10 +137,10 @@ var Timeline = /** @class */ (function () {
|
|
|
137
137
|
});
|
|
138
138
|
};
|
|
139
139
|
Timeline.prototype.flush = function () {
|
|
140
|
-
return
|
|
140
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
141
141
|
var queue, destination, executeDestinations;
|
|
142
142
|
var _this = this;
|
|
143
|
-
return
|
|
143
|
+
return tslib_1.__generator(this, function (_a) {
|
|
144
144
|
switch (_a.label) {
|
|
145
145
|
case 0:
|
|
146
146
|
queue = this.queue;
|
package/lib/cjs/timeline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.js","sourceRoot":"","sources":["../../src/timeline.ts"],"names":[],"mappings":";;;AAAA,8DAUoC;AACpC,yDAAqD;AAErD;IAAA;QACE,UAAK,GAA6B,EAAE,CAAC;QACrC,kDAAkD;QAClD,aAAQ,GAAG,KAAK,CAAC;QACjB,4DAA4D;QAC5D,yFAAyF;QACzF,YAAO,GAAa,EAAE,CAAC;IAgGzB,CAAC;IA9FO,2BAAQ,GAAd,UAAe,MAAc,EAAE,MAAc;;;;4BAC3C,qBAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAA;;wBAA1B,SAA0B,CAAC;wBAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;;;;KAC3B;IAED,6BAAU,GAAV,UAAW,UAAkB;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CACjB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,IAAI,KAAK,UAAU,EAA1B,CAA0B,CAAC,EAC9D,CAAC,CACF,CAAC;QACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,wBAAK,GAAL;QACE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,uBAAI,GAAJ,UAAK,KAAY;QAAjB,iBAKC;QAJC,OAAO,IAAI,OAAO,CAAS,UAAC,OAAO;YACjC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAClC,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gCAAa,GAAb,UAAc,OAAe;QAA7B,iBAWC;QAVC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,UAAU,CAAC;YACT,KAAK,KAAI,CAAC,KAAK,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;gBACvC,KAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,KAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBACvB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAEK,wBAAK,GAAX,UAAY,IAAwC;;;;;;;wBAClD,IAAI,CAAC,IAAI,EAAE;4BACT,sBAAO;yBACR;wBAEG,KAAA,
|
|
1
|
+
{"version":3,"file":"timeline.js","sourceRoot":"","sources":["../../src/timeline.ts"],"names":[],"mappings":";;;AAAA,8DAUoC;AACpC,yDAAqD;AAErD;IAAA;QACE,UAAK,GAA6B,EAAE,CAAC;QACrC,kDAAkD;QAClD,aAAQ,GAAG,KAAK,CAAC;QACjB,4DAA4D;QAC5D,yFAAyF;QACzF,YAAO,GAAa,EAAE,CAAC;IAgGzB,CAAC;IA9FO,2BAAQ,GAAd,UAAe,MAAc,EAAE,MAAc;;;;4BAC3C,qBAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAA;;wBAA1B,SAA0B,CAAC;wBAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;;;;KAC3B;IAED,6BAAU,GAAV,UAAW,UAAkB;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CACjB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,IAAI,KAAK,UAAU,EAA1B,CAA0B,CAAC,EAC9D,CAAC,CACF,CAAC;QACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,wBAAK,GAAL;QACE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,uBAAI,GAAJ,UAAK,KAAY;QAAjB,iBAKC;QAJC,OAAO,IAAI,OAAO,CAAS,UAAC,OAAO;YACjC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAClC,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gCAAa,GAAb,UAAc,OAAe;QAA7B,iBAWC;QAVC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,UAAU,CAAC;YACT,KAAK,KAAI,CAAC,KAAK,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;gBACvC,KAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,KAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBACvB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAEK,wBAAK,GAAX,UAAY,IAAwC;;;;;;;wBAClD,IAAI,CAAC,IAAI,EAAE;4BACT,sBAAO;yBACR;wBAEG,KAAA,eAAU,IAAI,IAAA,EAAb,KAAK,QAAA,CAAS;wBACb,KAAA,eAAc,IAAI,IAAA,EAAf,OAAO,QAAA,CAAS;wBAEnB,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAChC,UAAC,MAAc,IAA6B,OAAA,MAAM,CAAC,IAAI,KAAK,4BAAU,CAAC,MAAM,EAAjC,CAAiC,CAC9E,CAAC;;;;wBAEmB,WAAA,iBAAA,MAAM,CAAA;;;;wBAAhB,MAAM;wBACP,qBAAM,MAAM,CAAC,OAAO,sBAAM,KAAK,EAAG,EAAA;;wBAA1C,KAAK,GAAG,SAAkC,CAAC;;;;;;;;;;;;;;;;;wBAGvC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CACpC,UAAC,MAAc,IAAiC,OAAA,MAAM,CAAC,IAAI,KAAK,4BAAU,CAAC,UAAU,EAArC,CAAqC,CACtF,CAAC;;;;wBAEmB,eAAA,iBAAA,UAAU,CAAA;;;;wBAApB,MAAM;wBACP,qBAAM,MAAM,CAAC,OAAO,sBAAM,KAAK,EAAG,EAAA;;wBAA1C,KAAK,GAAG,SAAkC,CAAC;;;;;;;;;;;;;;;;;wBAGvC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CACrC,UAAC,MAAc,IAAkC,OAAA,MAAM,CAAC,IAAI,KAAK,4BAAU,CAAC,WAAW,EAAtC,CAAsC,CACxF,CAAC;wBAEI,mBAAmB,GAAG,WAAW,CAAC,GAAG,CAAC,UAAC,MAAM;4BACjD,IAAM,UAAU,wBAAQ,KAAK,CAAE,CAAC;4BAChC,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,UAAC,CAAC,IAAK,OAAA,IAAA,4BAAW,EAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAArC,CAAqC,CAAC,CAAC;wBACxF,CAAC,CAAC,CAAC;wBAEH,KAAK,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,UAAC,EAAQ;gCAAR,KAAA,qBAAQ,EAAP,MAAM,QAAA;4BACjD,OAAO,CAAC,MAAM,CAAC,CAAC;wBAClB,CAAC,CAAC,CAAC;wBAEH,sBAAO;;;;KACR;IAEK,wBAAK,GAAX;;;;;;;wBACQ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;wBACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;wBAEhB,qBAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAhB,CAAgB,CAAC,CAAC,EAAA;;wBAAxD,SAAwD,CAAC;wBAEnD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CACrC,UAAC,MAAc,IAAkC,OAAA,MAAM,CAAC,IAAI,KAAK,4BAAU,CAAC,WAAW,EAAtC,CAAsC,CACxF,CAAC;wBAEI,mBAAmB,GAAG,WAAW,CAAC,GAAG,CAAC,UAAC,MAAM;4BACjD,OAAO,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;wBACxC,CAAC,CAAC,CAAC;wBAEH,qBAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAA;;wBAAtC,SAAsC,CAAC;;;;;KACxC;IACH,eAAC;AAAD,CAAC,AAtGD,IAsGC;AAtGY,4BAAQ","sourcesContent":["import {\n BeforePlugin,\n Config,\n DestinationPlugin,\n EnrichmentPlugin,\n Event,\n EventCallback,\n Plugin,\n PluginType,\n Result,\n} from '@amplitude/analytics-types';\nimport { buildResult } from './utils/result-builder';\n\nexport class Timeline {\n queue: [Event, EventCallback][] = [];\n // Flag to guarantee one schedule apply is running\n applying = false;\n // Flag indicates whether timeline is ready to process event\n // Events collected before timeline is ready will stay in the queue to be processed later\n plugins: Plugin[] = [];\n\n async register(plugin: Plugin, config: Config) {\n await plugin.setup(config);\n this.plugins.push(plugin);\n }\n\n deregister(pluginName: string) {\n this.plugins.splice(\n this.plugins.findIndex((plugin) => plugin.name === pluginName),\n 1,\n );\n return Promise.resolve();\n }\n\n reset() {\n this.applying = false;\n this.plugins = [];\n }\n\n push(event: Event) {\n return new Promise<Result>((resolve) => {\n this.queue.push([event, resolve]);\n this.scheduleApply(0);\n });\n }\n\n scheduleApply(timeout: number) {\n if (this.applying) return;\n this.applying = true;\n setTimeout(() => {\n void this.apply(this.queue.shift()).then(() => {\n this.applying = false;\n if (this.queue.length > 0) {\n this.scheduleApply(0);\n }\n });\n }, timeout);\n }\n\n async apply(item: [Event, EventCallback] | undefined) {\n if (!item) {\n return;\n }\n\n let [event] = item;\n const [, resolve] = item;\n\n const before = this.plugins.filter<BeforePlugin>(\n (plugin: Plugin): plugin is BeforePlugin => plugin.type === PluginType.BEFORE,\n );\n\n for (const plugin of before) {\n event = await plugin.execute({ ...event });\n }\n\n const enrichment = this.plugins.filter<EnrichmentPlugin>(\n (plugin: Plugin): plugin is EnrichmentPlugin => plugin.type === PluginType.ENRICHMENT,\n );\n\n for (const plugin of enrichment) {\n event = await plugin.execute({ ...event });\n }\n\n const destination = this.plugins.filter<DestinationPlugin>(\n (plugin: Plugin): plugin is DestinationPlugin => plugin.type === PluginType.DESTINATION,\n );\n\n const executeDestinations = destination.map((plugin) => {\n const eventClone = { ...event };\n return plugin.execute(eventClone).catch((e) => buildResult(eventClone, 0, String(e)));\n });\n\n void Promise.all(executeDestinations).then(([result]) => {\n resolve(result);\n });\n\n return;\n }\n\n async flush() {\n const queue = this.queue;\n this.queue = [];\n\n await Promise.all(queue.map((item) => this.apply(item)));\n\n const destination = this.plugins.filter<DestinationPlugin>(\n (plugin: Plugin): plugin is DestinationPlugin => plugin.type === PluginType.DESTINATION,\n );\n\n const executeDestinations = destination.map((plugin) => {\n return plugin.flush && plugin.flush();\n });\n\n await Promise.all(executeDestinations);\n }\n}\n"]}
|
package/lib/cjs/utils/debug.js
CHANGED
|
@@ -17,7 +17,7 @@ var getStacktrace = function (ignoreDepth) {
|
|
|
17
17
|
exports.getStacktrace = getStacktrace;
|
|
18
18
|
// This hook makes sure we always get the latest logger and logLevel.
|
|
19
19
|
var getClientLogConfig = function (client) { return function () {
|
|
20
|
-
var _a =
|
|
20
|
+
var _a = tslib_1.__assign({}, client.config), logger = _a.loggerProvider, logLevel = _a.logLevel;
|
|
21
21
|
return {
|
|
22
22
|
logger: logger,
|
|
23
23
|
logLevel: logLevel,
|
|
@@ -30,7 +30,7 @@ var getValueByStringPath = function (obj, path) {
|
|
|
30
30
|
path = path.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties
|
|
31
31
|
path = path.replace(/^\./, ''); // strip a leading dot
|
|
32
32
|
try {
|
|
33
|
-
for (var _b =
|
|
33
|
+
for (var _b = tslib_1.__values(path.split('.')), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
34
34
|
var attr = _c.value;
|
|
35
35
|
if (attr in obj) {
|
|
36
36
|
obj = obj[attr];
|
|
@@ -54,7 +54,7 @@ var getClientStates = function (client, paths) { return function () {
|
|
|
54
54
|
var e_2, _a;
|
|
55
55
|
var res = {};
|
|
56
56
|
try {
|
|
57
|
-
for (var paths_1 =
|
|
57
|
+
for (var paths_1 = tslib_1.__values(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) {
|
|
58
58
|
var path = paths_1_1.value;
|
|
59
59
|
res[path] = (0, exports.getValueByStringPath)(client, path);
|
|
60
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/utils/debug.ts"],"names":[],"mappings":";;;AAAA,4DAA4D;AAC5D,+DAA+D;AAC/D,sDAAsD;AACtD,6DAA6D;AAC7D,8DAAuF;AAGhF,IAAM,aAAa,GAAG,UAAC,WAAe;IAAf,4BAAA,EAAA,eAAe;IAC3C,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;IACtC,OAAO,KAAK;SACT,KAAK,CAAC,IAAI,CAAC;SACX,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC;SACtB,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,EAAE,EAAX,CAAW,CAAC,CAAC;AAChC,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB;AAEF,qEAAqE;AAC9D,IAAM,kBAAkB,GAAG,UAAC,MAA6B,IAAK,OAAA;IAC7D,IAAA
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/utils/debug.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { Config, LogLevel, LogConfig, DebugContext } from '@amplitude/analytics-types';\nimport { AmplitudeCore } from '../core-client';\n\nexport const getStacktrace = (ignoreDepth = 0): string[] => {\n const trace = new Error().stack || '';\n return trace\n .split('\\n')\n .slice(2 + ignoreDepth)\n .map((text) => text.trim());\n};\n\n// This hook makes sure we always get the latest logger and logLevel.\nexport const getClientLogConfig = (client: AmplitudeCore<Config>) => (): LogConfig => {\n const { loggerProvider: logger, logLevel } = { ...client.config };\n return {\n logger,\n logLevel,\n };\n};\n\n// This is a convenient function to get the attribute from object with string path, similar to lodash '#get'.\nexport const getValueByStringPath = (obj: any, path: string): any => {\n path = path.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\n path = path.replace(/^\\./, ''); // strip a leading dot\n for (const attr of path.split('.')) {\n if (attr in obj) {\n obj = obj[attr];\n } else {\n return;\n }\n }\n return obj;\n};\n\nexport const getClientStates = (client: AmplitudeCore<Config>, paths: Array<string>) => (): { [key: string]: any } => {\n const res: { [key: string]: any } = {};\n for (const path of paths) {\n res[path] = getValueByStringPath(client, path);\n }\n return res;\n};\n\nexport const debugWrapper =\n <T extends Array<any>, R>(\n fn: (...args: T) => R,\n fnName: string,\n getLogConfig: () => LogConfig,\n getStates?: () => { [key: string]: any },\n fnContext: any = null,\n ) =>\n (...args: T): R => {\n const { logger, logLevel } = getLogConfig();\n // return early if possible to reduce overhead\n if ((logLevel && logLevel < LogLevel.Debug) || !logLevel || !logger) {\n return fn.apply(fnContext, args);\n }\n const debugContext: DebugContext = {\n type: 'invoke public method',\n name: fnName,\n args,\n stacktrace: getStacktrace(1),\n time: {\n start: new Date().toISOString(),\n },\n states: {},\n };\n if (getStates && debugContext.states) {\n debugContext.states.before = getStates();\n }\n const result = fn.apply(fnContext, args);\n if (result && (result as any).promise) {\n // if result is a promise, add the callback\n (result as any).promise.then(() => {\n if (getStates && debugContext.states) {\n debugContext.states.after = getStates();\n }\n if (debugContext.time) {\n debugContext.time.end = new Date().toISOString();\n }\n logger.debug(JSON.stringify(debugContext, null, 2));\n });\n } else {\n if (getStates && debugContext.states) {\n debugContext.states.after = getStates();\n }\n if (debugContext.time) {\n debugContext.time.end = new Date().toISOString();\n }\n logger.debug(JSON.stringify(debugContext, null, 2));\n }\n return result;\n };\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseEvent, TrackEvent, IdentifyEvent, GroupIdentifyEvent, Identify as IIdentify, Revenue, RevenueEvent, EventOptions } from '@amplitude/analytics-types';
|
|
2
|
-
export declare const createTrackEvent: (eventInput: BaseEvent | string, eventProperties?: Record<string, any
|
|
3
|
-
export declare const createIdentifyEvent: (identify: IIdentify, eventOptions?: EventOptions
|
|
4
|
-
export declare const createGroupIdentifyEvent: (groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions
|
|
5
|
-
export declare const createGroupEvent: (groupType: string, groupName: string | string[], eventOptions?: EventOptions
|
|
6
|
-
export declare const createRevenueEvent: (revenue: Revenue, eventOptions?: EventOptions
|
|
2
|
+
export declare const createTrackEvent: (eventInput: BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: EventOptions) => TrackEvent;
|
|
3
|
+
export declare const createIdentifyEvent: (identify: IIdentify, eventOptions?: EventOptions) => IdentifyEvent;
|
|
4
|
+
export declare const createGroupIdentifyEvent: (groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions) => GroupIdentifyEvent;
|
|
5
|
+
export declare const createGroupEvent: (groupType: string, groupName: string | string[], eventOptions?: EventOptions) => IdentifyEvent;
|
|
6
|
+
export declare const createRevenueEvent: (revenue: Revenue, eventOptions?: EventOptions) => RevenueEvent;
|
|
7
7
|
//# sourceMappingURL=event-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/event-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,kBAAkB,EAElB,QAAQ,IAAI,SAAS,EACrB,OAAO,EACP,YAAY,EACZ,YAAY,EACb,MAAM,4BAA4B,CAAC;AAGpC,eAAO,MAAM,gBAAgB,eACf,SAAS,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"event-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/event-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,kBAAkB,EAElB,QAAQ,IAAI,SAAS,EACrB,OAAO,EACP,YAAY,EACZ,YAAY,EACb,MAAM,4BAA4B,CAAC;AAGpC,eAAO,MAAM,gBAAgB,eACf,SAAS,GAAG,MAAM,oBACZ,OAAO,MAAM,EAAE,GAAG,CAAC,iBACtB,YAAY,KAC1B,UAOF,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,SAAS,iBAAiB,YAAY,KAAG,aAQtF,CAAC;AAEF,eAAO,MAAM,wBAAwB,cACxB,MAAM,aACN,MAAM,GAAG,MAAM,EAAE,YAClB,SAAS,iBACJ,YAAY,KAC1B,kBAWF,CAAC;AAEF,eAAO,MAAM,gBAAgB,cAAe,MAAM,aAAa,MAAM,GAAG,MAAM,EAAE,iBAAiB,YAAY,kBAa5G,CAAC;AAEF,eAAO,MAAM,kBAAkB,YAAa,OAAO,iBAAiB,YAAY,KAAG,YAMlF,CAAC"}
|
|
@@ -5,17 +5,17 @@ var analytics_types_1 = require("@amplitude/analytics-types");
|
|
|
5
5
|
var identify_1 = require("../identify");
|
|
6
6
|
var createTrackEvent = function (eventInput, eventProperties, eventOptions) {
|
|
7
7
|
var baseEvent = typeof eventInput === 'string' ? { event_type: eventInput } : eventInput;
|
|
8
|
-
return
|
|
8
|
+
return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, baseEvent), eventOptions), (eventProperties && { event_properties: eventProperties }));
|
|
9
9
|
};
|
|
10
10
|
exports.createTrackEvent = createTrackEvent;
|
|
11
11
|
var createIdentifyEvent = function (identify, eventOptions) {
|
|
12
|
-
var identifyEvent =
|
|
12
|
+
var identifyEvent = tslib_1.__assign(tslib_1.__assign({}, eventOptions), { event_type: analytics_types_1.SpecialEventType.IDENTIFY, user_properties: identify.getUserProperties() });
|
|
13
13
|
return identifyEvent;
|
|
14
14
|
};
|
|
15
15
|
exports.createIdentifyEvent = createIdentifyEvent;
|
|
16
16
|
var createGroupIdentifyEvent = function (groupType, groupName, identify, eventOptions) {
|
|
17
17
|
var _a;
|
|
18
|
-
var groupIdentify =
|
|
18
|
+
var groupIdentify = tslib_1.__assign(tslib_1.__assign({}, eventOptions), { event_type: analytics_types_1.SpecialEventType.GROUP_IDENTIFY, group_properties: identify.getUserProperties(), groups: (_a = {},
|
|
19
19
|
_a[groupType] = groupName,
|
|
20
20
|
_a) });
|
|
21
21
|
return groupIdentify;
|
|
@@ -25,14 +25,14 @@ var createGroupEvent = function (groupType, groupName, eventOptions) {
|
|
|
25
25
|
var _a;
|
|
26
26
|
var identify = new identify_1.Identify();
|
|
27
27
|
identify.set(groupType, groupName);
|
|
28
|
-
var groupEvent =
|
|
28
|
+
var groupEvent = tslib_1.__assign(tslib_1.__assign({}, eventOptions), { event_type: analytics_types_1.SpecialEventType.IDENTIFY, user_properties: identify.getUserProperties(), groups: (_a = {},
|
|
29
29
|
_a[groupType] = groupName,
|
|
30
30
|
_a) });
|
|
31
31
|
return groupEvent;
|
|
32
32
|
};
|
|
33
33
|
exports.createGroupEvent = createGroupEvent;
|
|
34
34
|
var createRevenueEvent = function (revenue, eventOptions) {
|
|
35
|
-
return
|
|
35
|
+
return tslib_1.__assign(tslib_1.__assign({}, eventOptions), { event_type: analytics_types_1.SpecialEventType.REVENUE, event_properties: revenue.getEventProperties() });
|
|
36
36
|
};
|
|
37
37
|
exports.createRevenueEvent = createRevenueEvent;
|
|
38
38
|
//# sourceMappingURL=event-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-builder.js","sourceRoot":"","sources":["../../../src/utils/event-builder.ts"],"names":[],"mappings":";;;AAAA,8DAUoC;AACpC,wCAAuC;AAEhC,IAAM,gBAAgB,GAAG,UAC9B,UAA8B,EAC9B,eAAqC,EACrC,YAA2B;IAE3B,IAAM,SAAS,GAAc,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IACtG,
|
|
1
|
+
{"version":3,"file":"event-builder.js","sourceRoot":"","sources":["../../../src/utils/event-builder.ts"],"names":[],"mappings":";;;AAAA,8DAUoC;AACpC,wCAAuC;AAEhC,IAAM,gBAAgB,GAAG,UAC9B,UAA8B,EAC9B,eAAqC,EACrC,YAA2B;IAE3B,IAAM,SAAS,GAAc,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IACtG,8DACK,SAAS,GACT,YAAY,GACZ,CAAC,eAAe,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC,EAC7D;AACJ,CAAC,CAAC;AAXW,QAAA,gBAAgB,oBAW3B;AAEK,IAAM,mBAAmB,GAAG,UAAC,QAAmB,EAAE,YAA2B;IAClF,IAAM,aAAa,yCACd,YAAY,KACf,UAAU,EAAE,kCAAgB,CAAC,QAAQ,EACrC,eAAe,EAAE,QAAQ,CAAC,iBAAiB,EAAE,GAC9C,CAAC;IAEF,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AARW,QAAA,mBAAmB,uBAQ9B;AAEK,IAAM,wBAAwB,GAAG,UACtC,SAAiB,EACjB,SAA4B,EAC5B,QAAmB,EACnB,YAA2B;;IAE3B,IAAM,aAAa,yCACd,YAAY,KACf,UAAU,EAAE,kCAAgB,CAAC,cAAc,EAC3C,gBAAgB,EAAE,QAAQ,CAAC,iBAAiB,EAAE,EAC9C,MAAM;YACJ,GAAC,SAAS,IAAG,SAAS;kBAEzB,CAAC;IAEF,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAhBW,QAAA,wBAAwB,4BAgBnC;AAEK,IAAM,gBAAgB,GAAG,UAAC,SAAiB,EAAE,SAA4B,EAAE,YAA2B;;IAC3G,IAAM,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEnC,IAAM,UAAU,yCACX,YAAY,KACf,UAAU,EAAE,kCAAgB,CAAC,QAAQ,EACrC,eAAe,EAAE,QAAQ,CAAC,iBAAiB,EAAE,EAC7C,MAAM;YACJ,GAAC,SAAS,IAAG,SAAS;kBAEzB,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAbW,QAAA,gBAAgB,oBAa3B;AAEK,IAAM,kBAAkB,GAAG,UAAC,OAAgB,EAAE,YAA2B;IAC9E,6CACK,YAAY,KACf,UAAU,EAAE,kCAAgB,CAAC,OAAO,EACpC,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,EAAE,IAC9C;AACJ,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B","sourcesContent":["import {\n BaseEvent,\n TrackEvent,\n IdentifyEvent,\n GroupIdentifyEvent,\n SpecialEventType,\n Identify as IIdentify,\n Revenue,\n RevenueEvent,\n EventOptions,\n} from '@amplitude/analytics-types';\nimport { Identify } from '../identify';\n\nexport const createTrackEvent = (\n eventInput: BaseEvent | string,\n eventProperties?: Record<string, any>,\n eventOptions?: EventOptions,\n): TrackEvent => {\n const baseEvent: BaseEvent = typeof eventInput === 'string' ? { event_type: eventInput } : eventInput;\n return {\n ...baseEvent,\n ...eventOptions,\n ...(eventProperties && { event_properties: eventProperties }),\n };\n};\n\nexport const createIdentifyEvent = (identify: IIdentify, eventOptions?: EventOptions): IdentifyEvent => {\n const identifyEvent: IdentifyEvent = {\n ...eventOptions,\n event_type: SpecialEventType.IDENTIFY,\n user_properties: identify.getUserProperties(),\n };\n\n return identifyEvent;\n};\n\nexport const createGroupIdentifyEvent = (\n groupType: string,\n groupName: string | string[],\n identify: IIdentify,\n eventOptions?: EventOptions,\n): GroupIdentifyEvent => {\n const groupIdentify: GroupIdentifyEvent = {\n ...eventOptions,\n event_type: SpecialEventType.GROUP_IDENTIFY,\n group_properties: identify.getUserProperties(),\n groups: {\n [groupType]: groupName,\n },\n };\n\n return groupIdentify;\n};\n\nexport const createGroupEvent = (groupType: string, groupName: string | string[], eventOptions?: EventOptions) => {\n const identify = new Identify();\n identify.set(groupType, groupName);\n\n const groupEvent: IdentifyEvent = {\n ...eventOptions,\n event_type: SpecialEventType.IDENTIFY,\n user_properties: identify.getUserProperties(),\n groups: {\n [groupType]: groupName,\n },\n };\n return groupEvent;\n};\n\nexport const createRevenueEvent = (revenue: Revenue, eventOptions?: EventOptions): RevenueEvent => {\n return {\n ...eventOptions,\n event_type: SpecialEventType.REVENUE,\n event_properties: revenue.getEventProperties(),\n };\n};\n"]}
|
|
@@ -8,7 +8,7 @@ var returnWrapper = function (fn) {
|
|
|
8
8
|
args[_i] = arguments[_i];
|
|
9
9
|
}
|
|
10
10
|
return ({
|
|
11
|
-
promise: fn.apply(void 0,
|
|
11
|
+
promise: fn.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false)),
|
|
12
12
|
});
|
|
13
13
|
};
|
|
14
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"return-wrapper.js","sourceRoot":"","sources":["../../../src/utils/return-wrapper.ts"],"names":[],"mappings":";;;AAAO,IAAM,aAAa,GACxB,UAAkC,EAAK;IACvC,OAAA;QAAC,cAAsB;aAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;YAAtB,yBAAsB;;QAAK,OAAA,CAAC;YAC3B,OAAO,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"return-wrapper.js","sourceRoot":"","sources":["../../../src/utils/return-wrapper.ts"],"names":[],"mappings":";;;AAAO,IAAM,aAAa,GACxB,UAAkC,EAAK;IACvC,OAAA;QAAC,cAAsB;aAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;YAAtB,yBAAsB;;QAAK,OAAA,CAAC;YAC3B,OAAO,EAAE,EAAE,wDAAI,IAAI,UAAkB;SACtC,CAAC;IAF0B,CAE1B;AAFF,CAEE,CAAC;AAJQ,QAAA,aAAa,iBAIrB","sourcesContent":["export const returnWrapper =\n <T extends (...args: any) => any>(fn: T) =>\n (...args: Parameters<T>) => ({\n promise: fn(...args) as ReturnType<T>,\n });\n"]}
|
|
@@ -22,7 +22,7 @@ var isValidProperties = function (property, value) {
|
|
|
22
22
|
if (Array.isArray(value)) {
|
|
23
23
|
var isValid = true;
|
|
24
24
|
try {
|
|
25
|
-
for (var value_1 =
|
|
25
|
+
for (var value_1 = tslib_1.__values(value), value_1_1 = value_1.next(); !value_1_1.done; value_1_1 = value_1.next()) {
|
|
26
26
|
var valueElement = value_1_1.value;
|
|
27
27
|
if (Array.isArray(valueElement)) {
|
|
28
28
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valid-properties.js","sourceRoot":"","sources":["../../../src/utils/valid-properties.ts"],"names":[],"mappings":";;;AAAA,IAAM,iBAAiB,GAAG,IAAI,CAAC;AAExB,IAAM,aAAa,GAAG,UAAC,UAAkC;IAC9D,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,iBAAiB,EAAE;QACtD,OAAO,KAAK,CAAC;KACd;IACD,KAAK,IAAM,GAAG,IAAI,UAAU,EAAE;QAC5B,mEAAmE;QACnE,IAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAA,yBAAiB,EAAC,GAAG,EAAE,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;KAClD;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAVW,QAAA,aAAa,iBAUxB;AAEK,IAAM,iBAAiB,GAAG,UAAC,QAAgB,EAAE,KAAU;;IAC5D,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,IAAI,OAAO,GAAG,IAAI,CAAC;;YACnB,KAA2B,IAAA,UAAA,
|
|
1
|
+
{"version":3,"file":"valid-properties.js","sourceRoot":"","sources":["../../../src/utils/valid-properties.ts"],"names":[],"mappings":";;;AAAA,IAAM,iBAAiB,GAAG,IAAI,CAAC;AAExB,IAAM,aAAa,GAAG,UAAC,UAAkC;IAC9D,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,iBAAiB,EAAE;QACtD,OAAO,KAAK,CAAC;KACd;IACD,KAAK,IAAM,GAAG,IAAI,UAAU,EAAE;QAC5B,mEAAmE;QACnE,IAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAA,yBAAiB,EAAC,GAAG,EAAE,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;KAClD;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAVW,QAAA,aAAa,iBAUxB;AAEK,IAAM,iBAAiB,GAAG,UAAC,QAAgB,EAAE,KAAU;;IAC5D,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,IAAI,OAAO,GAAG,IAAI,CAAC;;YACnB,KAA2B,IAAA,UAAA,iBAAA,KAAK,CAAA,4BAAA,+CAAE;gBAA7B,IAAM,YAAY,kBAAA;gBACrB,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;oBAC/B,OAAO,KAAK,CAAC;iBACd;qBAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;oBAC3C,OAAO,GAAG,OAAO,IAAI,IAAA,qBAAa,EAAC,YAAsB,CAAC,CAAC;iBAC5D;qBAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,YAAY,CAAC,EAAE;oBAC9D,OAAO,KAAK,CAAC;iBACd;gBACD,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,KAAK,CAAC;iBACd;aACF;;;;;;;;;KACF;SAAM,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;QAChD,OAAO,KAAK,CAAC;KACd;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACpC,iEAAiE;QACjE,OAAO,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;KAC7B;SAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE;QAClE,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAzBW,QAAA,iBAAiB,qBAyB5B","sourcesContent":["const MAX_PROPERTY_KEYS = 1000;\n\nexport const isValidObject = (properties: { [key: string]: any }): boolean => {\n if (Object.keys(properties).length > MAX_PROPERTY_KEYS) {\n return false;\n }\n for (const key in properties) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const value = properties[key];\n if (!isValidProperties(key, value)) return false;\n }\n return true;\n};\n\nexport const isValidProperties = (property: string, value: any): boolean => {\n if (typeof property !== 'string') return false;\n if (Array.isArray(value)) {\n let isValid = true;\n for (const valueElement of value) {\n if (Array.isArray(valueElement)) {\n return false;\n } else if (typeof valueElement === 'object') {\n isValid = isValid && isValidObject(valueElement as object);\n } else if (!['number', 'string'].includes(typeof valueElement)) {\n return false;\n }\n if (!isValid) {\n return false;\n }\n }\n } else if (value === null || value === undefined) {\n return false;\n } else if (typeof value === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return isValidObject(value);\n } else if (!['number', 'string', 'boolean'].includes(typeof value)) {\n return false;\n }\n return true;\n};\n"]}
|
package/lib/esm/core-client.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare class AmplitudeCore<T extends Config> implements CoreClient<T> {
|
|
|
11
11
|
_init(config: T): Promise<void>;
|
|
12
12
|
runQueuedFunctions(queueName: 'q' | 'dispatchQ'): Promise<void>;
|
|
13
13
|
track(eventInput: BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: EventOptions): Promise<Result>;
|
|
14
|
-
logEvent: (eventInput: BaseEvent | string, eventProperties?: Record<string, any
|
|
14
|
+
logEvent: (eventInput: BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: EventOptions) => Promise<Result>;
|
|
15
15
|
identify(identify: Identify, eventOptions?: EventOptions): Promise<Result>;
|
|
16
16
|
groupIdentify(groupType: string, groupName: string | string[], identify: Identify, eventOptions?: EventOptions): Promise<Result>;
|
|
17
17
|
setGroup(groupType: string, groupName: string | string[], eventOptions?: EventOptions): Promise<Result>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-client.d.ts","sourceRoot":"","sources":["../../src/core-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,MAAM,EACN,KAAK,EACL,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,EACP,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,qBAAa,aAAa,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IACnE,YAAY,UAAS;IACrB,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,CAAC,CAAC;IAGV,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAM;IACrC,SAAS,CAAC,SAAS,EAAE,gBAAgB,EAAE,CAAM;gBAEjC,IAAI,SAAa;IAKvB,KAAK,CAAC,MAAM,EAAE,CAAC;IAMf,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,WAAW;IAQrD,KAAK,CAAC,UAAU,EAAE,SAAS,GAAG,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY;IAKxG,QAAQ,eALU,SAAS,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"core-client.d.ts","sourceRoot":"","sources":["../../src/core-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,MAAM,EACN,KAAK,EACL,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,OAAO,EACP,MAAM,EACP,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,qBAAa,aAAa,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IACnE,YAAY,UAAS;IACrB,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,CAAC,CAAC;IAGV,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAM;IACrC,SAAS,CAAC,SAAS,EAAE,gBAAgB,EAAE,CAAM;gBAEjC,IAAI,SAAa;IAKvB,KAAK,CAAC,MAAM,EAAE,CAAC;IAMf,kBAAkB,CAAC,SAAS,EAAE,GAAG,GAAG,WAAW;IAQrD,KAAK,CAAC,UAAU,EAAE,SAAS,GAAG,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY;IAKxG,QAAQ,eALU,SAAS,GAAG,MAAM,oBAAoB,OAAO,MAAM,EAAE,GAAG,CAAC,iBAAiB,YAAY,qBAKvE;IAEjC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,YAAY;IAKxD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,YAAY;IAK9G,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,YAAY;IAKrF,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,YAAY;IAK/C,GAAG,CAAC,MAAM,EAAE,MAAM;IAQlB,MAAM,CAAC,UAAU,EAAE,MAAM;IAQ/B,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAOtE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAUvC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB5C,SAAS,CAAC,MAAM,EAAE,OAAO;IAQzB,KAAK;CAGN"}
|
|
@@ -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;AAapC,qBAAa,WAAY,YAAW,iBAAiB;IACnD,IAAI,SAAe;IACnB,IAAI,yBAAmC;IAEvC,YAAY,SAAQ;IACpB,eAAe,SAAS;IACxB,UAAU,SAAM;IAIhB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAQ;IACvD,KAAK,EAAE,OAAO,EAAE,CAAM;IAEhB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAa/C,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAYtC,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IA0B7B,QAAQ,CAAC,OAAO,EAAE,MAAM;IAWlB,KAAK,CAAC,QAAQ,UAAQ;IAetB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,UAAO;
|
|
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;AAapC,qBAAa,WAAY,YAAW,iBAAiB;IACnD,IAAI,SAAe;IACnB,IAAI,yBAAmC;IAEvC,YAAY,SAAQ;IACpB,eAAe,SAAS;IACxB,UAAU,SAAM;IAIhB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAQ;IACvD,KAAK,EAAE,OAAO,EAAE,CAAM;IAEhB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAa/C,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAYtC,UAAU,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IA0B7B,QAAQ,CAAC,OAAO,EAAE,MAAM;IAWlB,KAAK,CAAC,QAAQ,UAAQ;IAetB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,UAAO;IA4C3C,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;IASlC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAK7D;;;;;OAKG;IACH,UAAU;CAOX"}
|
|
@@ -116,7 +116,7 @@ var Destination = /** @class */ (function () {
|
|
|
116
116
|
Destination.prototype.send = function (list, useRetry) {
|
|
117
117
|
if (useRetry === void 0) { useRetry = true; }
|
|
118
118
|
return __awaiter(this, void 0, void 0, function () {
|
|
119
|
-
var payload, serverUrl, res, e_1;
|
|
119
|
+
var payload, serverUrl, res, responseBody, e_1;
|
|
120
120
|
return __generator(this, function (_a) {
|
|
121
121
|
switch (_a.label) {
|
|
122
122
|
case 0:
|
|
@@ -146,7 +146,19 @@ var Destination = /** @class */ (function () {
|
|
|
146
146
|
return [2 /*return*/];
|
|
147
147
|
}
|
|
148
148
|
if (!useRetry) {
|
|
149
|
-
|
|
149
|
+
if ('body' in res) {
|
|
150
|
+
responseBody = '';
|
|
151
|
+
try {
|
|
152
|
+
responseBody = JSON.stringify(res.body, null, 2);
|
|
153
|
+
}
|
|
154
|
+
catch (_b) {
|
|
155
|
+
// to avoid crash, but don't care about the error, add comment to avoid empty block lint error
|
|
156
|
+
}
|
|
157
|
+
this.fulfillRequest(list, res.statusCode, "".concat(res.status, ": ").concat(responseBody));
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
this.fulfillRequest(list, res.statusCode, res.status);
|
|
161
|
+
}
|
|
150
162
|
return [2 /*return*/];
|
|
151
163
|
}
|
|
152
164
|
this.handleReponse(res, list);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"destination.js","sourceRoot":"","sources":["../../../src/plugins/destination.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Config,\n DestinationContext as Context,\n DestinationPlugin,\n Event,\n InvalidResponse,\n PayloadTooLargeResponse,\n PluginType,\n RateLimitResponse,\n Response,\n Result,\n Status,\n SuccessResponse,\n} from '@amplitude/analytics-types';\nimport {\n INVALID_API_KEY,\n MAX_RETRIES_EXCEEDED_MESSAGE,\n MISSING_API_KEY_MESSAGE,\n SUCCESS_MESSAGE,\n UNEXPECTED_ERROR_MESSAGE,\n} from '../messages';\nimport { STORAGE_PREFIX } from '../constants';\nimport { chunk } from '../utils/chunk';\nimport { buildResult } from '../utils/result-builder';\nimport { createServerConfig } from '../config';\n\nexport class Destination implements DestinationPlugin {\n name = 'amplitude';\n type = PluginType.DESTINATION as const;\n\n retryTimeout = 1000;\n throttleTimeout = 30000;\n storageKey = '';\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: Config;\n scheduled: ReturnType<typeof setTimeout> | null = null;\n queue: Context[] = [];\n\n async setup(config: Config): Promise<undefined> {\n this.config = config;\n\n this.storageKey = `${STORAGE_PREFIX}_${this.config.apiKey.substring(0, 10)}`;\n const unsent = await this.config.storageProvider?.get(this.storageKey);\n this.saveEvents(); // sets storage to '[]'\n if (unsent && unsent.length > 0) {\n void Promise.all(unsent.map((event) => this.execute(event))).catch();\n }\n\n return Promise.resolve(undefined);\n }\n\n execute(event: Event): Promise<Result> {\n return new Promise((resolve) => {\n const context = {\n event,\n attempts: 0,\n callback: (result: Result) => resolve(result),\n timeout: 0,\n };\n void this.addToQueue(context);\n });\n }\n\n addToQueue(...list: Context[]) {\n const tryable = list.filter((context) => {\n if (context.attempts < this.config.flushMaxRetries) {\n context.attempts += 1;\n return true;\n }\n void this.fulfillRequest([context], 500, MAX_RETRIES_EXCEEDED_MESSAGE);\n return false;\n });\n\n tryable.forEach((context) => {\n this.queue = this.queue.concat(context);\n if (context.timeout === 0) {\n this.schedule(this.config.flushIntervalMillis);\n return;\n }\n\n setTimeout(() => {\n context.timeout = 0;\n this.schedule(0);\n }, context.timeout);\n });\n\n this.saveEvents();\n }\n\n schedule(timeout: number) {\n if (this.scheduled) return;\n this.scheduled = setTimeout(() => {\n void this.flush(true).then(() => {\n if (this.queue.length > 0) {\n this.schedule(timeout);\n }\n });\n }, timeout);\n }\n\n async flush(useRetry = false) {\n const list: Context[] = [];\n const later: Context[] = [];\n this.queue.forEach((context) => (context.timeout === 0 ? list.push(context) : later.push(context)));\n this.queue = later;\n\n if (this.scheduled) {\n clearTimeout(this.scheduled);\n this.scheduled = null;\n }\n\n const batches = chunk(list, this.config.flushQueueSize);\n await Promise.all(batches.map((batch) => this.send(batch, useRetry)));\n }\n\n async send(list: Context[], useRetry = true) {\n if (!this.config.apiKey) {\n return this.fulfillRequest(list, 400, MISSING_API_KEY_MESSAGE);\n }\n\n const payload = {\n api_key: this.config.apiKey,\n events: list.map((context) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { extra, ...eventWithoutExtra } = context.event;\n return eventWithoutExtra;\n }),\n options: {\n min_id_length: this.config.minIdLength,\n },\n };\n\n try {\n const { serverUrl } = createServerConfig(this.config.serverUrl, this.config.serverZone, this.config.useBatch);\n const res = await this.config.transportProvider.send(serverUrl, payload);\n if (res === null) {\n this.fulfillRequest(list, 0, UNEXPECTED_ERROR_MESSAGE);\n return;\n }\n if (!useRetry) {\n this.fulfillRequest(list, res.statusCode, res.status);\n return;\n }\n this.handleReponse(res, list);\n } catch (e) {\n this.fulfillRequest(list, 0, String(e));\n }\n }\n\n handleReponse(res: Response, list: Context[]) {\n const { status } = res;\n switch (status) {\n case Status.Success:\n this.handleSuccessResponse(res, list);\n break;\n\n case Status.Invalid:\n this.handleInvalidResponse(res, list);\n break;\n\n case Status.PayloadTooLarge:\n this.handlePayloadTooLargeResponse(res, list);\n break;\n\n case Status.RateLimit:\n this.handleRateLimitResponse(res, list);\n break;\n\n default:\n this.handleOtherReponse(list);\n }\n }\n\n handleSuccessResponse(res: SuccessResponse, list: Context[]) {\n this.fulfillRequest(list, res.statusCode, SUCCESS_MESSAGE);\n }\n\n handleInvalidResponse(res: InvalidResponse, list: Context[]) {\n if (res.body.missingField || res.body.error.startsWith(INVALID_API_KEY)) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n\n const dropIndex = [\n ...Object.values(res.body.eventsWithInvalidFields),\n ...Object.values(res.body.eventsWithMissingFields),\n ...Object.values(res.body.eventsWithInvalidIdLengths),\n ...res.body.silencedEvents,\n ].flat();\n const dropIndexSet = new Set(dropIndex);\n\n const retry = list.filter((context, index) => {\n if (dropIndexSet.has(index)) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n return true;\n });\n\n this.addToQueue(...retry);\n }\n\n handlePayloadTooLargeResponse(res: PayloadTooLargeResponse, list: Context[]) {\n if (list.length === 1) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n this.config.flushQueueSize /= 2;\n this.addToQueue(...list);\n }\n\n handleRateLimitResponse(res: RateLimitResponse, list: Context[]) {\n const dropUserIds = Object.keys(res.body.exceededDailyQuotaUsers);\n const dropDeviceIds = Object.keys(res.body.exceededDailyQuotaDevices);\n const throttledIndex = res.body.throttledEvents;\n const dropUserIdsSet = new Set(dropUserIds);\n const dropDeviceIdsSet = new Set(dropDeviceIds);\n const throttledIndexSet = new Set(throttledIndex);\n\n const retry = list.filter((context, index) => {\n if (\n (context.event.user_id && dropUserIdsSet.has(context.event.user_id)) ||\n (context.event.device_id && dropDeviceIdsSet.has(context.event.device_id))\n ) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n if (throttledIndexSet.has(index)) {\n context.timeout = this.throttleTimeout;\n }\n return true;\n });\n\n this.addToQueue(...retry);\n }\n\n handleOtherReponse(list: Context[]) {\n this.addToQueue(\n ...list.map((context) => {\n context.timeout = context.attempts * this.retryTimeout;\n return context;\n }),\n );\n }\n\n fulfillRequest(list: Context[], code: number, message: string) {\n this.saveEvents();\n list.forEach((context) => context.callback(buildResult(context.event, code, message)));\n }\n\n /**\n * Saves events to storage\n * This is called on\n * 1) new events are added to queue; or\n * 2) response comes back for a request\n */\n saveEvents() {\n if (!this.config.storageProvider) {\n return;\n }\n const events = Array.from(this.queue.map((context) => context.event));\n void this.config.storageProvider.set(this.storageKey, events);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"destination.js","sourceRoot":"","sources":["../../../src/plugins/destination.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Config,\n DestinationContext as Context,\n DestinationPlugin,\n Event,\n InvalidResponse,\n PayloadTooLargeResponse,\n PluginType,\n RateLimitResponse,\n Response,\n Result,\n Status,\n SuccessResponse,\n} from '@amplitude/analytics-types';\nimport {\n INVALID_API_KEY,\n MAX_RETRIES_EXCEEDED_MESSAGE,\n MISSING_API_KEY_MESSAGE,\n SUCCESS_MESSAGE,\n UNEXPECTED_ERROR_MESSAGE,\n} from '../messages';\nimport { STORAGE_PREFIX } from '../constants';\nimport { chunk } from '../utils/chunk';\nimport { buildResult } from '../utils/result-builder';\nimport { createServerConfig } from '../config';\n\nexport class Destination implements DestinationPlugin {\n name = 'amplitude';\n type = PluginType.DESTINATION as const;\n\n retryTimeout = 1000;\n throttleTimeout = 30000;\n storageKey = '';\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: Config;\n scheduled: ReturnType<typeof setTimeout> | null = null;\n queue: Context[] = [];\n\n async setup(config: Config): Promise<undefined> {\n this.config = config;\n\n this.storageKey = `${STORAGE_PREFIX}_${this.config.apiKey.substring(0, 10)}`;\n const unsent = await this.config.storageProvider?.get(this.storageKey);\n this.saveEvents(); // sets storage to '[]'\n if (unsent && unsent.length > 0) {\n void Promise.all(unsent.map((event) => this.execute(event))).catch();\n }\n\n return Promise.resolve(undefined);\n }\n\n execute(event: Event): Promise<Result> {\n return new Promise((resolve) => {\n const context = {\n event,\n attempts: 0,\n callback: (result: Result) => resolve(result),\n timeout: 0,\n };\n void this.addToQueue(context);\n });\n }\n\n addToQueue(...list: Context[]) {\n const tryable = list.filter((context) => {\n if (context.attempts < this.config.flushMaxRetries) {\n context.attempts += 1;\n return true;\n }\n void this.fulfillRequest([context], 500, MAX_RETRIES_EXCEEDED_MESSAGE);\n return false;\n });\n\n tryable.forEach((context) => {\n this.queue = this.queue.concat(context);\n if (context.timeout === 0) {\n this.schedule(this.config.flushIntervalMillis);\n return;\n }\n\n setTimeout(() => {\n context.timeout = 0;\n this.schedule(0);\n }, context.timeout);\n });\n\n this.saveEvents();\n }\n\n schedule(timeout: number) {\n if (this.scheduled) return;\n this.scheduled = setTimeout(() => {\n void this.flush(true).then(() => {\n if (this.queue.length > 0) {\n this.schedule(timeout);\n }\n });\n }, timeout);\n }\n\n async flush(useRetry = false) {\n const list: Context[] = [];\n const later: Context[] = [];\n this.queue.forEach((context) => (context.timeout === 0 ? list.push(context) : later.push(context)));\n this.queue = later;\n\n if (this.scheduled) {\n clearTimeout(this.scheduled);\n this.scheduled = null;\n }\n\n const batches = chunk(list, this.config.flushQueueSize);\n await Promise.all(batches.map((batch) => this.send(batch, useRetry)));\n }\n\n async send(list: Context[], useRetry = true) {\n if (!this.config.apiKey) {\n return this.fulfillRequest(list, 400, MISSING_API_KEY_MESSAGE);\n }\n\n const payload = {\n api_key: this.config.apiKey,\n events: list.map((context) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { extra, ...eventWithoutExtra } = context.event;\n return eventWithoutExtra;\n }),\n options: {\n min_id_length: this.config.minIdLength,\n },\n };\n\n try {\n const { serverUrl } = createServerConfig(this.config.serverUrl, this.config.serverZone, this.config.useBatch);\n const res = await this.config.transportProvider.send(serverUrl, payload);\n if (res === null) {\n this.fulfillRequest(list, 0, UNEXPECTED_ERROR_MESSAGE);\n return;\n }\n if (!useRetry) {\n if ('body' in res) {\n let responseBody = '';\n try {\n responseBody = JSON.stringify(res.body, null, 2);\n } catch {\n // to avoid crash, but don't care about the error, add comment to avoid empty block lint error\n }\n this.fulfillRequest(list, res.statusCode, `${res.status}: ${responseBody}`);\n } else {\n this.fulfillRequest(list, res.statusCode, res.status);\n }\n return;\n }\n this.handleReponse(res, list);\n } catch (e) {\n this.fulfillRequest(list, 0, String(e));\n }\n }\n\n handleReponse(res: Response, list: Context[]) {\n const { status } = res;\n switch (status) {\n case Status.Success:\n this.handleSuccessResponse(res, list);\n break;\n\n case Status.Invalid:\n this.handleInvalidResponse(res, list);\n break;\n\n case Status.PayloadTooLarge:\n this.handlePayloadTooLargeResponse(res, list);\n break;\n\n case Status.RateLimit:\n this.handleRateLimitResponse(res, list);\n break;\n\n default:\n this.handleOtherReponse(list);\n }\n }\n\n handleSuccessResponse(res: SuccessResponse, list: Context[]) {\n this.fulfillRequest(list, res.statusCode, SUCCESS_MESSAGE);\n }\n\n handleInvalidResponse(res: InvalidResponse, list: Context[]) {\n if (res.body.missingField || res.body.error.startsWith(INVALID_API_KEY)) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n\n const dropIndex = [\n ...Object.values(res.body.eventsWithInvalidFields),\n ...Object.values(res.body.eventsWithMissingFields),\n ...Object.values(res.body.eventsWithInvalidIdLengths),\n ...res.body.silencedEvents,\n ].flat();\n const dropIndexSet = new Set(dropIndex);\n\n const retry = list.filter((context, index) => {\n if (dropIndexSet.has(index)) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n return true;\n });\n\n this.addToQueue(...retry);\n }\n\n handlePayloadTooLargeResponse(res: PayloadTooLargeResponse, list: Context[]) {\n if (list.length === 1) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n this.config.flushQueueSize /= 2;\n this.addToQueue(...list);\n }\n\n handleRateLimitResponse(res: RateLimitResponse, list: Context[]) {\n const dropUserIds = Object.keys(res.body.exceededDailyQuotaUsers);\n const dropDeviceIds = Object.keys(res.body.exceededDailyQuotaDevices);\n const throttledIndex = res.body.throttledEvents;\n const dropUserIdsSet = new Set(dropUserIds);\n const dropDeviceIdsSet = new Set(dropDeviceIds);\n const throttledIndexSet = new Set(throttledIndex);\n\n const retry = list.filter((context, index) => {\n if (\n (context.event.user_id && dropUserIdsSet.has(context.event.user_id)) ||\n (context.event.device_id && dropDeviceIdsSet.has(context.event.device_id))\n ) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n if (throttledIndexSet.has(index)) {\n context.timeout = this.throttleTimeout;\n }\n return true;\n });\n\n this.addToQueue(...retry);\n }\n\n handleOtherReponse(list: Context[]) {\n this.addToQueue(\n ...list.map((context) => {\n context.timeout = context.attempts * this.retryTimeout;\n return context;\n }),\n );\n }\n\n fulfillRequest(list: Context[], code: number, message: string) {\n this.saveEvents();\n list.forEach((context) => context.callback(buildResult(context.event, code, message)));\n }\n\n /**\n * Saves events to storage\n * This is called on\n * 1) new events are added to queue; or\n * 2) response comes back for a request\n */\n saveEvents() {\n if (!this.config.storageProvider) {\n return;\n }\n const events = Array.from(this.queue.map((context) => context.event));\n void this.config.storageProvider.set(this.storageKey, events);\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseEvent, TrackEvent, IdentifyEvent, GroupIdentifyEvent, Identify as IIdentify, Revenue, RevenueEvent, EventOptions } from '@amplitude/analytics-types';
|
|
2
|
-
export declare const createTrackEvent: (eventInput: BaseEvent | string, eventProperties?: Record<string, any
|
|
3
|
-
export declare const createIdentifyEvent: (identify: IIdentify, eventOptions?: EventOptions
|
|
4
|
-
export declare const createGroupIdentifyEvent: (groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions
|
|
5
|
-
export declare const createGroupEvent: (groupType: string, groupName: string | string[], eventOptions?: EventOptions
|
|
6
|
-
export declare const createRevenueEvent: (revenue: Revenue, eventOptions?: EventOptions
|
|
2
|
+
export declare const createTrackEvent: (eventInput: BaseEvent | string, eventProperties?: Record<string, any>, eventOptions?: EventOptions) => TrackEvent;
|
|
3
|
+
export declare const createIdentifyEvent: (identify: IIdentify, eventOptions?: EventOptions) => IdentifyEvent;
|
|
4
|
+
export declare const createGroupIdentifyEvent: (groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions) => GroupIdentifyEvent;
|
|
5
|
+
export declare const createGroupEvent: (groupType: string, groupName: string | string[], eventOptions?: EventOptions) => IdentifyEvent;
|
|
6
|
+
export declare const createRevenueEvent: (revenue: Revenue, eventOptions?: EventOptions) => RevenueEvent;
|
|
7
7
|
//# sourceMappingURL=event-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/event-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,kBAAkB,EAElB,QAAQ,IAAI,SAAS,EACrB,OAAO,EACP,YAAY,EACZ,YAAY,EACb,MAAM,4BAA4B,CAAC;AAGpC,eAAO,MAAM,gBAAgB,eACf,SAAS,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"event-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/event-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,kBAAkB,EAElB,QAAQ,IAAI,SAAS,EACrB,OAAO,EACP,YAAY,EACZ,YAAY,EACb,MAAM,4BAA4B,CAAC;AAGpC,eAAO,MAAM,gBAAgB,eACf,SAAS,GAAG,MAAM,oBACZ,OAAO,MAAM,EAAE,GAAG,CAAC,iBACtB,YAAY,KAC1B,UAOF,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,SAAS,iBAAiB,YAAY,KAAG,aAQtF,CAAC;AAEF,eAAO,MAAM,wBAAwB,cACxB,MAAM,aACN,MAAM,GAAG,MAAM,EAAE,YAClB,SAAS,iBACJ,YAAY,KAC1B,kBAWF,CAAC;AAEF,eAAO,MAAM,gBAAgB,cAAe,MAAM,aAAa,MAAM,GAAG,MAAM,EAAE,iBAAiB,YAAY,kBAa5G,CAAC;AAEF,eAAO,MAAM,kBAAkB,YAAa,OAAO,iBAAiB,YAAY,KAAG,YAMlF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amplitude/analytics-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Amplitude Inc",
|
|
6
6
|
"homepage": "https://github.com/amplitude/Amplitude-TypeScript",
|
|
@@ -34,11 +34,11 @@
|
|
|
34
34
|
"url": "https://github.com/amplitude/Amplitude-TypeScript/issues"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@amplitude/analytics-types": "^0.
|
|
38
|
-
"tslib": "^2.
|
|
37
|
+
"@amplitude/analytics-types": "^0.14.0",
|
|
38
|
+
"tslib": "^2.4.1"
|
|
39
39
|
},
|
|
40
40
|
"files": [
|
|
41
41
|
"lib"
|
|
42
42
|
],
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "bb021b75fd1c48cbdb98d8f328eebb74f85c6fb4"
|
|
44
44
|
}
|