@useblu/blu-lytics 1.0.13 → 1.0.15

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.
@@ -7,7 +7,8 @@ import { EventData, PropertiesType, UserPropertiesType } from './dispatchers.typ
7
7
  */
8
8
  export declare const dispatchEventToAllProviders: (eventData: EventData) => void;
9
9
  declare const sendScreenEvent: (screen: string) => void;
10
+ declare const setDefaultProperties: (properties: PropertiesType) => void;
10
11
  declare const sendCustomEvent: (event: string, properties: PropertiesType) => void;
11
12
  declare const sendUserIdentification: (id: string, userProperties: UserPropertiesType) => void;
12
- export { sendCustomEvent, sendScreenEvent, sendUserIdentification };
13
+ export { sendCustomEvent, sendScreenEvent, sendUserIdentification, setDefaultProperties, };
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dispatchers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEpF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,cAAe,SAAS,KAAG,IA0BlE,CAAC;AAIF,QAAA,MAAM,eAAe,WAAY,MAAM,KAAG,IAMzC,CAAC;AAEF,QAAA,MAAM,eAAe,UAAW,MAAM,cAAc,cAAc,KAAG,IAQpE,CAAC;AAEF,QAAA,MAAM,sBAAsB,OACtB,MAAM,kBACM,kBAAkB,KACjC,IAQF,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dispatchers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,cAAc,EACd,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAG7B;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,cAAe,SAAS,KAAG,IAkClE,CAAC;AAIF,QAAA,MAAM,eAAe,WAAY,MAAM,KAAG,IAMzC,CAAC;AAeF,QAAA,MAAM,oBAAoB,eAAgB,cAAc,KAAG,IAG1D,CAAC;AAEF,QAAA,MAAM,eAAe,UAAW,MAAM,cAAc,cAAc,KAAG,IAyBpE,CAAC;AAEF,QAAA,MAAM,sBAAsB,OACtB,MAAM,kBACM,kBAAkB,KACjC,IAUF,CAAC;AAEF,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,oBAAoB,GACrB,CAAC"}
@@ -1,5 +1,17 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
1
12
  /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
2
13
  import { providersList } from '../providers';
14
+ import { checkIfMixPanelIsInitialized } from '../utils';
3
15
  /**
4
16
  * Dispatches the specified event data to all configured providers.
5
17
  *
@@ -9,50 +21,82 @@ import { providersList } from '../providers';
9
21
  export var dispatchEventToAllProviders = function (eventData) {
10
22
  var localStorageProvidersList = JSON.parse(localStorage === null || localStorage === void 0 ? void 0 : localStorage.getItem('_bl_providers'));
11
23
  var providersFiltered = localStorageProvidersList
12
- ? providersList.filter(function (item) { return localStorageProvidersList.includes(item.name); })
24
+ ? providersList.filter(function (item) {
25
+ return localStorageProvidersList.includes(item.name);
26
+ })
13
27
  : providersList;
14
28
  if (providersFiltered.length > 0) {
15
29
  providersFiltered.forEach(function (provider) {
30
+ checkIfMixPanelIsInitialized(provider.name);
16
31
  var actions = {
17
- screenEvent: function () { return provider.screenEvent
18
- && eventData.screen
19
- && provider.screenEvent(eventData.screen); },
20
- customEvent: function () { return provider.customEvent
21
- && eventData.event
22
- && eventData.properties
23
- && provider.customEvent(eventData.event, eventData.properties); },
24
- userIdentification: function () { return provider.userIdentification
25
- && eventData.id
26
- && eventData.userProperties
27
- && provider.userIdentification(eventData.id, eventData.userProperties); }
32
+ screenEvent: function () {
33
+ return provider.screenEvent &&
34
+ eventData.screen &&
35
+ provider.screenEvent(eventData.screen);
36
+ },
37
+ customEvent: function () {
38
+ return provider.customEvent &&
39
+ eventData.event &&
40
+ eventData.properties &&
41
+ provider.customEvent(eventData.event, eventData.properties);
42
+ },
43
+ userIdentification: function () {
44
+ return provider.userIdentification &&
45
+ eventData.id &&
46
+ eventData.userProperties &&
47
+ provider.userIdentification(eventData.id, eventData.userProperties);
48
+ }
28
49
  };
29
50
  Object.values(actions).forEach(function (action) { return action(); });
30
51
  });
31
52
  }
32
53
  };
33
54
  var currentEnvironment = localStorage.getItem('_bl_env') || 'development';
55
+ var isDevelopment = currentEnvironment === 'development';
34
56
  var sendScreenEvent = function (screen) {
35
- if (currentEnvironment === 'development') {
57
+ if (isDevelopment) {
36
58
  console.log("[blu-lytics]: Screen event: ".concat(screen));
37
59
  }
38
60
  else {
39
61
  dispatchEventToAllProviders({ screen: screen });
40
62
  }
41
63
  };
64
+ var saveDefaultPropertiesToLocalStorage = function (properties) {
65
+ localStorage.setItem('_bl_props', JSON.stringify(properties));
66
+ };
67
+ var loadDefaultPropertiesFromLocalStorage = function () {
68
+ var storedProperties = localStorage.getItem('_bl_props');
69
+ return storedProperties ? JSON.parse(storedProperties) : {};
70
+ };
71
+ var defaultProperties = loadDefaultPropertiesFromLocalStorage();
72
+ var setDefaultProperties = function (properties) {
73
+ defaultProperties = __assign({}, properties);
74
+ saveDefaultPropertiesToLocalStorage(defaultProperties);
75
+ };
42
76
  var sendCustomEvent = function (event, properties) {
43
- if (currentEnvironment === 'development') {
44
- console.log("[blu-lytics]: Custom event: ".concat(event, " - ").concat(JSON.stringify(properties)));
77
+ var rawStoredProperties = localStorage.getItem('_bl_props');
78
+ if (rawStoredProperties) {
79
+ try {
80
+ defaultProperties = JSON.parse(rawStoredProperties);
81
+ }
82
+ catch (error) {
83
+ console.error('[blu-lytics] Failed to parse stored properties', error);
84
+ }
85
+ }
86
+ var mergedProperties = __assign(__assign({}, defaultProperties), properties);
87
+ if (isDevelopment) {
88
+ console.log("[blu-lytics]: Custom event: ".concat(event, " - ").concat(JSON.stringify(mergedProperties)));
45
89
  }
46
90
  else {
47
- dispatchEventToAllProviders({ event: event, properties: properties });
91
+ dispatchEventToAllProviders({ event: event, properties: mergedProperties });
48
92
  }
49
93
  };
50
94
  var sendUserIdentification = function (id, userProperties) {
51
- if (currentEnvironment === 'development') {
95
+ if (isDevelopment) {
52
96
  console.log("[blu-lytics]: User identification: ".concat(id, " - ").concat(JSON.stringify(userProperties)));
53
97
  }
54
98
  else {
55
99
  dispatchEventToAllProviders({ id: id, userProperties: userProperties });
56
100
  }
57
101
  };
58
- export { sendCustomEvent, sendScreenEvent, sendUserIdentification };
102
+ export { sendCustomEvent, sendScreenEvent, sendUserIdentification, setDefaultProperties, };
package/lib/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { initializeProviders } from './initializers';
2
- export { sendCustomEvent, sendScreenEvent, sendUserIdentification } from './dispatchers';
2
+ export { sendCustomEvent, sendScreenEvent, sendUserIdentification, setDefaultProperties, } from './dispatchers';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,oBAAoB,GAC/E,MAAM,eAAe,CAAC"}
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export { initializeProviders } from './initializers';
2
- export { sendCustomEvent, sendScreenEvent, sendUserIdentification } from './dispatchers';
2
+ export { sendCustomEvent, sendScreenEvent, sendUserIdentification, setDefaultProperties, } from './dispatchers';
@@ -1,3 +1,4 @@
1
1
  import { ProviderType } from '../providers/provider.types';
2
2
  export declare const isValidProvidersList: (providersList: ProviderType[]) => boolean;
3
+ export declare const checkIfMixPanelIsInitialized: (provider: string) => void;
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,eAAO,MAAM,oBAAoB,kBAChB,YAAY,EAAE,KAC5B,OAAmE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,eAAO,MAAM,oBAAoB,kBAChB,YAAY,EAAE,KAC5B,OAAmE,CAAC;AAEvE,eAAO,MAAM,4BAA4B,aAAc,MAAM,KAAG,IAY/D,CAAC"}
@@ -1 +1,14 @@
1
+ import mixpanel from 'mixpanel-browser';
1
2
  export var isValidProvidersList = function (providersList) { return Array.isArray(providersList) && providersList.length > 0; };
3
+ export var checkIfMixPanelIsInitialized = function (provider) {
4
+ var isMixPanelProvider = provider === 'MixPanel';
5
+ if (isMixPanelProvider) {
6
+ var apiKey = localStorage === null || localStorage === void 0 ? void 0 : localStorage.getItem('_bl_mp');
7
+ var wasInitialized = localStorage.getItem('_bl_init');
8
+ if (!wasInitialized) {
9
+ mixpanel.init(apiKey);
10
+ localStorage.removeItem('_bl_mp');
11
+ localStorage.setItem('_bl_init', 'init');
12
+ }
13
+ }
14
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useblu/blu-lytics",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",
@@ -61,4 +61,4 @@
61
61
  "access": "public"
62
62
  },
63
63
  "sideEffects": false
64
- }
64
+ }