@super-protocol/sdk-js 2.0.6-beta.6 → 2.1.1-beta.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.
@@ -0,0 +1,15 @@
1
+ import { Config, TrackEventsProp, TrackEventProp } from './types';
2
+ export default class Analytics<TransportResponse> {
3
+ private readonly transport;
4
+ private readonly apiUrl;
5
+ private readonly apiKey;
6
+ private readonly eventProvider;
7
+ private readonly logger?;
8
+ constructor(config: Config<TransportResponse>);
9
+ private getEvent;
10
+ private catchEvent;
11
+ trackEvent(props: TrackEventProp): Promise<TransportResponse>;
12
+ trackEventCatched(props: TrackEventProp): Promise<TransportResponse | null>;
13
+ trackEvents(props: TrackEventsProp): Promise<TransportResponse>;
14
+ trackEventsCatched(props: TrackEventsProp): Promise<TransportResponse | null>;
15
+ }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const AxiosTransport_1 = __importDefault(require("./transports/AxiosTransport"));
16
+ const logger_1 = __importDefault(require("../logger"));
17
+ class Analytics {
18
+ constructor(config) {
19
+ const { apiUrl, apiKey, transport, eventProvider, showLogs } = config || {};
20
+ this.apiUrl = apiUrl;
21
+ this.apiKey = apiKey;
22
+ this.eventProvider = eventProvider;
23
+ this.logger = showLogs ? logger_1.default.child({ class: Analytics.name }) : null;
24
+ this.transport = transport || new AxiosTransport_1.default();
25
+ }
26
+ getEvent(eventName, eventProperties) {
27
+ if (!eventName) {
28
+ throw new Error('eventName required');
29
+ }
30
+ if (!this.apiUrl) {
31
+ throw new Error('Api url required');
32
+ }
33
+ if (!this.apiKey) {
34
+ throw new Error('Api key required');
35
+ }
36
+ return this.eventProvider.getEvent(eventName, eventProperties);
37
+ }
38
+ catchEvent(func) {
39
+ var _a;
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ try {
42
+ const result = yield func();
43
+ return result;
44
+ }
45
+ catch (err) {
46
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.error({ err }, 'Analytics event not sent');
47
+ return null;
48
+ }
49
+ });
50
+ }
51
+ trackEvent(props) {
52
+ const { eventName, eventProperties } = props;
53
+ const event = this.getEvent(eventName, eventProperties);
54
+ return this.transport.send(this.apiUrl, {
55
+ events: [event],
56
+ apiKey: this.apiKey,
57
+ });
58
+ }
59
+ trackEventCatched(props) {
60
+ return this.catchEvent(() => this.trackEvent(props));
61
+ }
62
+ trackEvents(props) {
63
+ const { events } = props;
64
+ return this.transport.send(this.apiUrl, {
65
+ events: events.map(({ eventName, eventProperties }) => this.getEvent(eventName, eventProperties)),
66
+ apiKey: this.apiKey,
67
+ });
68
+ }
69
+ trackEventsCatched(props) {
70
+ return this.catchEvent(() => this.trackEvents(props));
71
+ }
72
+ }
73
+ exports.default = Analytics;
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5hbHl0aWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FuYWx5dGljcy9BbmFseXRpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpRkFBeUQ7QUFHekQsdURBQTJDO0FBRTNDLE1BQXFCLFNBQVM7SUFPNUIsWUFBWSxNQUFpQztRQUMzQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDNUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDeEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLElBQUksSUFBSSx3QkFBYyxFQUFxQixDQUFDO0lBQ3hFLENBQUM7SUFFTyxRQUFRLENBQUMsU0FBaUIsRUFBRSxlQUFpQztRQUNuRSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVhLFVBQVUsQ0FDdEIsSUFBNkM7OztZQUU3QyxJQUFJO2dCQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDWixNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLDBCQUEwQixDQUFDLENBQUM7Z0JBQ3hELE9BQU8sSUFBSSxDQUFDO2FBQ2I7O0tBQ0Y7SUFFTSxVQUFVLENBQUMsS0FBcUI7UUFDckMsTUFBTSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3RDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0saUJBQWlCLENBQUMsS0FBcUI7UUFDNUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQXNCO1FBQ3ZDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3RDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxDQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FDMUM7WUFDRCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQXNCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztDQUNGO0FBbkVELDRCQW1FQyJ9
@@ -0,0 +1,7 @@
1
+ export declare class AnalyticsError extends Error {
2
+ readonly code: number | null;
3
+ constructor({ code, message }: {
4
+ code: number | null;
5
+ message: string;
6
+ });
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AnalyticsError = void 0;
4
+ class AnalyticsError extends Error {
5
+ constructor({ code, message }) {
6
+ super(message);
7
+ this.code = code;
8
+ }
9
+ }
10
+ exports.AnalyticsError = AnalyticsError;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5hbHl0aWNzRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYW5hbHl0aWNzL0FuYWx5dGljc0Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQWEsY0FBZSxTQUFRLEtBQUs7SUFFdkMsWUFBWSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQTRDO1FBQ3JFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQU5ELHdDQU1DIn0=
@@ -0,0 +1,18 @@
1
+ import EventProvider from './EventProvider';
2
+ export interface BrowserEventProviderProp {
3
+ userId: string;
4
+ deviceId: string;
5
+ }
6
+ export default class BrowserEventProvider extends EventProvider {
7
+ protected readonly userId: string;
8
+ protected readonly language: string;
9
+ protected readonly date: string;
10
+ protected readonly platform: string;
11
+ protected readonly osName: string;
12
+ protected readonly engine: string;
13
+ protected readonly engineVersion: string;
14
+ protected readonly deviceId: string;
15
+ constructor(event: BrowserEventProviderProp);
16
+ private getLanguage;
17
+ private getDate;
18
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ua_parser_js_1 = __importDefault(require("ua-parser-js"));
7
+ const EventProvider_1 = __importDefault(require("./EventProvider"));
8
+ class BrowserEventProvider extends EventProvider_1.default {
9
+ constructor(event) {
10
+ var _a, _b, _c;
11
+ super();
12
+ const { userId, deviceId } = event;
13
+ const userAgent = new ua_parser_js_1.default(navigator === null || navigator === void 0 ? void 0 : navigator.userAgent).getResult();
14
+ this.userId = userId;
15
+ this.deviceId = deviceId;
16
+ this.language = this.getLanguage();
17
+ this.date = this.getDate();
18
+ this.platform = 'web';
19
+ this.osName = ((_a = userAgent === null || userAgent === void 0 ? void 0 : userAgent.os) === null || _a === void 0 ? void 0 : _a.name) || '';
20
+ this.engineVersion = ((_b = userAgent === null || userAgent === void 0 ? void 0 : userAgent.browser) === null || _b === void 0 ? void 0 : _b.version) || '';
21
+ this.engine = ((_c = userAgent === null || userAgent === void 0 ? void 0 : userAgent.browser) === null || _c === void 0 ? void 0 : _c.name) || '';
22
+ }
23
+ getLanguage() {
24
+ var _a;
25
+ return ((typeof navigator !== 'undefined' && (((_a = navigator === null || navigator === void 0 ? void 0 : navigator.languages) === null || _a === void 0 ? void 0 : _a[0]) || navigator.language)) || '');
26
+ }
27
+ getDate() {
28
+ return new Date().toISOString();
29
+ }
30
+ }
31
+ exports.default = BrowserEventProvider;
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJvd3NlckV2ZW50UHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYW5hbHl0aWNzL2V2ZW50UHJvdmlkZXJzL0Jyb3dzZXJFdmVudFByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0VBQW9DO0FBQ3BDLG9FQUE0QztBQU81QyxNQUFxQixvQkFBcUIsU0FBUSx1QkFBYTtJQVU3RCxZQUFZLEtBQStCOztRQUN6QyxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ25DLE1BQU0sU0FBUyxHQUFHLElBQUksc0JBQVEsQ0FBQyxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFBLE1BQUEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLEVBQUUsMENBQUUsSUFBSSxLQUFJLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUEsTUFBQSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsT0FBTywwQ0FBRSxPQUFPLEtBQUksRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQSxNQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxPQUFPLDBDQUFFLElBQUksS0FBSSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVPLFdBQVc7O1FBQ2pCLE9BQU8sQ0FDTCxDQUFDLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxDQUFDLENBQUEsTUFBQSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsU0FBUywwQ0FBRyxDQUFDLENBQUMsS0FBSSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQzlGLENBQUM7SUFDSixDQUFDO0lBRU8sT0FBTztRQUNiLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFqQ0QsdUNBaUNDIn0=
@@ -0,0 +1,24 @@
1
+ export interface Event {
2
+ userId: string;
3
+ eventName: string;
4
+ deviceId: string;
5
+ date: string;
6
+ platform: string;
7
+ osName: string;
8
+ engineVersion: string;
9
+ engine: string;
10
+ language: string;
11
+ eventProperties?: string;
12
+ }
13
+ export default abstract class EventProvider {
14
+ protected abstract userId: string;
15
+ protected abstract language: string;
16
+ protected abstract date: string;
17
+ protected abstract platform: string;
18
+ protected abstract osName: string;
19
+ protected abstract engine: string;
20
+ protected abstract engineVersion: string;
21
+ protected abstract deviceId: string;
22
+ protected getEventProperties(eventProperties?: string | object): string | undefined;
23
+ getEvent(eventName: string, eventProperties?: string | object): Event;
24
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class EventProvider {
4
+ getEventProperties(eventProperties) {
5
+ return eventProperties && typeof eventProperties !== 'string'
6
+ ? JSON.stringify(eventProperties)
7
+ : eventProperties;
8
+ }
9
+ getEvent(eventName, eventProperties) {
10
+ return Object.assign({ userId: this.userId, eventName, language: this.language, date: this.date, platform: this.platform, osName: this.osName, engineVersion: this.engineVersion, engine: this.engine, deviceId: this.deviceId }, (eventProperties ? { eventProperties: this.getEventProperties(eventProperties) } : {}));
11
+ }
12
+ }
13
+ exports.default = EventProvider;
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hbmFseXRpY3MvZXZlbnRQcm92aWRlcnMvRXZlbnRQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLE1BQThCLGFBQWE7SUFVL0Isa0JBQWtCLENBQUMsZUFBaUM7UUFDNUQsT0FBTyxlQUFlLElBQUksT0FBTyxlQUFlLEtBQUssUUFBUTtZQUMzRCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUM7WUFDakMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUN0QixDQUFDO0lBRU0sUUFBUSxDQUFDLFNBQWlCLEVBQUUsZUFBaUM7UUFDbEUsdUJBQ0UsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQ25CLFNBQVMsRUFDVCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUNuQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFDakMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUNwQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUN6RjtJQUNKLENBQUM7Q0FDRjtBQTlCRCxnQ0E4QkMifQ==
@@ -0,0 +1,22 @@
1
+ import EventProvider from './EventProvider';
2
+ export interface NodeEventProviderProp {
3
+ userId: string;
4
+ platform: string;
5
+ deviceId?: string;
6
+ }
7
+ export default class NodeEventProvider extends EventProvider {
8
+ protected readonly userId: string;
9
+ protected readonly language: string;
10
+ protected readonly date: string;
11
+ protected readonly platform: string;
12
+ protected readonly osName: string;
13
+ protected readonly engine: string;
14
+ protected readonly engineVersion: string;
15
+ protected readonly deviceId: string;
16
+ constructor(event: NodeEventProviderProp);
17
+ private getOsName;
18
+ private getEngineVersion;
19
+ private getDeviceId;
20
+ private getLanguage;
21
+ private getDate;
22
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const uuid_1 = require("uuid");
7
+ const EventProvider_1 = __importDefault(require("./EventProvider"));
8
+ class NodeEventProvider extends EventProvider_1.default {
9
+ constructor(event) {
10
+ super();
11
+ const { userId, deviceId, platform } = event;
12
+ this.userId = userId;
13
+ this.language = this.getLanguage();
14
+ this.date = this.getDate();
15
+ this.osName = this.getOsName();
16
+ this.engine = 'node';
17
+ this.platform = platform;
18
+ this.engineVersion = this.getEngineVersion();
19
+ this.deviceId = deviceId || this.getDeviceId();
20
+ }
21
+ getOsName() {
22
+ switch (process.platform) {
23
+ case 'darwin':
24
+ return 'Mac OS';
25
+ case 'linux':
26
+ return 'Linux';
27
+ case 'win32':
28
+ return 'Windows';
29
+ default:
30
+ return process.platform;
31
+ }
32
+ }
33
+ getEngineVersion() {
34
+ return process.version;
35
+ }
36
+ getDeviceId() {
37
+ const UUID_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
38
+ return (0, uuid_1.v5)(this.engineVersion + this.platform + this.osName, UUID_NAMESPACE);
39
+ }
40
+ getLanguage() {
41
+ return Intl.DateTimeFormat().resolvedOptions().locale;
42
+ }
43
+ getDate() {
44
+ return new Date().toISOString();
45
+ }
46
+ }
47
+ exports.default = NodeEventProvider;
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZUV2ZW50UHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYW5hbHl0aWNzL2V2ZW50UHJvdmlkZXJzL05vZGVFdmVudFByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQW9DO0FBQ3BDLG9FQUE0QztBQVE1QyxNQUFxQixpQkFBa0IsU0FBUSx1QkFBYTtJQVUxRCxZQUFZLEtBQTRCO1FBQ3RDLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFTyxTQUFTO1FBQ2YsUUFBUSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3hCLEtBQUssUUFBUTtnQkFDWCxPQUFPLFFBQVEsQ0FBQztZQUNsQixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxPQUFPLENBQUM7WUFDakIsS0FBSyxPQUFPO2dCQUNWLE9BQU8sU0FBUyxDQUFDO1lBQ25CO2dCQUNFLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sY0FBYyxHQUFHLHNDQUFzQyxDQUFDO1FBQzlELE9BQU8sSUFBQSxTQUFNLEVBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVPLFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ3hELENBQUM7SUFFTyxPQUFPO1FBQ2IsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FDRjtBQXBERCxvQ0FvREMifQ==
@@ -0,0 +1,4 @@
1
+ import { Transport, AnalyticsEvent } from '../types';
2
+ export default class AxiosTransport<Response> implements Transport<Response> {
3
+ send(serverUrl: string, payload: AnalyticsEvent): Promise<Response>;
4
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const axios_1 = __importDefault(require("axios"));
16
+ const AnalyticsError_1 = require("../AnalyticsError");
17
+ class AxiosTransport {
18
+ send(serverUrl, payload) {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ try {
21
+ const config = {
22
+ url: serverUrl,
23
+ method: 'post',
24
+ headers: {
25
+ 'Content-Type': 'application/json',
26
+ Accept: '*/*',
27
+ },
28
+ data: payload,
29
+ };
30
+ const response = yield (0, axios_1.default)(config);
31
+ if (response.status > 299) {
32
+ throw new AnalyticsError_1.AnalyticsError({ code: response.status, message: response.statusText });
33
+ }
34
+ return response.data;
35
+ }
36
+ catch (e) {
37
+ throw new AnalyticsError_1.AnalyticsError({ code: null, message: e === null || e === void 0 ? void 0 : e.message });
38
+ }
39
+ });
40
+ }
41
+ }
42
+ exports.default = AxiosTransport;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXhpb3NUcmFuc3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYW5hbHl0aWNzL3RyYW5zcG9ydHMvQXhpb3NUcmFuc3BvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBa0Q7QUFDbEQsc0RBQW1EO0FBR25ELE1BQXFCLGNBQWM7SUFDM0IsSUFBSSxDQUFDLFNBQWlCLEVBQUUsT0FBdUI7O1lBQ25ELElBQUk7Z0JBQ0YsTUFBTSxNQUFNLEdBQXVCO29CQUNqQyxHQUFHLEVBQUUsU0FBUztvQkFDZCxNQUFNLEVBQUUsTUFBTTtvQkFDZCxPQUFPLEVBQUU7d0JBQ1AsY0FBYyxFQUFFLGtCQUFrQjt3QkFDbEMsTUFBTSxFQUFFLEtBQUs7cUJBQ2Q7b0JBQ0QsSUFBSSxFQUFFLE9BQU87aUJBQ2QsQ0FBQztnQkFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsZUFBSyxFQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO29CQUN6QixNQUFNLElBQUksK0JBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztpQkFDbkY7Z0JBQ0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO2FBQ3RCO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxJQUFJLCtCQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRyxDQUFXLGFBQVgsQ0FBQyx1QkFBRCxDQUFDLENBQVksT0FBTyxFQUFFLENBQUMsQ0FBQzthQUMxRTtRQUNILENBQUM7S0FBQTtDQUNGO0FBckJELGlDQXFCQyJ9
@@ -0,0 +1,4 @@
1
+ import { Transport, AnalyticsEvent } from '../types';
2
+ export default class FetchTransport<Response> implements Transport<Response> {
3
+ send(serverUrl: string, payload: AnalyticsEvent): Promise<Response>;
4
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const AnalyticsError_1 = require("../AnalyticsError");
13
+ class FetchTransport {
14
+ send(serverUrl, payload) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ if (typeof fetch === 'undefined') {
17
+ throw new AnalyticsError_1.AnalyticsError({ code: null, message: 'fetch is not supported' });
18
+ }
19
+ try {
20
+ const options = {
21
+ headers: {
22
+ 'Content-Type': 'application/json',
23
+ Accept: '*/*',
24
+ },
25
+ body: JSON.stringify(payload),
26
+ method: 'POST',
27
+ };
28
+ const response = yield fetch(serverUrl, options);
29
+ const result = yield response.json();
30
+ if (response.ok) {
31
+ return result;
32
+ }
33
+ throw new AnalyticsError_1.AnalyticsError({ code: response.status, message: result === null || result === void 0 ? void 0 : result.error });
34
+ }
35
+ catch (e) {
36
+ throw new AnalyticsError_1.AnalyticsError({ code: null, message: e === null || e === void 0 ? void 0 : e.message });
37
+ }
38
+ });
39
+ }
40
+ }
41
+ exports.default = FetchTransport;
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmV0Y2hUcmFuc3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYW5hbHl0aWNzL3RyYW5zcG9ydHMvRmV0Y2hUcmFuc3BvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxzREFBbUQ7QUFHbkQsTUFBcUIsY0FBYztJQUMzQixJQUFJLENBQUMsU0FBaUIsRUFBRSxPQUF1Qjs7WUFDbkQsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXLEVBQUU7Z0JBQ2hDLE1BQU0sSUFBSSwrQkFBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO2FBQzdFO1lBQ0QsSUFBSTtnQkFDRixNQUFNLE9BQU8sR0FBZ0I7b0JBQzNCLE9BQU8sRUFBRTt3QkFDUCxjQUFjLEVBQUUsa0JBQWtCO3dCQUNsQyxNQUFNLEVBQUUsS0FBSztxQkFDZDtvQkFDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7b0JBQzdCLE1BQU0sRUFBRSxNQUFNO2lCQUNmLENBQUM7Z0JBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNqRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxRQUFRLENBQUMsRUFBRSxFQUFFO29CQUNmLE9BQU8sTUFBTSxDQUFDO2lCQUNmO2dCQUNELE1BQU0sSUFBSSwrQkFBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQzdFO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxJQUFJLCtCQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRyxDQUFXLGFBQVgsQ0FBQyx1QkFBRCxDQUFDLENBQVksT0FBTyxFQUFFLENBQUMsQ0FBQzthQUMxRTtRQUNILENBQUM7S0FBQTtDQUNGO0FBeEJELGlDQXdCQyJ9
@@ -0,0 +1,22 @@
1
+ import EventProvider, { Event } from './eventProviders/EventProvider';
2
+ export interface AnalyticsEvent {
3
+ events: Event[];
4
+ apiKey: string;
5
+ }
6
+ export interface Transport<Response> {
7
+ send(serverUrl: string, payload: AnalyticsEvent): Promise<Response>;
8
+ }
9
+ export interface Config<TransportResponse> {
10
+ apiUrl: string;
11
+ apiKey: string;
12
+ transport?: Transport<TransportResponse>;
13
+ eventProvider: EventProvider;
14
+ showLogs?: boolean;
15
+ }
16
+ export interface TrackEventProp {
17
+ eventName: string;
18
+ eventProperties?: string | object;
19
+ }
20
+ export interface TrackEventsProp {
21
+ events: TrackEventProp[];
22
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYW5hbHl0aWNzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -1236,7 +1236,7 @@ export declare const abi: readonly [{
1236
1236
  readonly type: "bool";
1237
1237
  }];
1238
1238
  readonly internalType: "struct Tcb";
1239
- readonly name: "";
1239
+ readonly name: "response";
1240
1240
  readonly type: "tuple";
1241
1241
  }];
1242
1242
  readonly stateMutability: "view";
@@ -1967,6 +1967,10 @@ export declare const abi: readonly [{
1967
1967
  readonly internalType: "uint64";
1968
1968
  readonly name: "diskUsage";
1969
1969
  readonly type: "uint64";
1970
+ }, {
1971
+ readonly internalType: "uint64";
1972
+ readonly name: "gpuCores";
1973
+ readonly type: "uint64";
1970
1974
  }];
1971
1975
  readonly internalType: "struct SlotInfo";
1972
1976
  readonly name: "slotInfo";
@@ -2165,6 +2169,10 @@ export declare const abi: readonly [{
2165
2169
  readonly internalType: "uint64";
2166
2170
  readonly name: "diskUsage";
2167
2171
  readonly type: "uint64";
2172
+ }, {
2173
+ readonly internalType: "uint64";
2174
+ readonly name: "gpuCores";
2175
+ readonly type: "uint64";
2168
2176
  }];
2169
2177
  readonly internalType: "struct SlotInfo";
2170
2178
  readonly name: "newSlotInfo";
@@ -2716,6 +2724,10 @@ export declare const abi: readonly [{
2716
2724
  readonly internalType: "uint64";
2717
2725
  readonly name: "diskUsage";
2718
2726
  readonly type: "uint64";
2727
+ }, {
2728
+ readonly internalType: "uint64";
2729
+ readonly name: "gpuCores";
2730
+ readonly type: "uint64";
2719
2731
  }];
2720
2732
  readonly internalType: "struct SlotInfo";
2721
2733
  readonly name: "";
@@ -4336,6 +4348,10 @@ export declare const abi: readonly [{
4336
4348
  readonly internalType: "uint64";
4337
4349
  readonly name: "diskUsage";
4338
4350
  readonly type: "uint64";
4351
+ }, {
4352
+ readonly internalType: "uint64";
4353
+ readonly name: "gpuCores";
4354
+ readonly type: "uint64";
4339
4355
  }];
4340
4356
  readonly internalType: "struct SlotInfo";
4341
4357
  readonly name: "";
@@ -5595,6 +5611,10 @@ export declare const abi: readonly [{
5595
5611
  readonly internalType: "uint64";
5596
5612
  readonly name: "diskUsage";
5597
5613
  readonly type: "uint64";
5614
+ }, {
5615
+ readonly internalType: "uint64";
5616
+ readonly name: "gpuCores";
5617
+ readonly type: "uint64";
5598
5618
  }];
5599
5619
  readonly internalType: "struct SlotInfo";
5600
5620
  readonly name: "info";
@@ -5678,6 +5698,10 @@ export declare const abi: readonly [{
5678
5698
  readonly internalType: "uint64";
5679
5699
  readonly name: "diskUsage";
5680
5700
  readonly type: "uint64";
5701
+ }, {
5702
+ readonly internalType: "uint64";
5703
+ readonly name: "gpuCores";
5704
+ readonly type: "uint64";
5681
5705
  }];
5682
5706
  readonly internalType: "struct SlotInfo";
5683
5707
  readonly name: "info";
@@ -5743,6 +5767,10 @@ export declare const abi: readonly [{
5743
5767
  readonly internalType: "uint64";
5744
5768
  readonly name: "diskUsage";
5745
5769
  readonly type: "uint64";
5770
+ }, {
5771
+ readonly internalType: "uint64";
5772
+ readonly name: "gpuCores";
5773
+ readonly type: "uint64";
5746
5774
  }];
5747
5775
  readonly internalType: "struct SlotInfo";
5748
5776
  readonly name: "info";
@@ -5839,6 +5867,10 @@ export declare const abi: readonly [{
5839
5867
  readonly internalType: "uint64";
5840
5868
  readonly name: "diskUsage";
5841
5869
  readonly type: "uint64";
5870
+ }, {
5871
+ readonly internalType: "uint64";
5872
+ readonly name: "gpuCores";
5873
+ readonly type: "uint64";
5842
5874
  }];
5843
5875
  readonly internalType: "struct SlotInfo";
5844
5876
  readonly name: "info";
@@ -6198,6 +6230,10 @@ export declare const abi: readonly [{
6198
6230
  readonly internalType: "uint64";
6199
6231
  readonly name: "diskUsage";
6200
6232
  readonly type: "uint64";
6233
+ }, {
6234
+ readonly internalType: "uint64";
6235
+ readonly name: "gpuCores";
6236
+ readonly type: "uint64";
6201
6237
  }];
6202
6238
  readonly internalType: "struct SlotInfo";
6203
6239
  readonly name: "info";
@@ -6294,6 +6330,10 @@ export declare const abi: readonly [{
6294
6330
  readonly internalType: "uint64";
6295
6331
  readonly name: "diskUsage";
6296
6332
  readonly type: "uint64";
6333
+ }, {
6334
+ readonly internalType: "uint64";
6335
+ readonly name: "gpuCores";
6336
+ readonly type: "uint64";
6297
6337
  }];
6298
6338
  readonly internalType: "struct SlotInfo";
6299
6339
  readonly name: "info";
@@ -6368,6 +6408,10 @@ export declare const abi: readonly [{
6368
6408
  readonly internalType: "uint64";
6369
6409
  readonly name: "diskUsage";
6370
6410
  readonly type: "uint64";
6411
+ }, {
6412
+ readonly internalType: "uint64";
6413
+ readonly name: "gpuCores";
6414
+ readonly type: "uint64";
6371
6415
  }];
6372
6416
  readonly internalType: "struct SlotInfo";
6373
6417
  readonly name: "info";
@@ -6473,6 +6517,10 @@ export declare const abi: readonly [{
6473
6517
  readonly internalType: "uint64";
6474
6518
  readonly name: "diskUsage";
6475
6519
  readonly type: "uint64";
6520
+ }, {
6521
+ readonly internalType: "uint64";
6522
+ readonly name: "gpuCores";
6523
+ readonly type: "uint64";
6476
6524
  }];
6477
6525
  readonly internalType: "struct SlotInfo";
6478
6526
  readonly name: "info";
@@ -7782,6 +7830,10 @@ export declare const abi: readonly [{
7782
7830
  readonly internalType: "uint64";
7783
7831
  readonly name: "diskUsage";
7784
7832
  readonly type: "uint64";
7833
+ }, {
7834
+ readonly internalType: "uint64";
7835
+ readonly name: "gpuCores";
7836
+ readonly type: "uint64";
7785
7837
  }];
7786
7838
  readonly internalType: "struct SlotInfo";
7787
7839
  readonly name: "";
@@ -8613,6 +8665,10 @@ export declare const abi: readonly [{
8613
8665
  readonly internalType: "uint64";
8614
8666
  readonly name: "diskUsage";
8615
8667
  readonly type: "uint64";
8668
+ }, {
8669
+ readonly internalType: "uint64";
8670
+ readonly name: "gpuCores";
8671
+ readonly type: "uint64";
8616
8672
  }];
8617
8673
  readonly internalType: "struct SlotInfo";
8618
8674
  readonly name: "";
@@ -9083,6 +9139,10 @@ export declare const abi: readonly [{
9083
9139
  readonly internalType: "uint64";
9084
9140
  readonly name: "diskUsage";
9085
9141
  readonly type: "uint64";
9142
+ }, {
9143
+ readonly internalType: "uint64";
9144
+ readonly name: "gpuCores";
9145
+ readonly type: "uint64";
9086
9146
  }];
9087
9147
  readonly internalType: "struct SlotInfo";
9088
9148
  readonly name: "info";
@@ -9144,6 +9204,10 @@ export declare const abi: readonly [{
9144
9204
  readonly internalType: "uint64";
9145
9205
  readonly name: "diskUsage";
9146
9206
  readonly type: "uint64";
9207
+ }, {
9208
+ readonly internalType: "uint64";
9209
+ readonly name: "gpuCores";
9210
+ readonly type: "uint64";
9147
9211
  }];
9148
9212
  readonly internalType: "struct SlotInfo";
9149
9213
  readonly name: "info";