@amplitude/analytics-core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/lib/cjs/__mocks__/logger.d.ts +8 -0
- package/lib/cjs/__mocks__/logger.d.ts.map +1 -0
- package/lib/cjs/__mocks__/logger.js +24 -0
- package/lib/cjs/__mocks__/logger.js.map +1 -0
- package/lib/cjs/config.d.ts +44 -0
- package/lib/cjs/config.d.ts.map +1 -0
- package/lib/cjs/config.js +86 -0
- package/lib/cjs/config.js.map +1 -0
- package/lib/cjs/constants.d.ts +8 -0
- package/lib/cjs/constants.d.ts.map +1 -0
- package/lib/cjs/constants.js +10 -0
- package/lib/cjs/constants.js.map +1 -0
- package/lib/cjs/core-client.d.ts +13 -0
- package/lib/cjs/core-client.d.ts.map +1 -0
- package/lib/cjs/core-client.js +91 -0
- package/lib/cjs/core-client.js.map +1 -0
- package/lib/cjs/identify.d.ts +19 -0
- package/lib/cjs/identify.d.ts.map +1 -0
- package/lib/cjs/identify.js +94 -0
- package/lib/cjs/identify.js.map +1 -0
- package/lib/cjs/index.d.ts +10 -0
- package/lib/cjs/index.d.ts.map +1 -0
- package/lib/cjs/index.js +30 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/logger.d.ts +11 -0
- package/lib/cjs/logger.d.ts.map +1 -0
- package/lib/cjs/logger.js +49 -0
- package/lib/cjs/logger.js.map +1 -0
- package/lib/cjs/messages.d.ts +6 -0
- package/lib/cjs/messages.d.ts.map +1 -0
- package/lib/cjs/messages.js +8 -0
- package/lib/cjs/messages.js.map +1 -0
- package/lib/cjs/plugins/destination.d.ts +29 -0
- package/lib/cjs/plugins/destination.d.ts.map +1 -0
- package/lib/cjs/plugins/destination.js +245 -0
- package/lib/cjs/plugins/destination.js.map +1 -0
- package/lib/cjs/revenue.d.ts +20 -0
- package/lib/cjs/revenue.d.ts.map +1 -0
- package/lib/cjs/revenue.js +52 -0
- package/lib/cjs/revenue.js.map +1 -0
- package/lib/cjs/timeline.d.ts +8 -0
- package/lib/cjs/timeline.d.ts.map +1 -0
- package/lib/cjs/timeline.js +134 -0
- package/lib/cjs/timeline.js.map +1 -0
- package/lib/cjs/transports/http.d.ts +5 -0
- package/lib/cjs/transports/http.d.ts.map +1 -0
- package/lib/cjs/transports/http.js +51 -0
- package/lib/cjs/transports/http.js.map +1 -0
- package/lib/cjs/utils/chunk.d.ts +2 -0
- package/lib/cjs/utils/chunk.d.ts.map +1 -0
- package/lib/cjs/utils/chunk.js +18 -0
- package/lib/cjs/utils/chunk.js.map +1 -0
- package/lib/cjs/utils/event-builder.d.ts +7 -0
- package/lib/cjs/utils/event-builder.d.ts.map +1 -0
- package/lib/cjs/utils/event-builder.js +47 -0
- package/lib/cjs/utils/event-builder.js.map +1 -0
- package/lib/cjs/utils/response-builder.d.ts +3 -0
- package/lib/cjs/utils/response-builder.d.ts.map +1 -0
- package/lib/cjs/utils/response-builder.js +74 -0
- package/lib/cjs/utils/response-builder.js.map +1 -0
- package/lib/cjs/utils/result-builder.d.ts +3 -0
- package/lib/cjs/utils/result-builder.d.ts.map +1 -0
- package/lib/cjs/utils/result-builder.js +10 -0
- package/lib/cjs/utils/result-builder.js.map +1 -0
- package/lib/cjs/utils/status-builder.d.ts +3 -0
- package/lib/cjs/utils/status-builder.d.ts.map +1 -0
- package/lib/cjs/utils/status-builder.js +26 -0
- package/lib/cjs/utils/status-builder.js.map +1 -0
- package/lib/cjs/utils/valid-properties.d.ts +5 -0
- package/lib/cjs/utils/valid-properties.d.ts.map +1 -0
- package/lib/cjs/utils/valid-properties.js +55 -0
- package/lib/cjs/utils/valid-properties.js.map +1 -0
- package/lib/esm/__mocks__/logger.d.ts +8 -0
- package/lib/esm/__mocks__/logger.d.ts.map +1 -0
- package/lib/esm/__mocks__/logger.js +22 -0
- package/lib/esm/__mocks__/logger.js.map +1 -0
- package/lib/esm/config.d.ts +44 -0
- package/lib/esm/config.d.ts.map +1 -0
- package/lib/esm/config.js +80 -0
- package/lib/esm/config.js.map +1 -0
- package/lib/esm/constants.d.ts +8 -0
- package/lib/esm/constants.d.ts.map +1 -0
- package/lib/esm/constants.js +8 -0
- package/lib/esm/constants.js.map +1 -0
- package/lib/esm/core-client.d.ts +13 -0
- package/lib/esm/core-client.d.ts.map +1 -0
- package/lib/esm/core-client.js +78 -0
- package/lib/esm/core-client.js.map +1 -0
- package/lib/esm/identify.d.ts +19 -0
- package/lib/esm/identify.d.ts.map +1 -0
- package/lib/esm/identify.js +92 -0
- package/lib/esm/identify.js.map +1 -0
- package/lib/esm/index.d.ts +10 -0
- package/lib/esm/index.d.ts.map +1 -0
- package/lib/esm/index.js +10 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/logger.d.ts +11 -0
- package/lib/esm/logger.d.ts.map +1 -0
- package/lib/esm/logger.js +47 -0
- package/lib/esm/logger.js.map +1 -0
- package/lib/esm/messages.d.ts +6 -0
- package/lib/esm/messages.d.ts.map +1 -0
- package/lib/esm/messages.js +6 -0
- package/lib/esm/messages.js.map +1 -0
- package/lib/esm/plugins/destination.d.ts +29 -0
- package/lib/esm/plugins/destination.d.ts.map +1 -0
- package/lib/esm/plugins/destination.js +243 -0
- package/lib/esm/plugins/destination.js.map +1 -0
- package/lib/esm/revenue.d.ts +20 -0
- package/lib/esm/revenue.d.ts.map +1 -0
- package/lib/esm/revenue.js +50 -0
- package/lib/esm/revenue.js.map +1 -0
- package/lib/esm/timeline.d.ts +8 -0
- package/lib/esm/timeline.d.ts.map +1 -0
- package/lib/esm/timeline.js +126 -0
- package/lib/esm/timeline.js.map +1 -0
- package/lib/esm/transports/http.d.ts +5 -0
- package/lib/esm/transports/http.d.ts.map +1 -0
- package/lib/esm/transports/http.js +49 -0
- package/lib/esm/transports/http.js.map +1 -0
- package/lib/esm/utils/chunk.d.ts +2 -0
- package/lib/esm/utils/chunk.d.ts.map +1 -0
- package/lib/esm/utils/chunk.js +15 -0
- package/lib/esm/utils/chunk.js.map +1 -0
- package/lib/esm/utils/event-builder.d.ts +7 -0
- package/lib/esm/utils/event-builder.d.ts.map +1 -0
- package/lib/esm/utils/event-builder.js +40 -0
- package/lib/esm/utils/event-builder.js.map +1 -0
- package/lib/esm/utils/response-builder.d.ts +3 -0
- package/lib/esm/utils/response-builder.d.ts.map +1 -0
- package/lib/esm/utils/response-builder.js +71 -0
- package/lib/esm/utils/response-builder.js.map +1 -0
- package/lib/esm/utils/result-builder.d.ts +3 -0
- package/lib/esm/utils/result-builder.d.ts.map +1 -0
- package/lib/esm/utils/result-builder.js +7 -0
- package/lib/esm/utils/result-builder.js.map +1 -0
- package/lib/esm/utils/status-builder.d.ts +3 -0
- package/lib/esm/utils/status-builder.d.ts.map +1 -0
- package/lib/esm/utils/status-builder.js +23 -0
- package/lib/esm/utils/status-builder.js.map +1 -0
- package/lib/esm/utils/valid-properties.d.ts +5 -0
- package/lib/esm/utils/valid-properties.d.ts.map +1 -0
- package/lib/esm/utils/valid-properties.js +51 -0
- package/lib/esm/utils/valid-properties.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/transports/http.ts"],"names":[],"mappings":";;AACA,2BAA6B;AAC7B,8DAA0D;AAE1D;IAAA;IAyCA,CAAC;IAxCC,mBAAI,GAAJ,UAAK,SAAiB,EAAE,OAAgB;QACtC,IAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAM,OAAO,GAAG;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC;aACpD;YACD,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC;QACF,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;YACzB,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAC,GAAG;gBACpC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACxB,IAAI,eAAe,GAAG,EAAE,CAAC;gBACzB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,UAAC,KAAa;oBAC3B,eAAe,IAAI,KAAK,CAAC;gBAC3B,CAAC,CAAC,CAAC;gBAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE;oBACZ,IAAI,GAAG,CAAC,QAAQ,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC9C,IAAI;4BACF,mEAAmE;4BACnE,IAAM,qBAAqB,GAAwB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;4BAC/E,IAAM,MAAM,GAAG,IAAA,gCAAa,EAAC,qBAAqB,CAAC,CAAC;4BACpD,OAAO,CAAC,MAAM,CAAC,CAAC;4BAChB,OAAO;yBACR;wBAAC,WAAM;4BACN,OAAO,CAAC,IAAI,CAAC,CAAC;yBACf;qBACF;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,gCAAa,CAAC,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IACH,WAAC;AAAD,CAAC,AAzCD,IAyCC;AAzCY,oBAAI","sourcesContent":["import { Payload, Response, Transport } from '@amplitude/analytics-types';\nimport * as http from 'http';\nimport { buildResponse } from '../utils/response-builder';\n\nexport class Http implements Transport {\n send(serverUrl: string, payload: Payload): Promise<Response | null> {\n const url = new URL(serverUrl);\n const requestPayload = JSON.stringify(payload);\n const options = {\n headers: {\n 'Content-Type': 'application/json',\n 'Content-Length': Buffer.byteLength(requestPayload),\n },\n hostname: url.hostname,\n method: 'POST',\n path: url.pathname,\n port: url.port,\n protocol: url.protocol,\n };\n return new Promise((resolve) => {\n const req = http.request(options, (res) => {\n res.setEncoding('utf8');\n let responsePayload = '';\n res.on('data', (chunk: string) => {\n responsePayload += chunk;\n });\n\n res.on('end', () => {\n if (res.complete && responsePayload.length > 0) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const parsedResponsePayload: Record<string, any> = JSON.parse(responsePayload);\n const result = buildResponse(parsedResponsePayload);\n resolve(result);\n return;\n } catch {\n resolve(null);\n }\n }\n });\n });\n req.on('error', buildResponse);\n req.end(requestPayload);\n });\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk.d.ts","sourceRoot":"","sources":["../../../src/utils/chunk.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,KAAK,sBAAuB,MAAM,UAU9C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Creates an array of elements split into groups the length of size.
|
|
2
|
+
// If array can't be split evenly, the final chunk will be the remaining elements.
|
|
3
|
+
// Works similary as https://lodash.com/docs/4.17.15#chunk
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.chunk = void 0;
|
|
6
|
+
var chunk = function (arr, size) {
|
|
7
|
+
var chunkSize = Math.max(size, 1);
|
|
8
|
+
return arr.reduce(function (chunks, element, index) {
|
|
9
|
+
var chunkIndex = Math.floor(index / chunkSize);
|
|
10
|
+
if (!chunks[chunkIndex]) {
|
|
11
|
+
chunks[chunkIndex] = [];
|
|
12
|
+
}
|
|
13
|
+
chunks[chunkIndex].push(element);
|
|
14
|
+
return chunks;
|
|
15
|
+
}, []);
|
|
16
|
+
};
|
|
17
|
+
exports.chunk = chunk;
|
|
18
|
+
//# sourceMappingURL=chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk.js","sourceRoot":"","sources":["../../../src/utils/chunk.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,kFAAkF;AAClF,0DAA0D;;;AAEnD,IAAM,KAAK,GAAG,UAAI,GAAQ,EAAE,IAAY;IAC7C,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC,MAAM,CAAQ,UAAC,MAAM,EAAE,OAAO,EAAE,KAAK;QAC9C,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YACvB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;SACzB;QACD,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AAVW,QAAA,KAAK,SAUhB","sourcesContent":["// Creates an array of elements split into groups the length of size.\n// If array can't be split evenly, the final chunk will be the remaining elements.\n// Works similary as https://lodash.com/docs/4.17.15#chunk\n\nexport const chunk = <T>(arr: T[], size: number) => {\n const chunkSize = Math.max(size, 1);\n return arr.reduce<T[][]>((chunks, element, index) => {\n const chunkIndex = Math.floor(index / chunkSize);\n if (!chunks[chunkIndex]) {\n chunks[chunkIndex] = [];\n }\n chunks[chunkIndex].push(element);\n return chunks;\n }, []);\n};\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TrackEvent, IdentifyEvent, GroupIdentifyEvent, Identify as IIdentify, Revenue, RevenueEvent, EventOptions } from '@amplitude/analytics-types';
|
|
2
|
+
export declare const createTrackEvent: (eventType: string, eventProperties?: Record<string, any> | undefined, eventOptions?: EventOptions | undefined) => TrackEvent;
|
|
3
|
+
export declare const createIdentifyEvent: (userId: string | undefined, deviceId: string | undefined, identify: IIdentify, eventOptions?: EventOptions | undefined) => IdentifyEvent;
|
|
4
|
+
export declare const createGroupIdentifyEvent: (userId: string | undefined, deviceId: string | undefined, groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions | undefined) => GroupIdentifyEvent;
|
|
5
|
+
export declare const createGroupEvent: (groupType: string, groupName: string | string[]) => IdentifyEvent;
|
|
6
|
+
export declare const createRevenueEvent: (revenue: Revenue, eventOptions?: EventOptions | undefined) => RevenueEvent;
|
|
7
|
+
//# sourceMappingURL=event-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/event-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,aAAa,EACb,kBAAkB,EAElB,QAAQ,IAAI,SAAS,EACrB,OAAO,EACP,YAAY,EACZ,YAAY,EACb,MAAM,4BAA4B,CAAC;AAGpC,eAAO,MAAM,gBAAgB,cAChB,MAAM,iGAGhB,UAMF,CAAC;AAEF,eAAO,MAAM,mBAAmB,WACtB,MAAM,GAAG,SAAS,YAChB,MAAM,GAAG,SAAS,YAClB,SAAS,8CAElB,aAaF,CAAC;AAEF,eAAO,MAAM,wBAAwB,WAC3B,MAAM,GAAG,SAAS,YAChB,MAAM,GAAG,SAAS,aACjB,MAAM,aACN,MAAM,GAAG,MAAM,EAAE,YAClB,SAAS,8CAElB,kBAgBF,CAAC;AAEF,eAAO,MAAM,gBAAgB,cAAe,MAAM,aAAa,MAAM,GAAG,MAAM,EAAE,kBAY/E,CAAC;AAEF,eAAO,MAAM,kBAAkB,YAAa,OAAO,8CAAgC,YAMlF,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.createRevenueEvent = exports.createGroupEvent = exports.createGroupIdentifyEvent = exports.createIdentifyEvent = exports.createTrackEvent = void 0;
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var analytics_types_1 = require("@amplitude/analytics-types");
|
|
5
|
+
var identify_1 = require("../identify");
|
|
6
|
+
var createTrackEvent = function (eventType, eventProperties, eventOptions) {
|
|
7
|
+
return (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, eventOptions), { event_type: eventType }), (eventProperties && { event_properties: eventProperties }));
|
|
8
|
+
};
|
|
9
|
+
exports.createTrackEvent = createTrackEvent;
|
|
10
|
+
var createIdentifyEvent = function (userId, deviceId, identify, eventOptions) {
|
|
11
|
+
var identifyEvent = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, eventOptions), { event_type: analytics_types_1.SpecialEventType.IDENTIFY, user_properties: identify.getUserProperties(), user_id: userId });
|
|
12
|
+
if (deviceId !== undefined && deviceId.length > 0) {
|
|
13
|
+
identifyEvent.device_id = deviceId;
|
|
14
|
+
}
|
|
15
|
+
return identifyEvent;
|
|
16
|
+
};
|
|
17
|
+
exports.createIdentifyEvent = createIdentifyEvent;
|
|
18
|
+
var createGroupIdentifyEvent = function (userId, deviceId, groupType, groupName, identify, eventOptions) {
|
|
19
|
+
var _a;
|
|
20
|
+
var groupIdentify = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, eventOptions), { event_type: analytics_types_1.SpecialEventType.GROUP_IDENTIFY, group_properties: identify.getUserProperties(), groups: (_a = {},
|
|
21
|
+
_a[groupType] = groupName,
|
|
22
|
+
_a), user_id: userId });
|
|
23
|
+
if (deviceId !== undefined && deviceId.length > 0) {
|
|
24
|
+
groupIdentify.device_id = deviceId;
|
|
25
|
+
}
|
|
26
|
+
return groupIdentify;
|
|
27
|
+
};
|
|
28
|
+
exports.createGroupIdentifyEvent = createGroupIdentifyEvent;
|
|
29
|
+
var createGroupEvent = function (groupType, groupName) {
|
|
30
|
+
var _a;
|
|
31
|
+
var identify = new identify_1.Identify();
|
|
32
|
+
identify.set(groupType, groupName);
|
|
33
|
+
var groupEvent = {
|
|
34
|
+
event_type: analytics_types_1.SpecialEventType.IDENTIFY,
|
|
35
|
+
user_properties: identify.getUserProperties(),
|
|
36
|
+
groups: (_a = {},
|
|
37
|
+
_a[groupType] = groupName,
|
|
38
|
+
_a),
|
|
39
|
+
};
|
|
40
|
+
return groupEvent;
|
|
41
|
+
};
|
|
42
|
+
exports.createGroupEvent = createGroupEvent;
|
|
43
|
+
var createRevenueEvent = function (revenue, eventOptions) {
|
|
44
|
+
return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, eventOptions), { event_type: analytics_types_1.SpecialEventType.REVENUE, event_properties: revenue.getEventProperties() });
|
|
45
|
+
};
|
|
46
|
+
exports.createRevenueEvent = createRevenueEvent;
|
|
47
|
+
//# sourceMappingURL=event-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-builder.js","sourceRoot":"","sources":["../../../src/utils/event-builder.ts"],"names":[],"mappings":";;;AAAA,8DASoC;AACpC,wCAAuC;AAEhC,IAAM,gBAAgB,GAAG,UAC9B,SAAiB,EACjB,eAAqC,EACrC,YAA2B;IAE3B,6EACK,YAAY,KACf,UAAU,EAAE,SAAS,KAClB,CAAC,eAAe,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC,EAC7D;AACJ,CAAC,CAAC;AAVW,QAAA,gBAAgB,oBAU3B;AAEK,IAAM,mBAAmB,GAAG,UACjC,MAA0B,EAC1B,QAA4B,EAC5B,QAAmB,EACnB,YAA2B;IAE3B,IAAM,aAAa,mDACd,YAAY,KACf,UAAU,EAAE,kCAAgB,CAAC,QAAQ,EACrC,eAAe,EAAE,QAAQ,CAAC,iBAAiB,EAAE,EAC7C,OAAO,EAAE,MAAM,GAChB,CAAC;IAEF,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACjD,aAAa,CAAC,SAAS,GAAG,QAAQ,CAAC;KACpC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAlBW,QAAA,mBAAmB,uBAkB9B;AAEK,IAAM,wBAAwB,GAAG,UACtC,MAA0B,EAC1B,QAA4B,EAC5B,SAAiB,EACjB,SAA4B,EAC5B,QAAmB,EACnB,YAA2B;;IAE3B,IAAM,aAAa,mDACd,YAAY,KACf,UAAU,EAAE,kCAAgB,CAAC,cAAc,EAC3C,gBAAgB,EAAE,QAAQ,CAAC,iBAAiB,EAAE,EAC9C,MAAM;YACJ,GAAC,SAAS,IAAG,SAAS;iBAExB,OAAO,EAAE,MAAM,GAChB,CAAC;IAEF,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACjD,aAAa,CAAC,SAAS,GAAG,QAAQ,CAAC;KACpC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAvBW,QAAA,wBAAwB,4BAuBnC;AAEK,IAAM,gBAAgB,GAAG,UAAC,SAAiB,EAAE,SAA4B;;IAC9E,IAAM,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEnC,IAAM,UAAU,GAAkB;QAChC,UAAU,EAAE,kCAAgB,CAAC,QAAQ;QACrC,eAAe,EAAE,QAAQ,CAAC,iBAAiB,EAAE;QAC7C,MAAM;YACJ,GAAC,SAAS,IAAG,SAAS;eACvB;KACF,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAZW,QAAA,gBAAgB,oBAY3B;AAEK,IAAM,kBAAkB,GAAG,UAAC,OAAgB,EAAE,YAA2B;IAC9E,uDACK,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 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 eventType: string,\n eventProperties?: Record<string, any>,\n eventOptions?: EventOptions,\n): TrackEvent => {\n return {\n ...eventOptions,\n event_type: eventType,\n ...(eventProperties && { event_properties: eventProperties }),\n };\n};\n\nexport const createIdentifyEvent = (\n userId: string | undefined,\n deviceId: string | undefined,\n identify: IIdentify,\n eventOptions?: EventOptions,\n): IdentifyEvent => {\n const identifyEvent: IdentifyEvent = {\n ...eventOptions,\n event_type: SpecialEventType.IDENTIFY,\n user_properties: identify.getUserProperties(),\n user_id: userId,\n };\n\n if (deviceId !== undefined && deviceId.length > 0) {\n identifyEvent.device_id = deviceId;\n }\n\n return identifyEvent;\n};\n\nexport const createGroupIdentifyEvent = (\n userId: string | undefined,\n deviceId: string | undefined,\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 user_id: userId,\n };\n\n if (deviceId !== undefined && deviceId.length > 0) {\n groupIdentify.device_id = deviceId;\n }\n\n return groupIdentify;\n};\n\nexport const createGroupEvent = (groupType: string, groupName: string | string[]) => {\n const identify = new Identify();\n identify.set(groupType, groupName);\n\n const groupEvent: IdentifyEvent = {\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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/response-builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAU,MAAM,4BAA4B,CAAC;AAG9D,eAAO,MAAM,aAAa,iBAAkB,OAAO,MAAM,EAAE,GAAG,CAAC,KAAG,QAAQ,GAAG,IAkE5E,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.buildResponse = void 0;
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
4
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
5
|
+
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
6
|
+
var analytics_types_1 = require("@amplitude/analytics-types");
|
|
7
|
+
var status_builder_1 = require("./status-builder");
|
|
8
|
+
var buildResponse = function (responseJSON) {
|
|
9
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
|
|
10
|
+
if (typeof responseJSON !== 'object') {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
var statusCode = responseJSON.code || 0;
|
|
14
|
+
var status = (0, status_builder_1.buildStatus)(statusCode);
|
|
15
|
+
switch (status) {
|
|
16
|
+
case analytics_types_1.Status.Success:
|
|
17
|
+
return {
|
|
18
|
+
status: status,
|
|
19
|
+
statusCode: statusCode,
|
|
20
|
+
body: {
|
|
21
|
+
eventsIngested: (_a = responseJSON.events_ingested) !== null && _a !== void 0 ? _a : 0,
|
|
22
|
+
payloadSizeBytes: (_b = responseJSON.payload_size_bytes) !== null && _b !== void 0 ? _b : 0,
|
|
23
|
+
serverUploadTime: (_c = responseJSON.server_upload_time) !== null && _c !== void 0 ? _c : 0,
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
case analytics_types_1.Status.Invalid:
|
|
27
|
+
return {
|
|
28
|
+
status: status,
|
|
29
|
+
statusCode: statusCode,
|
|
30
|
+
body: {
|
|
31
|
+
error: (_d = responseJSON.error) !== null && _d !== void 0 ? _d : '',
|
|
32
|
+
missingField: (_e = responseJSON.missing_field) !== null && _e !== void 0 ? _e : '',
|
|
33
|
+
eventsWithInvalidFields: (_f = responseJSON.events_with_invalid_fields) !== null && _f !== void 0 ? _f : {},
|
|
34
|
+
eventsWithMissingFields: (_g = responseJSON.events_with_missing_fields) !== null && _g !== void 0 ? _g : {},
|
|
35
|
+
epsThreshold: (_h = responseJSON.eps_threshold) !== null && _h !== void 0 ? _h : 0,
|
|
36
|
+
exceededDailyQuotaDevices: (_j = responseJSON.exceeded_daily_quota_devices) !== null && _j !== void 0 ? _j : {},
|
|
37
|
+
silencedDevices: (_k = responseJSON.silenced_devices) !== null && _k !== void 0 ? _k : [],
|
|
38
|
+
silencedEvents: (_l = responseJSON.silenced_events) !== null && _l !== void 0 ? _l : [],
|
|
39
|
+
throttledDevices: (_m = responseJSON.throttled_devices) !== null && _m !== void 0 ? _m : {},
|
|
40
|
+
throttledEvents: (_o = responseJSON.throttled_events) !== null && _o !== void 0 ? _o : [],
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
case analytics_types_1.Status.PayloadTooLarge:
|
|
44
|
+
return {
|
|
45
|
+
status: status,
|
|
46
|
+
statusCode: statusCode,
|
|
47
|
+
body: {
|
|
48
|
+
error: (_p = responseJSON.error) !== null && _p !== void 0 ? _p : '',
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
case analytics_types_1.Status.RateLimit:
|
|
52
|
+
return {
|
|
53
|
+
status: status,
|
|
54
|
+
statusCode: statusCode,
|
|
55
|
+
body: {
|
|
56
|
+
error: (_q = responseJSON.error) !== null && _q !== void 0 ? _q : '',
|
|
57
|
+
epsThreshold: (_r = responseJSON.eps_threshold) !== null && _r !== void 0 ? _r : 0,
|
|
58
|
+
throttledDevices: (_s = responseJSON.throttled_devices) !== null && _s !== void 0 ? _s : {},
|
|
59
|
+
throttledUsers: (_t = responseJSON.throttled_users) !== null && _t !== void 0 ? _t : {},
|
|
60
|
+
exceededDailyQuotaDevices: (_u = responseJSON.exceeded_daily_quota_devices) !== null && _u !== void 0 ? _u : {},
|
|
61
|
+
exceededDailyQuotaUsers: (_v = responseJSON.exceeded_daily_quota_users) !== null && _v !== void 0 ? _v : {},
|
|
62
|
+
throttledEvents: (_w = responseJSON.throttled_events) !== null && _w !== void 0 ? _w : [],
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
case analytics_types_1.Status.Timeout:
|
|
66
|
+
default:
|
|
67
|
+
return {
|
|
68
|
+
status: status,
|
|
69
|
+
statusCode: statusCode,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
exports.buildResponse = buildResponse;
|
|
74
|
+
//# sourceMappingURL=response-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-builder.js","sourceRoot":"","sources":["../../../src/utils/response-builder.ts"],"names":[],"mappings":";;AAAA,0DAA0D;AAC1D,4DAA4D;AAC5D,sDAAsD;AACtD,8DAA8D;AAC9D,mDAA+C;AAExC,IAAM,aAAa,GAAG,UAAC,YAAiC;;IAC7D,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;QACpC,OAAO,IAAI,CAAC;KACb;IAED,IAAM,UAAU,GAAG,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC;IAC1C,IAAM,MAAM,GAAG,IAAA,4BAAW,EAAC,UAAU,CAAC,CAAC;IAEvC,QAAQ,MAAM,EAAE;QACd,KAAK,wBAAM,CAAC,OAAO;YACjB,OAAO;gBACL,MAAM,QAAA;gBACN,UAAU,YAAA;gBACV,IAAI,EAAE;oBACJ,cAAc,EAAE,MAAA,YAAY,CAAC,eAAe,mCAAI,CAAC;oBACjD,gBAAgB,EAAE,MAAA,YAAY,CAAC,kBAAkB,mCAAI,CAAC;oBACtD,gBAAgB,EAAE,MAAA,YAAY,CAAC,kBAAkB,mCAAI,CAAC;iBACvD;aACF,CAAC;QAEJ,KAAK,wBAAM,CAAC,OAAO;YACjB,OAAO;gBACL,MAAM,QAAA;gBACN,UAAU,YAAA;gBACV,IAAI,EAAE;oBACJ,KAAK,EAAE,MAAA,YAAY,CAAC,KAAK,mCAAI,EAAE;oBAC/B,YAAY,EAAE,MAAA,YAAY,CAAC,aAAa,mCAAI,EAAE;oBAC9C,uBAAuB,EAAE,MAAA,YAAY,CAAC,0BAA0B,mCAAI,EAAE;oBACtE,uBAAuB,EAAE,MAAA,YAAY,CAAC,0BAA0B,mCAAI,EAAE;oBACtE,YAAY,EAAE,MAAA,YAAY,CAAC,aAAa,mCAAI,CAAC;oBAC7C,yBAAyB,EAAE,MAAA,YAAY,CAAC,4BAA4B,mCAAI,EAAE;oBAC1E,eAAe,EAAE,MAAA,YAAY,CAAC,gBAAgB,mCAAI,EAAE;oBACpD,cAAc,EAAE,MAAA,YAAY,CAAC,eAAe,mCAAI,EAAE;oBAClD,gBAAgB,EAAE,MAAA,YAAY,CAAC,iBAAiB,mCAAI,EAAE;oBACtD,eAAe,EAAE,MAAA,YAAY,CAAC,gBAAgB,mCAAI,EAAE;iBACrD;aACF,CAAC;QACJ,KAAK,wBAAM,CAAC,eAAe;YACzB,OAAO;gBACL,MAAM,QAAA;gBACN,UAAU,YAAA;gBACV,IAAI,EAAE;oBACJ,KAAK,EAAE,MAAA,YAAY,CAAC,KAAK,mCAAI,EAAE;iBAChC;aACF,CAAC;QACJ,KAAK,wBAAM,CAAC,SAAS;YACnB,OAAO;gBACL,MAAM,QAAA;gBACN,UAAU,YAAA;gBACV,IAAI,EAAE;oBACJ,KAAK,EAAE,MAAA,YAAY,CAAC,KAAK,mCAAI,EAAE;oBAC/B,YAAY,EAAE,MAAA,YAAY,CAAC,aAAa,mCAAI,CAAC;oBAC7C,gBAAgB,EAAE,MAAA,YAAY,CAAC,iBAAiB,mCAAI,EAAE;oBACtD,cAAc,EAAE,MAAA,YAAY,CAAC,eAAe,mCAAI,EAAE;oBAClD,yBAAyB,EAAE,MAAA,YAAY,CAAC,4BAA4B,mCAAI,EAAE;oBAC1E,uBAAuB,EAAE,MAAA,YAAY,CAAC,0BAA0B,mCAAI,EAAE;oBACtE,eAAe,EAAE,MAAA,YAAY,CAAC,gBAAgB,mCAAI,EAAE;iBACrD;aACF,CAAC;QACJ,KAAK,wBAAM,CAAC,OAAO,CAAC;QACpB;YACE,OAAO;gBACL,MAAM,QAAA;gBACN,UAAU,YAAA;aACX,CAAC;KACL;AACH,CAAC,CAAC;AAlEW,QAAA,aAAa,iBAkExB","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { Response, Status } from '@amplitude/analytics-types';\nimport { buildStatus } from './status-builder';\n\nexport const buildResponse = (responseJSON: Record<string, any>): Response | null => {\n if (typeof responseJSON !== 'object') {\n return null;\n }\n\n const statusCode = responseJSON.code || 0;\n const status = buildStatus(statusCode);\n\n switch (status) {\n case Status.Success:\n return {\n status,\n statusCode,\n body: {\n eventsIngested: responseJSON.events_ingested ?? 0,\n payloadSizeBytes: responseJSON.payload_size_bytes ?? 0,\n serverUploadTime: responseJSON.server_upload_time ?? 0,\n },\n };\n\n case Status.Invalid:\n return {\n status,\n statusCode,\n body: {\n error: responseJSON.error ?? '',\n missingField: responseJSON.missing_field ?? '',\n eventsWithInvalidFields: responseJSON.events_with_invalid_fields ?? {},\n eventsWithMissingFields: responseJSON.events_with_missing_fields ?? {},\n epsThreshold: responseJSON.eps_threshold ?? 0,\n exceededDailyQuotaDevices: responseJSON.exceeded_daily_quota_devices ?? {},\n silencedDevices: responseJSON.silenced_devices ?? [],\n silencedEvents: responseJSON.silenced_events ?? [],\n throttledDevices: responseJSON.throttled_devices ?? {},\n throttledEvents: responseJSON.throttled_events ?? [],\n },\n };\n case Status.PayloadTooLarge:\n return {\n status,\n statusCode,\n body: {\n error: responseJSON.error ?? '',\n },\n };\n case Status.RateLimit:\n return {\n status,\n statusCode,\n body: {\n error: responseJSON.error ?? '',\n epsThreshold: responseJSON.eps_threshold ?? 0,\n throttledDevices: responseJSON.throttled_devices ?? {},\n throttledUsers: responseJSON.throttled_users ?? {},\n exceededDailyQuotaDevices: responseJSON.exceeded_daily_quota_devices ?? {},\n exceededDailyQuotaUsers: responseJSON.exceeded_daily_quota_users ?? {},\n throttledEvents: responseJSON.throttled_events ?? [],\n },\n };\n case Status.Timeout:\n default:\n return {\n status,\n statusCode,\n };\n }\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/result-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAU,MAAM,4BAA4B,CAAC;AAEnE,eAAO,MAAM,WAAW,UAAW,KAAK,2BAAqB,MAAM,KAAoB,MAEtF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.buildResult = void 0;
|
|
3
|
+
var analytics_types_1 = require("@amplitude/analytics-types");
|
|
4
|
+
var buildResult = function (event, code, message) {
|
|
5
|
+
if (code === void 0) { code = 0; }
|
|
6
|
+
if (message === void 0) { message = analytics_types_1.Status.Unknown; }
|
|
7
|
+
return { event: event, code: code, message: message };
|
|
8
|
+
};
|
|
9
|
+
exports.buildResult = buildResult;
|
|
10
|
+
//# sourceMappingURL=result-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-builder.js","sourceRoot":"","sources":["../../../src/utils/result-builder.ts"],"names":[],"mappings":";;AAAA,8DAAmE;AAE5D,IAAM,WAAW,GAAG,UAAC,KAAY,EAAE,IAAQ,EAAE,OAAgC;IAA1C,qBAAA,EAAA,QAAQ;IAAE,wBAAA,EAAA,UAAkB,wBAAM,CAAC,OAAO;IAClF,OAAO,EAAE,KAAK,OAAA,EAAE,IAAI,MAAA,EAAE,OAAO,SAAA,EAAE,CAAC;AAClC,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB","sourcesContent":["import { Event, Result, Status } from '@amplitude/analytics-types';\n\nexport const buildResult = (event: Event, code = 0, message: string = Status.Unknown): Result => {\n return { event, code, message };\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/status-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0BhD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.buildStatus = void 0;
|
|
3
|
+
var analytics_types_1 = require("@amplitude/analytics-types");
|
|
4
|
+
function buildStatus(code) {
|
|
5
|
+
if (code >= 200 && code < 300) {
|
|
6
|
+
return analytics_types_1.Status.Success;
|
|
7
|
+
}
|
|
8
|
+
if (code === 429) {
|
|
9
|
+
return analytics_types_1.Status.RateLimit;
|
|
10
|
+
}
|
|
11
|
+
if (code === 413) {
|
|
12
|
+
return analytics_types_1.Status.PayloadTooLarge;
|
|
13
|
+
}
|
|
14
|
+
if (code === 408) {
|
|
15
|
+
return analytics_types_1.Status.Timeout;
|
|
16
|
+
}
|
|
17
|
+
if (code >= 400 && code < 500) {
|
|
18
|
+
return analytics_types_1.Status.Invalid;
|
|
19
|
+
}
|
|
20
|
+
if (code >= 500) {
|
|
21
|
+
return analytics_types_1.Status.Failed;
|
|
22
|
+
}
|
|
23
|
+
return analytics_types_1.Status.Unknown;
|
|
24
|
+
}
|
|
25
|
+
exports.buildStatus = buildStatus;
|
|
26
|
+
//# sourceMappingURL=status-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-builder.js","sourceRoot":"","sources":["../../../src/utils/status-builder.ts"],"names":[],"mappings":";;AAAA,8DAAoD;AAEpD,SAAgB,WAAW,CAAC,IAAY;IACtC,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE;QAC7B,OAAO,wBAAM,CAAC,OAAO,CAAC;KACvB;IAED,IAAI,IAAI,KAAK,GAAG,EAAE;QAChB,OAAO,wBAAM,CAAC,SAAS,CAAC;KACzB;IAED,IAAI,IAAI,KAAK,GAAG,EAAE;QAChB,OAAO,wBAAM,CAAC,eAAe,CAAC;KAC/B;IAED,IAAI,IAAI,KAAK,GAAG,EAAE;QAChB,OAAO,wBAAM,CAAC,OAAO,CAAC;KACvB;IAED,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE;QAC7B,OAAO,wBAAM,CAAC,OAAO,CAAC;KACvB;IAED,IAAI,IAAI,IAAI,GAAG,EAAE;QACf,OAAO,wBAAM,CAAC,MAAM,CAAC;KACtB;IAED,OAAO,wBAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AA1BD,kCA0BC","sourcesContent":["import { Status } from '@amplitude/analytics-types';\n\nexport function buildStatus(code: number): Status {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n\n if (code === 429) {\n return Status.RateLimit;\n }\n\n if (code === 413) {\n return Status.PayloadTooLarge;\n }\n\n if (code === 408) {\n return Status.Timeout;\n }\n\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n\n if (code >= 500) {\n return Status.Failed;\n }\n\n return Status.Unknown;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valid-properties.d.ts","sourceRoot":"","sources":["../../../src/utils/valid-properties.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;MAAyC,OAUlE,CAAC;AAEF,eAAO,MAAM,iBAAiB,aAAc,MAAM,SAAS,GAAG,KAAG,OAmBhE,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.isValidProperties = exports.isValidObject = void 0;
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var MAX_PROPERTY_KEYS = 1000;
|
|
5
|
+
var isValidObject = function (properties) {
|
|
6
|
+
if (Object.keys(properties).length > MAX_PROPERTY_KEYS) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
for (var key in properties) {
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
11
|
+
var value = properties[key];
|
|
12
|
+
if (!(0, exports.isValidProperties)(key, value))
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
return true;
|
|
16
|
+
};
|
|
17
|
+
exports.isValidObject = isValidObject;
|
|
18
|
+
var isValidProperties = function (property, value) {
|
|
19
|
+
var e_1, _a;
|
|
20
|
+
if (typeof property !== 'string')
|
|
21
|
+
return false;
|
|
22
|
+
if (Array.isArray(value)) {
|
|
23
|
+
try {
|
|
24
|
+
for (var value_1 = (0, tslib_1.__values)(value), value_1_1 = value_1.next(); !value_1_1.done; value_1_1 = value_1.next()) {
|
|
25
|
+
var valueElement = value_1_1.value;
|
|
26
|
+
if (Array.isArray(valueElement)) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
else if (typeof valueElement === 'object') {
|
|
30
|
+
return (0, exports.isValidObject)(value);
|
|
31
|
+
}
|
|
32
|
+
else if (!['number', 'string'].includes(typeof valueElement)) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
38
|
+
finally {
|
|
39
|
+
try {
|
|
40
|
+
if (value_1_1 && !value_1_1.done && (_a = value_1.return)) _a.call(value_1);
|
|
41
|
+
}
|
|
42
|
+
finally { if (e_1) throw e_1.error; }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else if (typeof value === 'object') {
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
47
|
+
return (0, exports.isValidObject)(value);
|
|
48
|
+
}
|
|
49
|
+
else if (!['number', 'string', 'boolean'].includes(typeof value)) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
return true;
|
|
53
|
+
};
|
|
54
|
+
exports.isValidProperties = isValidProperties;
|
|
55
|
+
//# sourceMappingURL=valid-properties.js.map
|
|
@@ -0,0 +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;;YACxB,KAA2B,IAAA,UAAA,sBAAA,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,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;iBAC7B;qBAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,YAAY,CAAC,EAAE;oBAC9D,OAAO,KAAK,CAAC;iBACd;aACF;;;;;;;;;KACF;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;AAnBW,QAAA,iBAAiB,qBAmB5B","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 for (const valueElement of value) {\n if (Array.isArray(valueElement)) {\n return false;\n } else if (typeof valueElement === 'object') {\n return isValidObject(value);\n } else if (!['number', 'string'].includes(typeof valueElement)) {\n return false;\n }\n }\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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/__mocks__/logger.ts"],"names":[],"mappings":"AAAA,qBAAa,MAAM;IACjB,OAAO,IAAI,IAAI;IAIf,MAAM,IAAI,IAAI;IAId,GAAG,IAAI,IAAI;IAIX,IAAI,IAAI,IAAI;IAIZ,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var Logger = /** @class */ (function () {
|
|
2
|
+
function Logger() {
|
|
3
|
+
}
|
|
4
|
+
Logger.prototype.disable = function () {
|
|
5
|
+
return undefined;
|
|
6
|
+
};
|
|
7
|
+
Logger.prototype.enable = function () {
|
|
8
|
+
return undefined;
|
|
9
|
+
};
|
|
10
|
+
Logger.prototype.log = function () {
|
|
11
|
+
return undefined;
|
|
12
|
+
};
|
|
13
|
+
Logger.prototype.warn = function () {
|
|
14
|
+
return undefined;
|
|
15
|
+
};
|
|
16
|
+
Logger.prototype.error = function () {
|
|
17
|
+
return undefined;
|
|
18
|
+
};
|
|
19
|
+
return Logger;
|
|
20
|
+
}());
|
|
21
|
+
export { Logger };
|
|
22
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/__mocks__/logger.ts"],"names":[],"mappings":"AAAA;IAAA;IAoBA,CAAC;IAnBC,wBAAO,GAAP;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,uBAAM,GAAN;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,oBAAG,GAAH;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qBAAI,GAAJ;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,sBAAK,GAAL;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,aAAC;AAAD,CAAC,AApBD,IAoBC","sourcesContent":["export class Logger {\n disable(): void {\n return undefined;\n }\n\n enable(): void {\n return undefined;\n }\n\n log(): void {\n return undefined;\n }\n\n warn(): void {\n return undefined;\n }\n\n error(): void {\n return undefined;\n }\n}\n"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Event, Config as IConfig, Logger as ILogger, InitOptions, LogLevel, Storage, Transport, Plugin, ServerZone } from '@amplitude/analytics-types';
|
|
2
|
+
import { Logger } from './logger';
|
|
3
|
+
export declare const serverUrls: {
|
|
4
|
+
US: (useBatch: boolean) => "https://api2.amplitude.com/2/httpapi" | "https://api2.amplitude.com/batch";
|
|
5
|
+
EU: (useBatch: boolean) => "https://api.eu.amplitude.com/2/httpapi" | "https://api.eu.amplitude.com/batch";
|
|
6
|
+
};
|
|
7
|
+
export declare const defaultConfig: {
|
|
8
|
+
flushMaxRetries: number;
|
|
9
|
+
flushQueueSize: number;
|
|
10
|
+
flushIntervalMillis: number;
|
|
11
|
+
logLevel: LogLevel;
|
|
12
|
+
loggerProvider: Logger;
|
|
13
|
+
saveEvents: boolean;
|
|
14
|
+
optOut: boolean;
|
|
15
|
+
serverUrl: string;
|
|
16
|
+
serverZone: ServerZone;
|
|
17
|
+
useBatch: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare class Config implements IConfig {
|
|
20
|
+
apiKey: string;
|
|
21
|
+
userId?: string;
|
|
22
|
+
deviceId?: string;
|
|
23
|
+
sessionId?: number;
|
|
24
|
+
flushIntervalMillis: number;
|
|
25
|
+
flushMaxRetries: number;
|
|
26
|
+
flushQueueSize: number;
|
|
27
|
+
loggerProvider: ILogger;
|
|
28
|
+
logLevel: LogLevel;
|
|
29
|
+
partnerId?: string;
|
|
30
|
+
plugins: Plugin[];
|
|
31
|
+
optOut: boolean;
|
|
32
|
+
saveEvents: boolean;
|
|
33
|
+
serverUrl: string | undefined;
|
|
34
|
+
serverZone: ServerZone;
|
|
35
|
+
transportProvider: Transport;
|
|
36
|
+
storageProvider: Storage<Event[]>;
|
|
37
|
+
useBatch: boolean;
|
|
38
|
+
constructor(options: InitOptions<IConfig>);
|
|
39
|
+
}
|
|
40
|
+
export declare const createConfig: (config: IConfig) => IConfig;
|
|
41
|
+
export declare const getConfig: () => IConfig;
|
|
42
|
+
export declare const resetInstances: () => void;
|
|
43
|
+
export declare const getApiHost: (config: Config | IConfig) => string;
|
|
44
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,MAAM,IAAI,OAAO,EACjB,MAAM,IAAI,OAAO,EACjB,WAAW,EACX,QAAQ,EACR,OAAO,EACP,SAAS,EACT,MAAM,EACN,UAAU,EACX,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKlC,eAAO,MAAM,UAAU;mBACO,OAAO;mBACP,OAAO;CACpC,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;CAWzB,CAAC;AAEF,qBAAa,MAAO,YAAW,OAAO;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,eAAe,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;gBAEN,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;CAwB1C;AAED,eAAO,MAAM,YAAY,WAAY,OAAO,YAO3C,CAAC;AAEF,eAAO,MAAM,SAAS,eAErB,CAAC;AAEF,eAAO,MAAM,cAAc,YAI1B,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,MAAM,GAAG,OAAO,WAElD,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { LogLevel, ServerZone, } from '@amplitude/analytics-types';
|
|
3
|
+
import { AMPLITUDE_SERVER_URL, AMPLITUDE_BATCH_SERVER_URL, EU_AMPLITUDE_SERVER_URL, EU_AMPLITUDE_BATCH_SERVER_URL, } from './constants';
|
|
4
|
+
import { Logger } from './logger';
|
|
5
|
+
var DEFAULT_INSTANCE = 'default';
|
|
6
|
+
var instances = {};
|
|
7
|
+
export var serverUrls = (_a = {},
|
|
8
|
+
_a[ServerZone.US] = function (useBatch) { return (useBatch ? AMPLITUDE_BATCH_SERVER_URL : AMPLITUDE_SERVER_URL); },
|
|
9
|
+
_a[ServerZone.EU] = function (useBatch) { return (useBatch ? EU_AMPLITUDE_BATCH_SERVER_URL : EU_AMPLITUDE_SERVER_URL); },
|
|
10
|
+
_a);
|
|
11
|
+
export var defaultConfig = {
|
|
12
|
+
flushMaxRetries: 5,
|
|
13
|
+
flushQueueSize: 10,
|
|
14
|
+
flushIntervalMillis: 1000,
|
|
15
|
+
logLevel: LogLevel.Warn,
|
|
16
|
+
loggerProvider: new Logger(),
|
|
17
|
+
saveEvents: true,
|
|
18
|
+
optOut: false,
|
|
19
|
+
serverUrl: AMPLITUDE_SERVER_URL,
|
|
20
|
+
serverZone: ServerZone.US,
|
|
21
|
+
useBatch: false,
|
|
22
|
+
};
|
|
23
|
+
var Config = /** @class */ (function () {
|
|
24
|
+
function Config(options) {
|
|
25
|
+
var _a, _b, _c;
|
|
26
|
+
this.apiKey = options.apiKey;
|
|
27
|
+
this.userId = options.userId;
|
|
28
|
+
this.deviceId = options.deviceId;
|
|
29
|
+
this.sessionId = options.sessionId;
|
|
30
|
+
this.flushIntervalMillis = options.flushIntervalMillis || defaultConfig.flushIntervalMillis;
|
|
31
|
+
this.flushMaxRetries = options.flushMaxRetries || defaultConfig.flushMaxRetries;
|
|
32
|
+
this.flushQueueSize = options.flushQueueSize || defaultConfig.flushQueueSize;
|
|
33
|
+
this.loggerProvider = options.loggerProvider || defaultConfig.loggerProvider;
|
|
34
|
+
this.logLevel = options.logLevel || defaultConfig.logLevel;
|
|
35
|
+
this.partnerId = options.partnerId;
|
|
36
|
+
this.plugins = [];
|
|
37
|
+
this.optOut = (_a = options.optOut) !== null && _a !== void 0 ? _a : defaultConfig.optOut;
|
|
38
|
+
this.saveEvents = (_b = options.saveEvents) !== null && _b !== void 0 ? _b : defaultConfig.saveEvents;
|
|
39
|
+
this.serverUrl = options.serverUrl;
|
|
40
|
+
this.serverZone = options.serverZone || defaultConfig.serverZone;
|
|
41
|
+
this.storageProvider = options.storageProvider;
|
|
42
|
+
this.transportProvider = options.transportProvider;
|
|
43
|
+
this.useBatch = (_c = options.useBatch) !== null && _c !== void 0 ? _c : defaultConfig.useBatch;
|
|
44
|
+
this.loggerProvider.enable(this.logLevel);
|
|
45
|
+
configApiHost(this);
|
|
46
|
+
}
|
|
47
|
+
return Config;
|
|
48
|
+
}());
|
|
49
|
+
export { Config };
|
|
50
|
+
export var createConfig = function (config) {
|
|
51
|
+
// If config for an instance already exists, perform Object.assign() to reuse reference
|
|
52
|
+
// to config object. This is useful when config object reference is used in plugins
|
|
53
|
+
instances[DEFAULT_INSTANCE] = instances[DEFAULT_INSTANCE]
|
|
54
|
+
? Object.assign(instances[DEFAULT_INSTANCE], config)
|
|
55
|
+
: config;
|
|
56
|
+
return instances[DEFAULT_INSTANCE];
|
|
57
|
+
};
|
|
58
|
+
export var getConfig = function () {
|
|
59
|
+
return instances[DEFAULT_INSTANCE];
|
|
60
|
+
};
|
|
61
|
+
export var resetInstances = function () {
|
|
62
|
+
for (var name in instances) {
|
|
63
|
+
delete instances[name];
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
export var getApiHost = function (config) {
|
|
67
|
+
return configApiHost(config);
|
|
68
|
+
};
|
|
69
|
+
var configApiHost = function (config) {
|
|
70
|
+
if (!config.serverUrl) {
|
|
71
|
+
// Log a warning if server zone is neither US nor EU
|
|
72
|
+
if (![ServerZone.US, ServerZone.EU].includes(config.serverZone)) {
|
|
73
|
+
config.loggerProvider.warn("Unknown server zone \"".concat(config.serverZone, "\". Replaced with US server zone"));
|
|
74
|
+
config.serverZone = ServerZone.US;
|
|
75
|
+
}
|
|
76
|
+
config.serverUrl = serverUrls[config.serverZone](config.useBatch);
|
|
77
|
+
}
|
|
78
|
+
return config.serverUrl;
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Event,\n Config as IConfig,\n Logger as ILogger,\n InitOptions,\n LogLevel,\n Storage,\n Transport,\n Plugin,\n ServerZone,\n} from '@amplitude/analytics-types';\nimport {\n AMPLITUDE_SERVER_URL,\n AMPLITUDE_BATCH_SERVER_URL,\n EU_AMPLITUDE_SERVER_URL,\n EU_AMPLITUDE_BATCH_SERVER_URL,\n} from './constants';\n\nimport { Logger } from './logger';\n\nconst DEFAULT_INSTANCE = 'default';\nconst instances: Record<string, IConfig> = {};\n\nexport const serverUrls = {\n [ServerZone.US]: (useBatch: boolean) => (useBatch ? AMPLITUDE_BATCH_SERVER_URL : AMPLITUDE_SERVER_URL),\n [ServerZone.EU]: (useBatch: boolean) => (useBatch ? EU_AMPLITUDE_BATCH_SERVER_URL : EU_AMPLITUDE_SERVER_URL),\n};\n\nexport const defaultConfig = {\n flushMaxRetries: 5,\n flushQueueSize: 10,\n flushIntervalMillis: 1000,\n logLevel: LogLevel.Warn,\n loggerProvider: new Logger(),\n saveEvents: true,\n optOut: false,\n serverUrl: AMPLITUDE_SERVER_URL,\n serverZone: ServerZone.US,\n useBatch: false,\n};\n\nexport class Config implements IConfig {\n apiKey: string;\n userId?: string;\n deviceId?: string;\n sessionId?: number;\n flushIntervalMillis: number;\n flushMaxRetries: number;\n flushQueueSize: number;\n loggerProvider: ILogger;\n logLevel: LogLevel;\n partnerId?: string;\n plugins: Plugin[];\n optOut: boolean;\n saveEvents: boolean;\n serverUrl: string | undefined;\n serverZone: ServerZone;\n transportProvider: Transport;\n storageProvider: Storage<Event[]>;\n useBatch: boolean;\n\n constructor(options: InitOptions<IConfig>) {\n this.apiKey = options.apiKey;\n this.userId = options.userId;\n this.deviceId = options.deviceId;\n this.sessionId = options.sessionId;\n this.flushIntervalMillis = options.flushIntervalMillis || defaultConfig.flushIntervalMillis;\n this.flushMaxRetries = options.flushMaxRetries || defaultConfig.flushMaxRetries;\n this.flushQueueSize = options.flushQueueSize || defaultConfig.flushQueueSize;\n this.loggerProvider = options.loggerProvider || defaultConfig.loggerProvider;\n this.logLevel = options.logLevel || defaultConfig.logLevel;\n this.partnerId = options.partnerId;\n this.plugins = [];\n this.optOut = options.optOut ?? defaultConfig.optOut;\n this.saveEvents = options.saveEvents ?? defaultConfig.saveEvents;\n this.serverUrl = options.serverUrl;\n this.serverZone = options.serverZone || defaultConfig.serverZone;\n this.storageProvider = options.storageProvider;\n this.transportProvider = options.transportProvider;\n this.useBatch = options.useBatch ?? defaultConfig.useBatch;\n\n this.loggerProvider.enable(this.logLevel);\n\n configApiHost(this);\n }\n}\n\nexport const createConfig = (config: IConfig) => {\n // If config for an instance already exists, perform Object.assign() to reuse reference\n // to config object. This is useful when config object reference is used in plugins\n instances[DEFAULT_INSTANCE] = instances[DEFAULT_INSTANCE]\n ? Object.assign(instances[DEFAULT_INSTANCE], config)\n : config;\n return instances[DEFAULT_INSTANCE];\n};\n\nexport const getConfig = () => {\n return instances[DEFAULT_INSTANCE];\n};\n\nexport const resetInstances = () => {\n for (const name in instances) {\n delete instances[name];\n }\n};\n\nexport const getApiHost = (config: Config | IConfig) => {\n return configApiHost(config);\n};\n\nconst configApiHost = (config: Config | IConfig) => {\n if (!config.serverUrl) {\n // Log a warning if server zone is neither US nor EU\n if (![ServerZone.US, ServerZone.EU].includes(config.serverZone)) {\n config.loggerProvider.warn(`Unknown server zone \"${config.serverZone}\". Replaced with US server zone`);\n config.serverZone = ServerZone.US;\n }\n config.serverUrl = serverUrls[config.serverZone](config.useBatch);\n }\n return config.serverUrl;\n};\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const UNSET_VALUE = "-";
|
|
2
|
+
export declare const AMPLITUDE_PREFIX = "AMP";
|
|
3
|
+
export declare const STORAGE_PREFIX: string;
|
|
4
|
+
export declare const AMPLITUDE_SERVER_URL = "https://api2.amplitude.com/2/httpapi";
|
|
5
|
+
export declare const EU_AMPLITUDE_SERVER_URL = "https://api.eu.amplitude.com/2/httpapi";
|
|
6
|
+
export declare const AMPLITUDE_BATCH_SERVER_URL = "https://api2.amplitude.com/batch";
|
|
7
|
+
export declare const EU_AMPLITUDE_BATCH_SERVER_URL = "https://api.eu.amplitude.com/batch";
|
|
8
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,eAAO,MAAM,cAAc,QAA+B,CAAC;AAC3D,eAAO,MAAM,oBAAoB,yCAAyC,CAAC;AAC3E,eAAO,MAAM,uBAAuB,2CAA2C,CAAC;AAChF,eAAO,MAAM,0BAA0B,qCAAqC,CAAC;AAC7E,eAAO,MAAM,6BAA6B,uCAAuC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export var UNSET_VALUE = '-';
|
|
2
|
+
export var AMPLITUDE_PREFIX = 'AMP';
|
|
3
|
+
export var STORAGE_PREFIX = "".concat(AMPLITUDE_PREFIX, "_unsent");
|
|
4
|
+
export var AMPLITUDE_SERVER_URL = 'https://api2.amplitude.com/2/httpapi';
|
|
5
|
+
export var EU_AMPLITUDE_SERVER_URL = 'https://api.eu.amplitude.com/2/httpapi';
|
|
6
|
+
export var AMPLITUDE_BATCH_SERVER_URL = 'https://api2.amplitude.com/batch';
|
|
7
|
+
export var EU_AMPLITUDE_BATCH_SERVER_URL = 'https://api.eu.amplitude.com/batch';
|
|
8
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,WAAW,GAAG,GAAG,CAAC;AAC/B,MAAM,CAAC,IAAM,gBAAgB,GAAG,KAAK,CAAC;AACtC,MAAM,CAAC,IAAM,cAAc,GAAG,UAAG,gBAAgB,YAAS,CAAC;AAC3D,MAAM,CAAC,IAAM,oBAAoB,GAAG,sCAAsC,CAAC;AAC3E,MAAM,CAAC,IAAM,uBAAuB,GAAG,wCAAwC,CAAC;AAChF,MAAM,CAAC,IAAM,0BAA0B,GAAG,kCAAkC,CAAC;AAC7E,MAAM,CAAC,IAAM,6BAA6B,GAAG,oCAAoC,CAAC","sourcesContent":["export const UNSET_VALUE = '-';\nexport const AMPLITUDE_PREFIX = 'AMP';\nexport const STORAGE_PREFIX = `${AMPLITUDE_PREFIX}_unsent`;\nexport const AMPLITUDE_SERVER_URL = 'https://api2.amplitude.com/2/httpapi';\nexport const EU_AMPLITUDE_SERVER_URL = 'https://api.eu.amplitude.com/2/httpapi';\nexport const AMPLITUDE_BATCH_SERVER_URL = 'https://api2.amplitude.com/batch';\nexport const EU_AMPLITUDE_BATCH_SERVER_URL = 'https://api.eu.amplitude.com/batch';\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Config, Event, EventOptions, Identify, Plugin, Revenue } from '@amplitude/analytics-types';
|
|
2
|
+
export declare const init: (config: Config) => Config;
|
|
3
|
+
export declare const track: (eventType: string, eventProperties?: Record<string, any> | undefined, eventOptions?: EventOptions | undefined) => Promise<import("@amplitude/analytics-types").Result>;
|
|
4
|
+
export declare const logEvent: (eventType: string, eventProperties?: Record<string, any> | undefined, eventOptions?: EventOptions | undefined) => Promise<import("@amplitude/analytics-types").Result>;
|
|
5
|
+
export declare const identify: (userId: string | undefined, deviceId: string | undefined, identify: Identify, eventOptions?: EventOptions | undefined) => Promise<import("@amplitude/analytics-types").Result>;
|
|
6
|
+
export declare const groupIdentify: (userId: string | undefined, deviceId: string | undefined, groupType: string, groupName: string | string[], identify: Identify, eventOptions?: EventOptions | undefined) => Promise<import("@amplitude/analytics-types").Result>;
|
|
7
|
+
export declare const setGroup: (groupType: string, groupName: string | string[]) => Promise<import("@amplitude/analytics-types").Result>;
|
|
8
|
+
export declare const revenue: (revenue: Revenue, eventOptions?: EventOptions | undefined) => Promise<import("@amplitude/analytics-types").Result>;
|
|
9
|
+
export declare const add: (plugin: Plugin) => Promise<void>;
|
|
10
|
+
export declare const remove: (pluginName: string) => Promise<void>;
|
|
11
|
+
export declare const dispatch: (event: Event, config: Config) => Promise<import("@amplitude/analytics-types").Result>;
|
|
12
|
+
export declare const setOptOut: (optOut: boolean) => void;
|
|
13
|
+
//# sourceMappingURL=core-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-client.d.ts","sourceRoot":"","sources":["../../src/core-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAYpG,eAAO,MAAM,IAAI,WAAY,MAAM,WAElC,CAAC;AAEF,eAAO,MAAM,KAAK,cAAe,MAAM,qJAItC,CAAC;AACF,eAAO,MAAM,QAAQ,cALY,MAAM,qJAKV,CAAC;AAE9B,eAAO,MAAM,QAAQ,WACX,MAAM,GAAG,SAAS,YAChB,MAAM,GAAG,SAAS,YAClB,QAAQ,kGAMnB,CAAC;AAEF,eAAO,MAAM,aAAa,WAChB,MAAM,GAAG,SAAS,YAChB,MAAM,GAAG,SAAS,aACjB,MAAM,aACN,MAAM,GAAG,MAAM,EAAE,YAClB,QAAQ,kGAMnB,CAAC;AAEF,eAAO,MAAM,QAAQ,cAAe,MAAM,aAAa,MAAM,GAAG,MAAM,EAAE,yDAIvE,CAAC;AAEF,eAAO,MAAM,OAAO,YAAa,OAAO,kGAIvC,CAAC;AAEF,eAAO,MAAM,GAAG,WAAkB,MAAM,kBAGvC,CAAC;AAEF,eAAO,MAAM,MAAM,eAAsB,MAAM,kBAG9C,CAAC;AAEF,eAAO,MAAM,QAAQ,UAAiB,KAAK,UAAU,MAAM,yDAc1D,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,OAAO,SAGxC,CAAC"}
|