Skip to content

Commit 3b8279c

Browse files
committed
adding fredy version
1 parent 214e714 commit 3b8279c

File tree

3 files changed

+75
-47
lines changed

3 files changed

+75
-47
lines changed

lib/services/tracking/Tracker.js

+62-47
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,90 @@
11
import Mixpanel from 'mixpanel';
2-
import { getJobs } from '../storage/jobStorage.js';
3-
import { getUniqueId } from './uniqueId.js';
4-
import { config, inDevMode } from '../../utils.js';
2+
import {getJobs} from '../storage/jobStorage.js';
3+
import {getUniqueId} from './uniqueId.js';
4+
import {config, inDevMode} from '../../utils.js';
55
import os from 'os';
6+
import {readFileSync} from 'fs';
7+
import {packageUp} from 'package-up';
68

79
const mixpanelTracker = Mixpanel.init('718670ef1c58c0208256c1e408a3d75e');
8-
910
const distinct_id = getUniqueId() || 'N/A';
11+
const version = await getPackageVersion();
1012

1113
export const track = function () {
12-
//only send tracking information if the user allowed to do so.
13-
if (config.analyticsEnabled && !inDevMode()) {
14-
const activeProvider = new Set();
15-
const activeAdapter = new Set();
14+
//only send tracking information if the user allowed to do so.
15+
if (config.analyticsEnabled && !inDevMode()) {
16+
const activeProvider = new Set();
17+
const activeAdapter = new Set();
1618

17-
const jobs = getJobs();
19+
const jobs = getJobs();
1820

19-
if (jobs != null && jobs.length > 0) {
20-
jobs.forEach((job) => {
21-
job.provider.forEach((provider) => {
22-
activeProvider.add(provider.id);
23-
});
24-
job.notificationAdapter.forEach((adapter) => {
25-
activeAdapter.add(adapter.id);
26-
});
27-
});
21+
if (jobs != null && jobs.length > 0) {
22+
jobs.forEach((job) => {
23+
job.provider.forEach((provider) => {
24+
activeProvider.add(provider.id);
25+
});
26+
job.notificationAdapter.forEach((adapter) => {
27+
activeAdapter.add(adapter.id);
28+
});
29+
});
2830

29-
mixpanelTracker.track(
30-
'fredy_tracking',
31-
enrichTrackingObject({
32-
adapter: Array.from(activeAdapter),
33-
provider: Array.from(activeProvider),
34-
}),
35-
);
31+
mixpanelTracker.track(
32+
'fredy_tracking',
33+
enrichTrackingObject({
34+
adapter: Array.from(activeAdapter),
35+
provider: Array.from(activeProvider),
36+
}),
37+
);
38+
}
3639
}
37-
}
3840
};
3941

4042
/**
4143
* Note, this will only be used when Fredy runs in demo mode
4244
*/
4345
export function trackDemoJobCreated(jobData) {
44-
if (config.analyticsEnabled && !inDevMode() && config.demoMode) {
45-
mixpanelTracker.track('demoJobCreated', enrichTrackingObject(jobData));
46-
}
46+
if (config.analyticsEnabled && !inDevMode() && config.demoMode) {
47+
mixpanelTracker.track('demoJobCreated', enrichTrackingObject(jobData));
48+
}
4749
}
4850

4951
/**
5052
* Note, this will only be used when Fredy runs in demo mode
5153
*/
5254
export function trackDemoAccessed() {
53-
if (config.analyticsEnabled && !inDevMode() && config.demoMode) {
54-
mixpanelTracker.track('demoAccessed', enrichTrackingObject({}));
55-
}
55+
if (config.analyticsEnabled && !inDevMode() && config.demoMode) {
56+
mixpanelTracker.track('demoAccessed', enrichTrackingObject({}));
57+
}
5658
}
5759

5860
function enrichTrackingObject(trackingObject) {
59-
const operating_system = os.platform();
60-
const os_version = os.release();
61-
const arch = process.arch;
62-
const language = process.env.LANG || 'en';
63-
const nodeVersion = process.version || 'N/A';
61+
const operating_system = os.platform();
62+
const os_version = os.release();
63+
const arch = process.arch;
64+
const language = process.env.LANG || 'en';
65+
const nodeVersion = process.version || 'N/A';
6466

65-
return {
66-
...trackingObject,
67-
isDemo: config.demoMode,
68-
operating_system,
69-
os_version,
70-
arch,
71-
nodeVersion,
72-
language,
73-
distinct_id,
74-
};
67+
return {
68+
...trackingObject,
69+
isDemo: config.demoMode,
70+
operating_system,
71+
os_version,
72+
arch,
73+
nodeVersion,
74+
language,
75+
distinct_id,
76+
fredy_version: version
77+
};
78+
}
79+
80+
async function getPackageVersion() {
81+
try {
82+
const packagePath = await packageUp();
83+
const packageJson = readFileSync(packagePath, 'utf8');
84+
const json = JSON.parse(packageJson);
85+
return json.version;
86+
} catch (error) {
87+
console.error('Error reading version from package.json', error);
88+
}
89+
return 'N/A';
7590
}

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
"nanoid": "5.0.9",
7070
"node-fetch": "3.3.2",
7171
"node-mailjet": "6.0.6",
72+
"package-up": "^5.0.0",
7273
"puppeteer": "^23.10.4",
7374
"puppeteer-extra": "^3.3.6",
7475
"puppeteer-extra-plugin-stealth": "^2.11.2",

yarn.lock

+12
Original file line numberDiff line numberDiff line change
@@ -3545,6 +3545,11 @@ filter-obj@^5.1.0:
35453545
resolved "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz"
35463546
integrity sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==
35473547

3548+
find-up-simple@^1.0.0:
3549+
version "1.0.0"
3550+
resolved "https://registry.yarnpkg.com/find-up-simple/-/find-up-simple-1.0.0.tgz#21d035fde9fdbd56c8f4d2f63f32fd93a1cfc368"
3551+
integrity sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==
3552+
35483553
find-up@^5.0.0:
35493554
version "5.0.0"
35503555
resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
@@ -5958,6 +5963,13 @@ pac-resolver@^7.0.1:
59585963
degenerator "^5.0.0"
59595964
netmask "^2.0.2"
59605965

5966+
package-up@^5.0.0:
5967+
version "5.0.0"
5968+
resolved "https://registry.yarnpkg.com/package-up/-/package-up-5.0.0.tgz#3facda2aa9248c0b68b3dddfa4c58d22aa3faea2"
5969+
integrity sha512-MQEgDUvXCa3sGvqHg3pzHO8e9gqTCMPVrWUko3vPQGntwegmFo52mZb2abIVTjFnUcW0BcPz0D93jV5Cas1DWA==
5970+
dependencies:
5971+
find-up-simple "^1.0.0"
5972+
59615973
parent-module@^1.0.0:
59625974
version "1.0.1"
59635975
resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"

0 commit comments

Comments
 (0)