@driveflux/web-analytics 1.6.6 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/config.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  type Config = {
2
2
  appUrl: string;
3
- isProd: boolean;
4
3
  ga: {
5
4
  measurementId: string;
6
5
  apiSecret: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,KAAK,MAAM,GAAG;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,EAAE,EAAE;QACH,aAAa,EAAE,MAAM,CAAA;QACrB,SAAS,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,EAAE,EAAE;QACH,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,gBAAgB,EAAE,OAAO,CAAA;CACzB,CAAA;AAkBD,eAAO,IAAI,MAAM,EAAE,MAAqD,CAAA;AAExE,eAAO,MAAM,WAAW,cAGvB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,SAAS,MAAM,MAAM,EACjD,KAAK,GAAG,EACR,OAAO,MAAM,CAAC,GAAG,CAAC,SAGlB,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,KAAK,MAAM,GAAG;IACb,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE;QACH,aAAa,EAAE,MAAM,CAAA;QACrB,SAAS,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,EAAE,EAAE;QACH,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,gBAAgB,EAAE,OAAO,CAAA;CACzB,CAAA;AAiBD,eAAO,IAAI,MAAM,EAAE,MAAqD,CAAA;AAExE,eAAO,MAAM,WAAW,cAGvB,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,SAAS,MAAM,MAAM,EACjD,KAAK,GAAG,EACR,OAAO,MAAM,CAAC,GAAG,CAAC,SAGlB,CAAA"}
package/dist/config.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { singleton } from '@driveflux/singleton';
2
2
  const getConfig = () => ({
3
3
  appUrl: process.env.APP_URL || 'https://driveflux.com',
4
- isProd: process.env.APP_ENV === 'production',
5
4
  ga: {
6
5
  measurementId: process.env.GA_MEASUREMENT_ID,
7
6
  apiSecret: process.env.GA_API_SECRET,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAgBhD,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAuB;IACtD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,YAAY;IAC5C,EAAE,EAAE;QACH,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,iBAA2B;QACtD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,aAAuB;KAC9C;IACD,EAAE,EAAE;QACH,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAiC;QACtD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,eAAyB;KAClD;IACD,gBAAgB,EACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,MAAM;QAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,YAAY;CACrC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,MAAM,GAAW,SAAS,CAAC,oBAAoB,EAAE,SAAS,EAAE,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC/B,MAAM,GAAG,SAAS,CAAC,oBAAoB,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAA;IAC3D,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,GAAQ,EACR,KAAkB,EACjB,EAAE;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAehD,MAAM,SAAS,GAAG,GAAW,EAAE,CAAC,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAuB;IACtD,EAAE,EAAE;QACH,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,iBAA2B;QACtD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,aAAuB;KAC9C;IACD,EAAE,EAAE;QACH,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAiC;QACtD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,eAAyB;KAClD;IACD,gBAAgB,EACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,MAAM;QAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,YAAY;CACrC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAI,MAAM,GAAW,SAAS,CAAC,oBAAoB,EAAE,SAAS,EAAE,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC/B,MAAM,GAAG,SAAS,CAAC,oBAAoB,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAA;IAC3D,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,GAAQ,EACR,KAAkB,EACjB,EAAE;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AACpB,CAAC,CAAA"}
@@ -1,16 +1,17 @@
1
1
  import { enhancedFetch } from '@driveflux/fetch';
2
2
  import { config } from './config.js';
3
- import { convertFacebookUserData, convertGAUserData, getCurrentTimestampMicros } from './utils.js';
3
+ import { convertFacebookUserData, convertGAUserData, getCurrentTimestampMicros, } from './utils.js';
4
4
  // facebook
5
- export const trackFbServerMultiple = async (user, events)=>{
5
+ export const trackFbServerMultiple = async (user, events) => {
6
6
  if (events.length > 1) {
7
7
  console.log('🚨🚨🚨🗄️ firing multiple server events', events);
8
- const filtered = events.filter((e)=>!!e.name);
8
+ const filtered = events.filter((e) => !!e.name);
9
9
  if (filtered.length !== events.length) {
10
10
  console.log('Not all events have names');
11
11
  return;
12
12
  }
13
- } else {
13
+ }
14
+ else {
14
15
  console.log('🚨🚨🚨🗄️ firing server event', events?.[0]?.name, events?.[0]?.data);
15
16
  if (!events?.[0]?.name) {
16
17
  console.error('The name of the event is missing');
@@ -33,52 +34,50 @@ export const trackFbServerMultiple = async (user, events)=>{
33
34
  const userData = user.data ? await convertFacebookUserData(user.data) : {};
34
35
  const url = `https://graph.facebook.com/${apiVersion}/${pixelId}/events?access_token=${accessToken}`;
35
36
  const payload = {
36
- data: events.map((e)=>{
37
+ data: events
38
+ .map((e) => {
37
39
  if (e.name) {
38
40
  return {
39
41
  event_name: e.name,
40
- event_time: Math.floor(Date.now() / 1000),
42
+ event_time: Math.floor(Date.now() / 1000), // Unix timestamp in seconds
41
43
  event_source_url: config.appUrl,
42
44
  action_source: 'website',
43
45
  user_data: {
44
46
  ...userData,
45
- fbp: `fb.1.${clientId}`
47
+ fbp: `fb.1.${clientId}`,
46
48
  },
47
49
  custom_data: {
48
- ...e.data
49
- }
50
+ ...e.data,
51
+ },
50
52
  };
51
53
  }
52
54
  return null;
53
- }).filter(Boolean)
55
+ })
56
+ .filter(Boolean),
54
57
  };
55
58
  const res = await enhancedFetch(url, {
56
59
  method: 'POST',
57
60
  headers: {
58
- 'Content-Type': 'application/json'
61
+ 'Content-Type': 'application/json',
59
62
  },
60
- body: JSON.stringify(payload)
63
+ body: JSON.stringify(payload),
61
64
  });
62
65
  if (!res.ok) {
63
66
  console.log('🚨🚨🚨🗄️ error firing server event', res.val);
64
67
  }
65
68
  };
66
- export const trackFbServer = async (user, name, data)=>trackFbServerMultiple(user, [
67
- {
68
- name,
69
- data
70
- }
71
- ]);
69
+ export const trackFbServer = async (user, name, data) => trackFbServerMultiple(user, [{ name, data }]);
72
70
  // google
73
- export const trackGAServerMultiple = async (user, events)=>{
71
+ export const trackGAServerMultiple = async (user, events) => {
74
72
  if (events.length > 1) {
75
73
  console.log('🚨🚨🚨🗄️ firing multiple server events', events);
76
- const filtered = events.filter((e)=>!!e.name);
74
+ const filtered = events.filter((e) => !!e.name);
77
75
  if (filtered.length !== events.length) {
78
76
  console.log('Not all events have names');
79
77
  return;
80
78
  }
81
- } else {
79
+ }
80
+ else {
82
81
  console.log('🚨🚨🚨🗄️ firing server event', events?.[0]?.name, events?.[0]?.data);
83
82
  if (!events?.[0]?.name) {
84
83
  console.error('The name of the event is missing');
@@ -97,41 +96,37 @@ export const trackGAServerMultiple = async (user, events)=>{
97
96
  console.log('The user client id or session id are not provided');
98
97
  return;
99
98
  }
100
- const userData = user.data ? {
101
- user_data: await convertGAUserData(user.data)
102
- } : {};
99
+ const userData = user.data
100
+ ? { user_data: await convertGAUserData(user.data) }
101
+ : {};
103
102
  const url = `https://www.google-analytics.com/mp/collect?measurement_id=${measurementId}&api_secret=${apiSecret}`;
104
103
  const payload = {
105
104
  client_id: clientId,
106
105
  timestamp_micros: getCurrentTimestampMicros(),
107
- events: events.map((e)=>{
106
+ events: events.map((e) => {
108
107
  if (e.name) {
109
108
  return {
110
109
  name: e.name,
111
110
  params: {
112
111
  ...userData,
113
112
  ...e.data,
114
- session_id: sessionId
115
- }
113
+ session_id: sessionId,
114
+ },
116
115
  };
117
116
  }
118
117
  return null;
119
- })
118
+ }),
120
119
  };
121
120
  const res = await enhancedFetch(url, {
122
121
  method: 'POST',
123
122
  headers: {
124
- 'Content-Type': 'application/json'
123
+ 'Content-Type': 'application/json',
125
124
  },
126
- body: JSON.stringify(payload)
125
+ body: JSON.stringify(payload),
127
126
  });
128
127
  if (!res.ok) {
129
128
  console.log('🚨🚨🚨🗄️ error firing server event', res.val);
130
129
  }
131
130
  };
132
- export const trackGAServer = async (user, name, data)=>trackGAServerMultiple(user, [
133
- {
134
- name,
135
- data
136
- }
137
- ]);
131
+ export const trackGAServer = async (user, name, data) => trackGAServerMultiple(user, [{ name, data }]);
132
+ //# sourceMappingURL=track-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,YAAY,CAAA;AAGhE,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KACxB;CACD;AAED,KAAK,SAAS,GAAG,YAAY,CAAA;AA+B7B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,iBAe9D;AAUD,eAAO,MAAM,gBAAgB,GAAU,OAAO,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,kBAOhE,CAAA;AAED,eAAO,MAAM,aAAa;uBAKZ,MAAM,cACL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,cACnB,SAAS;6BAkC2B,YAAY;CAY9D,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC7B,WAAW,MAAM,EACjB,YAAY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SA0B/B,CAAA"}
1
+ {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,YAAY,CAAA;AAGhE,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KACxB;CACD;AAED,KAAK,SAAS,GAAG,YAAY,CAAA;AA+B7B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,iBAe9D;AAUD,eAAO,MAAM,gBAAgB,GAAU,OAAO,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,kBAOhE,CAAA;AAED,eAAO,MAAM,aAAa;uBAKZ,MAAM,cACL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,cACnB,SAAS;6BA8B2B,YAAY;CAY9D,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC7B,WAAW,MAAM,EACjB,YAAY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SA0B/B,CAAA"}
package/dist/track.js CHANGED
@@ -58,14 +58,11 @@ export const safeSendGTMEvent = async (event) => {
58
58
  export const useTrackEvent = () => {
59
59
  const userData = useRef(defaultUserData);
60
60
  const track = useCallback((eventName, eventData, clearMode) => {
61
- if (!eventName) {
62
- console.error('No event name provided');
63
- return;
64
- }
65
61
  if (config.consoleLogEvents) {
66
62
  console.log('🚨🚨🚨 firing event', eventName, eventData);
67
63
  }
68
- if (!config.isProd) {
64
+ if (!eventName) {
65
+ console.error('No event name provided');
69
66
  return;
70
67
  }
71
68
  const event = {
@@ -92,7 +89,7 @@ export const useTrackEvent = () => {
92
89
  };
93
90
  };
94
91
  export const useAutoTrackEvent = (eventName, eventData) => {
95
- const previousEventData = useRef();
92
+ const previousEventData = useRef(undefined);
96
93
  const firedFirstEvent = useRef(false);
97
94
  useEffect(() => {
98
95
  if (isEqual(previousEventData.current, eventData) &&
package/dist/track.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"track.js","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"track.js","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1 +1,2 @@
1
- export { };
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
package/dist/utils.js CHANGED
@@ -2,54 +2,58 @@ export async function hashData(input) {
2
2
  const encoder = new TextEncoder();
3
3
  const data = encoder.encode(input);
4
4
  const hashBuffer = await crypto.subtle.digest('SHA-256', data);
5
- const hashArray = Array.from(new Uint8Array(hashBuffer)) // Convert buffer to byte array
6
- ;
7
- const hashHex = hashArray.map((b)=>b.toString(16).padStart(2, '0')).join('') // Convert bytes to hex string
8
- ;
5
+ const hashArray = Array.from(new Uint8Array(hashBuffer)); // Convert buffer to byte array
6
+ const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join(''); // Convert bytes to hex string
9
7
  return hashHex;
10
8
  }
11
- export const getCurrentTimestampMicros = ()=>{
9
+ export const getCurrentTimestampMicros = () => {
12
10
  const now = new Date();
13
11
  const epochMillis = now.getTime();
14
12
  const epochMicros = epochMillis * 1000;
15
13
  return epochMicros.toString();
16
14
  };
17
- export const extractAnalyticClientId = (cookie)=>{
15
+ export const extractAnalyticClientId = (cookie) => {
18
16
  const matches = cookie.split('.');
19
17
  if (matches.length > 2) {
20
18
  return `${matches[2]}.${matches[3]}`;
21
19
  }
22
20
  return null;
23
21
  };
24
- export const extractAnalyticSessionId = (cookie)=>{
22
+ export const extractAnalyticSessionId = (cookie) => {
25
23
  const matches = cookie.split('.');
26
24
  if (matches.length > 2) {
27
25
  return Number.parseInt(`${matches[2]}`);
28
26
  }
29
27
  return null;
30
28
  };
31
- export const convertGAUserData = async (dataInput)=>{
29
+ export const convertGAUserData = async (dataInput) => {
32
30
  const userAddress = dataInput.addresses?.home || dataInput.addresses?.billing;
33
31
  return {
34
32
  user_id: dataInput.id,
35
33
  email: await hashData(dataInput.email),
36
- phone_number: dataInput.phoneNumber ? await hashData(dataInput.phoneNumber) : undefined,
37
- address: userAddress ? {
38
- first_name: dataInput.firstName ? await hashData(dataInput.firstName) : undefined,
39
- last_name: dataInput.lastName ? await hashData(dataInput.lastName) : undefined,
40
- street: [
41
- userAddress.street1,
42
- userAddress.street2
43
- ].join(', '),
44
- city: userAddress.city,
45
- region: userAddress.state,
46
- postal_code: userAddress.postalCode,
47
- country: userAddress.country
48
- } : undefined
34
+ phone_number: dataInput.phoneNumber
35
+ ? await hashData(dataInput.phoneNumber)
36
+ : undefined,
37
+ address: userAddress
38
+ ? {
39
+ first_name: dataInput.firstName
40
+ ? await hashData(dataInput.firstName)
41
+ : undefined,
42
+ last_name: dataInput.lastName
43
+ ? await hashData(dataInput.lastName)
44
+ : undefined,
45
+ street: [userAddress.street1, userAddress.street2].join(', '),
46
+ city: userAddress.city,
47
+ region: userAddress.state,
48
+ postal_code: userAddress.postalCode,
49
+ country: userAddress.country,
50
+ }
51
+ : undefined,
49
52
  };
50
53
  };
51
- export const convertFacebookUserData = async (userData)=>{
52
- if (!userData) return {};
54
+ export const convertFacebookUserData = async (userData) => {
55
+ if (!userData)
56
+ return {};
53
57
  const data = {};
54
58
  if (userData.email) {
55
59
  data.em = await hashData(userData.email.toLowerCase().trim());
@@ -67,3 +71,4 @@ export const convertFacebookUserData = async (userData)=>{
67
71
  }
68
72
  return data;
69
73
  };
74
+ //# sourceMappingURL=utils.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@driveflux/web-analytics",
3
- "version": "1.6.6",
3
+ "version": "1.7.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./track": {
@@ -20,26 +20,26 @@
20
20
  "dist"
21
21
  ],
22
22
  "dependencies": {
23
- "@driveflux/fetch": "6.4.0",
24
- "@driveflux/singleton": "1.6.1",
25
- "@next/third-parties": "^15.0.0",
23
+ "@driveflux/fetch": "6.5.0",
24
+ "@driveflux/singleton": "1.7.0",
25
+ "@next/third-parties": "^15.3.2",
26
26
  "lodash": "^4.17.21"
27
27
  },
28
28
  "devDependencies": {
29
- "@driveflux/fab": "2.4.0",
30
- "@driveflux/tsconfig": "1.3.0",
31
- "@swc/cli": "0.4.1-nightly.20240914",
32
- "@swc/core": "1.7.39",
33
- "@types/lodash": "^4.17.12",
34
- "@types/node": "^22.7.8",
35
- "@types/react": "^18.3.11",
29
+ "@driveflux/fab": "2.5.0",
30
+ "@driveflux/tsconfig": "1.4.0",
31
+ "@swc/cli": "0.7.5",
32
+ "@swc/core": "1.11.24",
33
+ "@types/lodash": "^4.17.16",
34
+ "@types/node": "^22.15.16",
35
+ "@types/react": "^19.1.3",
36
36
  "del-cli": "^6.0.0",
37
- "react": "^19.0.0",
38
- "type-fest": "^4.26.1",
39
- "typescript": "^5.6.3"
37
+ "react": "19.1.0",
38
+ "type-fest": "^4.41.0",
39
+ "typescript": "^5.8.3"
40
40
  },
41
41
  "peerDependencies": {
42
- "react": "^19.0.0"
42
+ "react": "19.1.0"
43
43
  },
44
44
  "scripts": {
45
45
  "build": "fab",