fleek-track-analytics 0.0.8 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/TrackAnalytics.d.ts +12 -0
  2. package/dist/TrackAnalytics.js +54 -0
  3. package/dist/TrackAnalytics.js.map +1 -0
  4. package/dist/analytics-tool/lazy-load-tool.d.ts +2 -0
  5. package/dist/analytics-tool/lazy-load-tool.js +59 -0
  6. package/dist/analytics-tool/lazy-load-tool.js.map +1 -0
  7. package/dist/analytics-tool/react-native-segment.d.ts +2 -0
  8. package/dist/analytics-tool/react-native-segment.js +31 -0
  9. package/dist/analytics-tool/react-native-segment.js.map +1 -0
  10. package/dist/analytics-tool/types.d.ts +3 -0
  11. package/dist/analytics-tool/types.js +3 -0
  12. package/dist/analytics-tool/types.js.map +1 -0
  13. package/dist/analytics-tool/utils/getSegmentKey.d.ts +3 -0
  14. package/dist/analytics-tool/utils/getSegmentKey.js +7 -0
  15. package/dist/analytics-tool/utils/getSegmentKey.js.map +1 -0
  16. package/dist/analytics-tool/web-segment.d.ts +2 -0
  17. package/dist/analytics-tool/web-segment.js +23 -0
  18. package/dist/analytics-tool/web-segment.js.map +1 -0
  19. package/dist/constants.d.ts +4 -0
  20. package/dist/constants.js +8 -0
  21. package/dist/constants.js.map +1 -0
  22. package/dist/event-map/event-map.d.ts +25 -0
  23. package/dist/event-map/event-map.js +8 -0
  24. package/dist/event-map/event-map.js.map +1 -0
  25. package/dist/index.d.ts +2 -0
  26. package/dist/index.js +8 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/init/init.d.ts +2 -0
  29. package/dist/init/init.js +26 -0
  30. package/dist/init/init.js.map +1 -0
  31. package/dist/init/init.test.d.ts +1 -0
  32. package/dist/init/init.test.js +18 -0
  33. package/dist/init/init.test.js.map +1 -0
  34. package/dist/init/types.d.ts +31 -0
  35. package/dist/init/types.js +8 -0
  36. package/dist/init/types.js.map +1 -0
  37. package/dist/track-analytics/track-analytics.d.ts +13 -0
  38. package/dist/track-analytics/track-analytics.js +54 -0
  39. package/dist/track-analytics/track-analytics.js.map +1 -0
  40. package/dist/types.d.ts +8 -0
  41. package/dist/types.js +3 -0
  42. package/dist/types.js.map +1 -0
  43. package/package.json +1 -1
  44. package/tsconfig.json +2 -2
@@ -0,0 +1,12 @@
1
+ import { IAnalyticsInit } from './types';
2
+ import { IRNScreenParams, IWebScreenParams, tTrack } from './init/types';
3
+ export declare class TrackAnalytics {
4
+ private initParams;
5
+ private analyticsWrapper;
6
+ constructor(params: IAnalyticsInit);
7
+ initAnalytics: () => Promise<void>;
8
+ private checkInitDone;
9
+ track: tTrack;
10
+ identify: () => void;
11
+ screen: (params: IWebScreenParams | IRNScreenParams) => void;
12
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrackAnalytics = void 0;
4
+ const constants_1 = require("./constants");
5
+ const types_1 = require("./init/types");
6
+ const init_1 = require("./init/init");
7
+ class TrackAnalytics {
8
+ constructor(params) {
9
+ this.analyticsWrapper = null;
10
+ this.initAnalytics = async () => {
11
+ try {
12
+ this.analyticsWrapper = await (0, init_1.init)(this.initParams);
13
+ }
14
+ catch (e) {
15
+ throw new Error(constants_1.ERROR_MESSAGE.ANALYTICS_INIT_FAILED);
16
+ }
17
+ };
18
+ this.track = (type, params) => {
19
+ var _a;
20
+ if (this.checkInitDone()) {
21
+ (_a = this.analyticsWrapper) === null || _a === void 0 ? void 0 : _a.track(type, params);
22
+ }
23
+ };
24
+ this.identify = () => {
25
+ var _a;
26
+ if (this.checkInitDone()) {
27
+ (_a = this.analyticsWrapper) === null || _a === void 0 ? void 0 : _a.identify();
28
+ }
29
+ };
30
+ this.screen = (params) => {
31
+ var _a, _b;
32
+ if (this.checkInitDone()) {
33
+ if ((0, types_1.isScreenWeb)(params, this.initParams.platform)) {
34
+ (_a = this.analyticsWrapper) === null || _a === void 0 ? void 0 : _a.screen(params);
35
+ }
36
+ else {
37
+ (_b = this.analyticsWrapper) === null || _b === void 0 ? void 0 : _b.screen(params);
38
+ }
39
+ }
40
+ };
41
+ this.initParams = params;
42
+ }
43
+ checkInitDone() {
44
+ if (this.analyticsWrapper) {
45
+ return true;
46
+ }
47
+ else {
48
+ console.error(constants_1.ERROR_MESSAGE.ANALYTICS_CALLED_BEFORE_INIT);
49
+ return false;
50
+ }
51
+ }
52
+ }
53
+ exports.TrackAnalytics = TrackAnalytics;
54
+ //# sourceMappingURL=TrackAnalytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrackAnalytics.js","sourceRoot":"","sources":["../src/TrackAnalytics.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAE5C,wCAAyG;AACzG,sCAAmC;AAEnC,MAAa,cAAc;IAIzB,YAAY,MAAsB;QAF1B,qBAAgB,GAA6B,IAAI,CAAC;QAM1D,kBAAa,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,CAAC;gBACH,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,yBAAa,CAAC,qBAAqB,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC;QAWF,UAAK,GAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;;YAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzB,MAAA,IAAI,CAAC,gBAAgB,0CAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC;QAEF,aAAQ,GAAG,GAAG,EAAE;;YACd,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzB,MAAA,IAAI,CAAC,gBAAgB,0CAAE,QAAQ,EAAE,CAAC;YACpC,CAAC;QACH,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,MAA0C,EAAE,EAAE;;YACtD,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzB,IAAI,IAAA,mBAAW,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClD,MAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,MAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAxCA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC3B,CAAC;IAUO,aAAa;QACnB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,yBAAa,CAAC,4BAA4B,CAAC,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CAuBF;AA9CD,wCA8CC"}
@@ -0,0 +1,2 @@
1
+ import { tAPP, tPLATFORM } from '../types';
2
+ export declare const lazyLoadTool: (platform: tPLATFORM, app: tAPP) => Promise<import("../init/types").IAnalyticsWrapper | null>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.lazyLoadTool = void 0;
27
+ const getAnalyticsToolWrapper = async (platform) => {
28
+ try {
29
+ if (platform === 'REACT_NATIVE') {
30
+ return (await Promise.resolve().then(() => __importStar(require('./react-native-segment')))).reactNativeSegment;
31
+ }
32
+ if (platform === 'NODE' || platform === 'WEB') {
33
+ return (await Promise.resolve().then(() => __importStar(require('./web-segment')))).webSegment;
34
+ }
35
+ return null;
36
+ }
37
+ catch (e) {
38
+ console.log(e);
39
+ throw new Error(JSON.stringify(e));
40
+ }
41
+ };
42
+ const ERROR_MESSAGES = {
43
+ TOOL_INIT_FAILED_AT_LAZY_LOAD: 'TOOL_INIT_FAILED_AT_LAZY_LOAD',
44
+ };
45
+ const lazyLoadTool = async (platform, app) => {
46
+ let tool = null;
47
+ try {
48
+ const toolWrapper = await getAnalyticsToolWrapper(platform);
49
+ if (toolWrapper) {
50
+ tool = await Promise.resolve(toolWrapper(app));
51
+ }
52
+ }
53
+ catch (e) {
54
+ console.error(ERROR_MESSAGES.TOOL_INIT_FAILED_AT_LAZY_LOAD, { platform, app });
55
+ }
56
+ return tool;
57
+ };
58
+ exports.lazyLoadTool = lazyLoadTool;
59
+ //# sourceMappingURL=lazy-load-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-load-tool.js","sourceRoot":"","sources":["../../src/analytics-tool/lazy-load-tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,MAAM,uBAAuB,GAAG,KAAK,EAAE,QAAmB,EAAE,EAAE;IAC5D,IAAI,CAAC;QACH,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAChC,OAAO,CAAC,wDAAa,wBAAwB,GAAC,CAAC,CAAC,kBAAkB,CAAC;QACrE,CAAC;QACD,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC9C,OAAO,CAAC,wDAAa,eAAe,GAAC,CAAC,CAAC,UAAU,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,6BAA6B,EAAE,+BAA+B;CAC/D,CAAC;AAEK,MAAM,YAAY,GAAG,KAAK,EAAE,QAAmB,EAAE,GAAS,EAAE,EAAE;IACnE,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,WAAW,GAA+B,MAAM,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QACxF,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAZW,QAAA,YAAY,gBAYvB"}
@@ -0,0 +1,2 @@
1
+ import { tToolWraperFunction } from './types';
2
+ export declare const reactNativeSegment: tToolWraperFunction;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reactNativeSegment = void 0;
4
+ const analytics_react_native_1 = require("@segment/analytics-react-native");
5
+ const getSegmentKey_1 = require("./utils/getSegmentKey");
6
+ const types_1 = require("../init/types");
7
+ const reactNativeSegment = (APP) => {
8
+ const segmentKey = (0, getSegmentKey_1.getSegmentKey)(APP);
9
+ const client = (0, analytics_react_native_1.createClient)({
10
+ writeKey: segmentKey,
11
+ trackAppLifecycleEvents: true,
12
+ });
13
+ const { track, screen, identify } = client;
14
+ const trackWrapper = (eventName, eventParams) => {
15
+ const data = eventParams;
16
+ track(eventName, data);
17
+ };
18
+ return {
19
+ track: trackWrapper,
20
+ screen: (params) => {
21
+ if (!(0, types_1.isScreenWeb)(params, 'REACT_NATIVE')) {
22
+ screen(params.name, params.properties);
23
+ }
24
+ },
25
+ identify,
26
+ type: 'RN_SEGMENT',
27
+ segmentClient: client,
28
+ };
29
+ };
30
+ exports.reactNativeSegment = reactNativeSegment;
31
+ //# sourceMappingURL=react-native-segment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native-segment.js","sourceRoot":"","sources":["../../src/analytics-tool/react-native-segment.ts"],"names":[],"mappings":";;;AAAA,4EAA+D;AAC/D,yDAAsD;AAGtD,yCAAoD;AAE7C,MAAM,kBAAkB,GAAwB,CAAC,GAAS,EAAE,EAAE;IACnE,MAAM,UAAU,GAAG,IAAA,6BAAa,EAAC,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAA,qCAAY,EAAC;QAC1B,QAAQ,EAAE,UAAU;QACpB,uBAAuB,EAAE,IAAI;KAC9B,CAAC,CAAC;IAEH,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE3C,MAAM,YAAY,GAAW,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE;QAEtD,MAAM,IAAI,GAAG,WAA2C,CAAC;QAEzD,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YACjB,IAAI,CAAC,IAAA,mBAAW,EAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QACD,QAAQ;QACR,IAAI,EAAE,YAAY;QAClB,aAAa,EAAE,MAAM;KACtB,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,kBAAkB,sBA2B7B"}
@@ -0,0 +1,3 @@
1
+ import { IAnalyticsWrapper } from '../init/types';
2
+ import { tAPP } from '../types';
3
+ export type tToolWraperFunction = (APP: tAPP) => IAnalyticsWrapper;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/analytics-tool/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { tAPP } from '../../types';
2
+ export declare const getSegmentKey: (APP: tAPP) => string;
3
+ export declare const SEGMENT_KEY_NOT_FOUND = "SEGMENT_KEY_NOT_FOUND";
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SEGMENT_KEY_NOT_FOUND = exports.getSegmentKey = void 0;
4
+ const getSegmentKey = (APP) => process.env[`SEGMENT_PROJECT_KEY_${APP}`] || exports.SEGMENT_KEY_NOT_FOUND;
5
+ exports.getSegmentKey = getSegmentKey;
6
+ exports.SEGMENT_KEY_NOT_FOUND = 'SEGMENT_KEY_NOT_FOUND';
7
+ //# sourceMappingURL=getSegmentKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSegmentKey.js","sourceRoot":"","sources":["../../../src/analytics-tool/utils/getSegmentKey.ts"],"names":[],"mappings":";;;AAEO,MAAM,aAAa,GAAG,CAAC,GAAS,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,IAAI,6BAAqB,CAAC;AAAlG,QAAA,aAAa,iBAAqF;AAClG,QAAA,qBAAqB,GAAG,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { tToolWraperFunction } from './types';
2
+ export declare const webSegment: tToolWraperFunction;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.webSegment = void 0;
4
+ const getSegmentKey_1 = require("./utils/getSegmentKey");
5
+ const analytics_next_1 = require("@segment/analytics-next");
6
+ const types_1 = require("../init/types");
7
+ const webSegment = (APP) => {
8
+ const segmentKey = (0, getSegmentKey_1.getSegmentKey)(APP);
9
+ const client = analytics_next_1.AnalyticsBrowser.load({ writeKey: segmentKey });
10
+ const { track, page, identify } = client;
11
+ return {
12
+ track,
13
+ screen: (params) => {
14
+ if ((0, types_1.isScreenWeb)(params, 'REACT_NATIVE')) {
15
+ page(params);
16
+ }
17
+ },
18
+ identify,
19
+ type: 'WEB_SEGMENT',
20
+ };
21
+ };
22
+ exports.webSegment = webSegment;
23
+ //# sourceMappingURL=web-segment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-segment.js","sourceRoot":"","sources":["../../src/analytics-tool/web-segment.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AACtD,4DAA2D;AAG3D,yCAA4C;AAErC,MAAM,UAAU,GAAwB,CAAC,GAAS,EAAE,EAAE;IAC3D,MAAM,UAAU,GAAG,IAAA,6BAAa,EAAC,GAAG,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,iCAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IAC/D,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAEzC,OAAO;QACL,KAAK;QACL,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YACjB,IAAI,IAAA,mBAAW,EAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QACD,QAAQ;QACR,IAAI,EAAE,aAAa;KACpB,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,UAAU,cAerB"}
@@ -0,0 +1,4 @@
1
+ export declare const ERROR_MESSAGE: {
2
+ ANALYTICS_INIT_FAILED: string;
3
+ ANALYTICS_CALLED_BEFORE_INIT: string;
4
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERROR_MESSAGE = void 0;
4
+ exports.ERROR_MESSAGE = {
5
+ ANALYTICS_INIT_FAILED: 'ANALYTICS_INIT_FAILED',
6
+ ANALYTICS_CALLED_BEFORE_INIT: 'ANALYTICS_CALLED_BEFORE_INIT',
7
+ };
8
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;IAC3B,qBAAqB,EAAE,uBAAuB;IAC9C,4BAA4B,EAAE,8BAA8B;CAC7D,CAAC"}
@@ -0,0 +1,25 @@
1
+ export declare enum EVENT_NAMES {
2
+ ADD_TO_CART = "ADD_TO_CART"
3
+ }
4
+ export interface ProductCartEventData {
5
+ value: number;
6
+ valueCurrencyCode: string;
7
+ vendor: string;
8
+ productCategoryL2: Array<string>;
9
+ productCategoryL1: Array<string>;
10
+ productGenderCategory: Array<string>;
11
+ productType: string;
12
+ price: number;
13
+ priceCurrencyCode: string;
14
+ brand: Array<string>;
15
+ collectionName: Array<string>;
16
+ quantity: number;
17
+ productId: string;
18
+ url: string;
19
+ failureReason: string;
20
+ productName: string;
21
+ grade: string;
22
+ }
23
+ export interface EVENT_MAP {
24
+ [EVENT_NAMES.ADD_TO_CART]: ProductCartEventData;
25
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EVENT_NAMES = void 0;
4
+ var EVENT_NAMES;
5
+ (function (EVENT_NAMES) {
6
+ EVENT_NAMES["ADD_TO_CART"] = "ADD_TO_CART";
7
+ })(EVENT_NAMES || (exports.EVENT_NAMES = EVENT_NAMES = {}));
8
+ //# sourceMappingURL=event-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-map.js","sourceRoot":"","sources":["../../src/event-map/event-map.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAEX;AAFD,WAAY,WAAW;IACrB,0CAA2B,CAAA;AAC7B,CAAC,EAFW,WAAW,2BAAX,WAAW,QAEtB"}
@@ -0,0 +1,2 @@
1
+ export { TrackAnalytics } from './track-analytics/track-analytics';
2
+ export { AnalyticsProvider } from '@segment/analytics-react-native';
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AnalyticsProvider = exports.TrackAnalytics = void 0;
4
+ var track_analytics_1 = require("./track-analytics/track-analytics");
5
+ Object.defineProperty(exports, "TrackAnalytics", { enumerable: true, get: function () { return track_analytics_1.TrackAnalytics; } });
6
+ var analytics_react_native_1 = require("@segment/analytics-react-native");
7
+ Object.defineProperty(exports, "AnalyticsProvider", { enumerable: true, get: function () { return analytics_react_native_1.AnalyticsProvider; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAmE;AAA1D,iHAAA,cAAc,OAAA;AACvB,0EAAoE;AAA3D,2HAAA,iBAAiB,OAAA"}
@@ -0,0 +1,2 @@
1
+ import { trackAnalyticsInit } from './types';
2
+ export declare const init: trackAnalyticsInit;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = void 0;
4
+ const lazy_load_tool_1 = require("../analytics-tool/lazy-load-tool");
5
+ const failedAnalyticsReurn = {
6
+ track: () => { },
7
+ identify: () => { },
8
+ screen: () => { },
9
+ type: 'FAILED_INIT',
10
+ };
11
+ const init = async (params) => {
12
+ console.log(params);
13
+ try {
14
+ const analyticsWrapper = await (0, lazy_load_tool_1.lazyLoadTool)(params.platform, params.App);
15
+ if (!analyticsWrapper) {
16
+ console.log('ANALYTICS_WRAPPER_NULL');
17
+ }
18
+ return analyticsWrapper || failedAnalyticsReurn;
19
+ }
20
+ catch (e) {
21
+ console.log('MAIN_INIT_FAILED', JSON.stringify(e));
22
+ return failedAnalyticsReurn;
23
+ }
24
+ };
25
+ exports.init = init;
26
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init/init.ts"],"names":[],"mappings":";;;AAAA,qEAAgE;AAGhE,MAAM,oBAAoB,GAAsB;IAC9C,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;IAClB,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;IAChB,IAAI,EAAE,aAAa;CACpB,CAAC;AAEK,MAAM,IAAI,GAAuB,KAAK,EAAE,MAAM,EAAE,EAAE;IACvD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAGpB,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,MAAM,IAAA,6BAAY,EAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACzE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,gBAAgB,IAAI,oBAAoB,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC;AAdW,QAAA,IAAI,QAcf"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const init_1 = require("./init");
4
+ describe('init', () => {
5
+ test('it returns object of type AnalyticsWrapper', async () => {
6
+ expect.assertions(3);
7
+ const output = await (0, init_1.init)({
8
+ platform: 'REACT_NATIVE',
9
+ App: 'CONSUMER_WEB',
10
+ segment: true,
11
+ pixel: true,
12
+ });
13
+ expect(output).toHaveProperty('track');
14
+ expect(output).toHaveProperty('identify');
15
+ expect(output).toHaveProperty('screen');
16
+ });
17
+ });
18
+ //# sourceMappingURL=init.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/init/init.test.ts"],"names":[],"mappings":";;AAAA,iCAA8B;AAE9B,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,IAAA,WAAI,EAAC;YACxB,QAAQ,EAAE,cAAc;YACxB,GAAG,EAAE,cAAc;YACnB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { SegmentClient } from '@segment/analytics-react-native';
2
+ import { EVENT_MAP, EVENT_NAMES } from '../event-map/event-map';
3
+ import { IAnalyticsInit, tPLATFORM } from '../types';
4
+ export type tTrack = <T extends EVENT_NAMES>(eventName: T, eventParams: EVENT_MAP[T]) => void;
5
+ export type JsonList = Array<JsonValue>;
6
+ export type JsonValue = boolean | number | string | null | JsonList | JsonMap | undefined;
7
+ export interface JsonMap {
8
+ [key: string]: JsonValue;
9
+ [index: number]: JsonValue;
10
+ }
11
+ export interface IWebScreenParams {
12
+ category?: string;
13
+ name?: string;
14
+ properties?: Record<string, unknown>;
15
+ options?: Record<string, unknown>;
16
+ callback?: () => void;
17
+ }
18
+ export interface IRNScreenParams {
19
+ name: string;
20
+ properties?: JsonMap;
21
+ }
22
+ export interface IAnalyticsWrapper {
23
+ track: tTrack;
24
+ identify: () => void;
25
+ screen: (params: IWebScreenParams | IRNScreenParams) => void;
26
+ type: string;
27
+ segmentClient?: SegmentClient;
28
+ }
29
+ export declare const isScreenWeb: (params: IWebScreenParams | IRNScreenParams, platform: tPLATFORM) => params is IWebScreenParams;
30
+ type tInit = (params: IAnalyticsInit) => Promise<IAnalyticsWrapper>;
31
+ export { tInit as trackAnalyticsInit };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isScreenWeb = void 0;
4
+ const isScreenWeb = (params, platform) => {
5
+ return params && (platform === 'WEB' || platform === 'NODE');
6
+ };
7
+ exports.isScreenWeb = isScreenWeb;
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/init/types.ts"],"names":[],"mappings":";;;AAuCO,MAAM,WAAW,GAAG,CAAC,MAA0C,EAAE,QAAmB,EAA8B,EAAE;IACzH,OAAO,MAAM,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,MAAM,CAAC,CAAC;AAC/D,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB"}
@@ -0,0 +1,13 @@
1
+ import { IAnalyticsInit } from '../types';
2
+ import { IRNScreenParams, IWebScreenParams, tTrack } from '../init/types';
3
+ declare class TrackAnalytics {
4
+ private initParams;
5
+ private analyticsWrapper;
6
+ constructor(params: IAnalyticsInit);
7
+ initAnalytics: () => Promise<void>;
8
+ private checkInitDone;
9
+ track: tTrack;
10
+ identify: () => void;
11
+ screen: (params: IWebScreenParams | IRNScreenParams) => void;
12
+ }
13
+ export { TrackAnalytics };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrackAnalytics = void 0;
4
+ const constants_1 = require("../constants");
5
+ const types_1 = require("../init/types");
6
+ const init_1 = require("../init/init");
7
+ class TrackAnalytics {
8
+ constructor(params) {
9
+ this.analyticsWrapper = null;
10
+ this.initAnalytics = async () => {
11
+ try {
12
+ this.analyticsWrapper = await (0, init_1.init)(this.initParams);
13
+ }
14
+ catch (e) {
15
+ throw new Error(constants_1.ERROR_MESSAGE.ANALYTICS_INIT_FAILED);
16
+ }
17
+ };
18
+ this.track = (type, params) => {
19
+ var _a;
20
+ if (this.checkInitDone()) {
21
+ (_a = this.analyticsWrapper) === null || _a === void 0 ? void 0 : _a.track(type, params);
22
+ }
23
+ };
24
+ this.identify = () => {
25
+ var _a;
26
+ if (this.checkInitDone()) {
27
+ (_a = this.analyticsWrapper) === null || _a === void 0 ? void 0 : _a.identify();
28
+ }
29
+ };
30
+ this.screen = (params) => {
31
+ var _a, _b;
32
+ if (this.checkInitDone()) {
33
+ if ((0, types_1.isScreenWeb)(params, this.initParams.platform)) {
34
+ (_a = this.analyticsWrapper) === null || _a === void 0 ? void 0 : _a.screen(params);
35
+ }
36
+ else {
37
+ (_b = this.analyticsWrapper) === null || _b === void 0 ? void 0 : _b.screen(params);
38
+ }
39
+ }
40
+ };
41
+ this.initParams = params;
42
+ }
43
+ checkInitDone() {
44
+ if (this.analyticsWrapper) {
45
+ return true;
46
+ }
47
+ else {
48
+ console.error(constants_1.ERROR_MESSAGE.ANALYTICS_CALLED_BEFORE_INIT);
49
+ return false;
50
+ }
51
+ }
52
+ }
53
+ exports.TrackAnalytics = TrackAnalytics;
54
+ //# sourceMappingURL=track-analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-analytics.js","sourceRoot":"","sources":["../../src/track-analytics/track-analytics.ts"],"names":[],"mappings":";;;AAAA,4CAA6C;AAE7C,yCAA0G;AAC1G,uCAAoC;AAEpC,MAAM,cAAc;IAIlB,YAAY,MAAsB;QAF1B,qBAAgB,GAA6B,IAAI,CAAC;QAM1D,kBAAa,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,CAAC;gBACH,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,yBAAa,CAAC,qBAAqB,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC;QAWF,UAAK,GAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;;YAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzB,MAAA,IAAI,CAAC,gBAAgB,0CAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC;QAEF,aAAQ,GAAG,GAAG,EAAE;;YACd,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzB,MAAA,IAAI,CAAC,gBAAgB,0CAAE,QAAQ,EAAE,CAAC;YACpC,CAAC;QACH,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,MAA0C,EAAE,EAAE;;YACtD,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzB,IAAI,IAAA,mBAAW,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClD,MAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,MAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAxCA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IAC3B,CAAC;IAUO,aAAa;QACnB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,yBAAa,CAAC,4BAA4B,CAAC,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CAuBF;AAEQ,wCAAc"}
@@ -0,0 +1,8 @@
1
+ export type tPLATFORM = 'REACT_NATIVE' | 'WEB' | 'NODE';
2
+ export type tAPP = 'VENDOR_APP' | 'CONSUMER_APP' | 'CONSUMER_WEB';
3
+ export interface IAnalyticsInit {
4
+ platform: tPLATFORM;
5
+ App: tAPP;
6
+ segment: boolean;
7
+ pixel: boolean;
8
+ }
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fleek-track-analytics",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "repository": {
package/tsconfig.json CHANGED
@@ -25,11 +25,11 @@
25
25
  "experimentalDecorators": true,
26
26
  "resolveJsonModule": true,
27
27
  "baseUrl": "./",
28
- "rootDir": ".",
28
+ "rootDir": "src",
29
29
  "paths": {
30
30
  "src/*": ["./src/*"]
31
31
  }
32
32
  },
33
- "exclude": ["node_modules", "dist"],
33
+ "exclude": ["node_modules"],
34
34
  "include": ["./src/**/*.ts"]
35
35
  }