@codeleap/analytics 7.0.0 → 7.0.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.
@@ -0,0 +1,49 @@
1
+ import { obfuscate } from '../obfuscate';
2
+ export * from './types';
3
+ /**
4
+ * Generic analytics dispatcher that merges shared context, obfuscates sensitive fields, and fans out to `onEvent` / `onInteraction` handlers.
5
+ * All tracking is silently skipped when `enabled` is false; errors are routed to `onError` rather than thrown.
6
+ */
7
+ export class Analytics {
8
+ prepareAnalyticsData() {
9
+ const data = this.options.prepareData();
10
+ return data;
11
+ }
12
+ obfuscateAnalyticsData(data) {
13
+ return obfuscate({
14
+ object: data,
15
+ keys: this.options.obfuscateKeys || [],
16
+ values: this.options.obfuscateValues || [],
17
+ });
18
+ }
19
+ constructor(options, functions) {
20
+ this.options = options;
21
+ this.functions = functions;
22
+ this.enabled = options.enabled;
23
+ if (options.enabled) {
24
+ this.options.init();
25
+ }
26
+ }
27
+ event(name, data = {}) {
28
+ this.handle(name, data, 'event', this.functions.onEvent);
29
+ }
30
+ interaction(name, data = {}) {
31
+ this.handle(name, data, 'interaction', this.functions.onInteraction);
32
+ }
33
+ handle(name, data, type, fn) {
34
+ if (!this.enabled)
35
+ return;
36
+ try {
37
+ const obfuscated = this.obfuscateAnalyticsData(Object.assign(Object.assign({}, data), this.prepareAnalyticsData()));
38
+ fn({
39
+ name,
40
+ type,
41
+ data: obfuscated,
42
+ });
43
+ }
44
+ catch (e) {
45
+ this.functions.onError(e);
46
+ }
47
+ }
48
+ }
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Analytics/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,cAAc,SAAS,CAAA;AAEvB;;;GAGG;AACH,MAAM,OAAO,SAAS;IAGZ,oBAAoB;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;QACvC,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,sBAAsB,CAAC,IAAS;QACtC,OAAO,SAAS,CAAC;YACf,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE;YACtC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE;SAC3C,CAAC,CAAA;IACJ,CAAC;IAED,YACU,OAAyB,EACzB,SAA6B;QAD7B,YAAO,GAAP,OAAO,CAAkB;QACzB,cAAS,GAAT,SAAS,CAAoB;QAErC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAE9B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAyB,IAAO,EAAE,OAAkB,EAAe;QACtE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1D,CAAC;IAED,WAAW,CAAyB,IAAO,EAAE,OAAkB,EAAe;QAC5E,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;IACtE,CAAC;IAEO,MAAM,CAAC,IAAkB,EAAE,IAAS,EAAE,IAA6B,EAAE,EAAe;QAC1F,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEzB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,iCACzC,IAAI,GACJ,IAAI,CAAC,oBAAoB,EAAE,EAC9B,CAAA;YAEF,EAAE,CAAC;gBACD,IAAI;gBACJ,IAAI;gBACJ,IAAI,EAAE,UAAU;aACjB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Analytics/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,121 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __rest = (this && this.__rest) || function (s, e) {
11
+ var t = {};
12
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
+ t[p] = s[p];
14
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
+ t[p[i]] = s[p[i]];
18
+ }
19
+ return t;
20
+ };
21
+ export * from './types';
22
+ const defaultConfig = {
23
+ getUserTraits: (user) => user,
24
+ mode: 'prod',
25
+ prefix: {
26
+ 'dev': 'dev',
27
+ 'prod': null,
28
+ },
29
+ };
30
+ /**
31
+ * Platform-agnostic wrapper around a Segment analytics client.
32
+ * The underlying client is created via `createClient` at construction; all methods are no-ops until then or when `enabled` is false.
33
+ * Event names are automatically prefixed/suffixed per mode (e.g. `dev_` in dev) so staging traffic never pollutes prod workspaces.
34
+ * `identifyUser` is idempotent within a session — it calls `identify` at most once per instance.
35
+ */
36
+ export class Segment {
37
+ get enabled() {
38
+ return this.client !== null && this._enabled;
39
+ }
40
+ get eventPrefix() {
41
+ var _a, _b;
42
+ const modePrefix = (_b = (_a = this.config.prefix) === null || _a === void 0 ? void 0 : _a[this.config.mode]) !== null && _b !== void 0 ? _b : null;
43
+ return !modePrefix ? '' : `${modePrefix}_`;
44
+ }
45
+ get eventSuffix() {
46
+ var _a, _b;
47
+ const modeSuffix = (_b = (_a = this.config.suffix) === null || _a === void 0 ? void 0 : _a[this.config.mode]) !== null && _b !== void 0 ? _b : null;
48
+ return !modeSuffix ? '' : `_${modeSuffix}`;
49
+ }
50
+ constructor(config) {
51
+ this.config = defaultConfig;
52
+ this._enabled = true;
53
+ this.apiKey = null;
54
+ this.client = null;
55
+ this.identifiedUser = false;
56
+ const { apiKey, enabled = true, createClient } = config, generalConfig = __rest(config, ["apiKey", "enabled", "createClient"]);
57
+ this.config = Object.assign(Object.assign({}, this.config), generalConfig);
58
+ this.apiKey = apiKey;
59
+ this._enabled = enabled;
60
+ if (enabled) {
61
+ this.client = createClient(this.apiKey);
62
+ }
63
+ }
64
+ buildEventName(name) {
65
+ return `${this.eventPrefix}${name}${this.eventSuffix}`;
66
+ }
67
+ track(eventName_1) {
68
+ return __awaiter(this, arguments, void 0, function* (eventName, properties = undefined) {
69
+ var _a, _b;
70
+ if (!this.enabled)
71
+ return;
72
+ yield ((_b = (_a = this.client) === null || _a === void 0 ? void 0 : _a.track) === null || _b === void 0 ? void 0 : _b.call(_a, this.buildEventName(eventName), properties));
73
+ });
74
+ }
75
+ screen(name_1) {
76
+ return __awaiter(this, arguments, void 0, function* (name, options = undefined) {
77
+ var _a, _b;
78
+ if (!this.enabled)
79
+ return;
80
+ yield ((_b = (_a = this.client) === null || _a === void 0 ? void 0 : _a.screen) === null || _b === void 0 ? void 0 : _b.call(_a, this.buildEventName(name), options));
81
+ });
82
+ }
83
+ group(groupId_1) {
84
+ return __awaiter(this, arguments, void 0, function* (groupId, groupTraits = undefined) {
85
+ var _a;
86
+ if (!this.enabled)
87
+ return;
88
+ yield ((_a = this.client) === null || _a === void 0 ? void 0 : _a.group(this.buildEventName(groupId), groupTraits));
89
+ });
90
+ }
91
+ alias(newUserId) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ var _a;
94
+ if (!this.enabled)
95
+ return;
96
+ yield ((_a = this.client) === null || _a === void 0 ? void 0 : _a.alias(newUserId));
97
+ });
98
+ }
99
+ reset() {
100
+ return __awaiter(this, void 0, void 0, function* () {
101
+ var _a;
102
+ if (!this.enabled)
103
+ return;
104
+ yield ((_a = this.client) === null || _a === void 0 ? void 0 : _a.reset());
105
+ });
106
+ }
107
+ identifyUser(user) {
108
+ return __awaiter(this, void 0, void 0, function* () {
109
+ var _a, _b;
110
+ if (!this.enabled || this.identifiedUser)
111
+ return;
112
+ const userTraits = this.config.getUserTraits(user);
113
+ yield ((_b = (_a = this.client) === null || _a === void 0 ? void 0 : _a.identify) === null || _b === void 0 ? void 0 : _b.call(_a, user === null || user === void 0 ? void 0 : user.id, userTraits));
114
+ this.identifiedUser = true;
115
+ });
116
+ }
117
+ setMode(newMode) {
118
+ this.config = Object.assign(Object.assign({}, this.config), { mode: newMode });
119
+ }
120
+ }
121
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Segment/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Segment/types.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './Segment';
2
+ export * from './Analytics';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA"}
@@ -0,0 +1,76 @@
1
+ /// <reference types="node" />
2
+ import { cloneDeep } from '@codeleap/utils';
3
+ import { inspect } from 'util';
4
+ import parse from 'url-parse';
5
+ function removeKey(obj, key) {
6
+ if (obj === null || obj === void 0 ? void 0 : obj.hasOwnProperty(key)) {
7
+ obj[key] = '[secret]';
8
+ }
9
+ for (const subObj in obj) {
10
+ if (typeof obj[subObj] == 'object') {
11
+ removeKey(obj[subObj], key);
12
+ }
13
+ }
14
+ }
15
+ function removeValue(obj, value) {
16
+ for (const subObj in obj) {
17
+ const isString = typeof obj[subObj] == 'string';
18
+ if (isString) {
19
+ const isRegex = value instanceof RegExp;
20
+ const match = isRegex ? value.test(obj[subObj]) : obj[subObj].includes(value);
21
+ if (match) {
22
+ if (obj[subObj].startsWith('http')) {
23
+ const url = parse(obj[subObj]);
24
+ obj[subObj] = `${url.origin}${url.pathname}/[secret]`;
25
+ }
26
+ else {
27
+ obj[subObj] = '[secret]';
28
+ }
29
+ }
30
+ }
31
+ if (typeof obj[subObj] == 'object') {
32
+ removeValue(obj[subObj], value);
33
+ }
34
+ }
35
+ }
36
+ /**
37
+ * Deep-clones `object` and replaces matched keys with `"[secret]"` and matched values with `"[secret]"` (or strips query strings from URLs).
38
+ * Handles circular references gracefully by returning a shallow copy with a `WARNING` flag instead of throwing.
39
+ */
40
+ export function obfuscate(args) {
41
+ const { object, keys, values } = args;
42
+ let isCircular = false;
43
+ try {
44
+ JSON.stringify(args);
45
+ }
46
+ catch (e) {
47
+ isCircular = true;
48
+ }
49
+ if (typeof object === 'object' && !isCircular) {
50
+ let cleanData = {};
51
+ try {
52
+ cleanData = cloneDeep(object);
53
+ keys.forEach(fieldName => removeKey(cleanData, fieldName));
54
+ values.forEach(fieldName => removeValue(cleanData, fieldName));
55
+ }
56
+ catch (err1) {
57
+ try {
58
+ cleanData = inspect(object, { depth: 1 });
59
+ }
60
+ catch (err2) {
61
+ cleanData = { value: `Couldn't process data` };
62
+ }
63
+ }
64
+ const result = cleanData;
65
+ return result;
66
+ }
67
+ else {
68
+ if (isCircular) {
69
+ return Object.assign(Object.assign({}, args.object), { WARNING: 'Circular reference detected' });
70
+ }
71
+ else {
72
+ return args.object;
73
+ }
74
+ }
75
+ }
76
+ //# sourceMappingURL=obfuscate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obfuscate.js","sourceRoot":"","sources":["../src/obfuscate.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,KAAK,MAAM,WAAW,CAAA;AAQ7B,SAAS,SAAS,CAAC,GAAwB,EAAE,GAAQ;IACnD,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAA;IACvB,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACnC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAwB,EAAE,KAAU;IACvD,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAA;QAC/C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,KAAK,YAAY,MAAM,CAAA;YACvC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC7E,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;oBAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,WAAW,CAAA;gBACvD,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,CAAA;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACnC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAmB;IAC3C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAErC,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACtB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,UAAU,GAAG,IAAI,CAAA;IACnB,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9C,IAAI,SAAS,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC;YACH,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;YAC7B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;YAC1D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;QAChE,CAAC;QAAC,OAAO,IAAI,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;YAC3C,CAAC;YAAC,OAAO,IAAI,EAAE,CAAC;gBACd,SAAS,GAAG,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAA;YAChD,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,CAAA;QACxB,OAAO,MAAM,CAAA;IACf,CAAC;SAAM,CAAC;QACN,IAAI,UAAU,EAAE,CAAC;YACf,uCAAY,IAAI,CAAC,MAAM,KAAE,OAAO,EAAE,6BAA6B,IAAE;QACnE,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;IACH,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@codeleap/analytics",
3
- "version": "7.0.0",
4
- "main": "src/index.ts",
3
+ "version": "7.0.1",
4
+ "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {
7
7
  ".": {
@@ -22,9 +22,9 @@
22
22
  "directory": "packages/analytics"
23
23
  },
24
24
  "devDependencies": {
25
- "@codeleap/config": "7.0.0",
26
- "@codeleap/types": "7.0.0",
27
- "@codeleap/utils": "7.0.0",
25
+ "@codeleap/config": "7.0.1",
26
+ "@codeleap/types": "7.0.1",
27
+ "@codeleap/utils": "7.0.1",
28
28
  "ts-node-dev": "1.1.8"
29
29
  },
30
30
  "scripts": {
@@ -32,8 +32,8 @@
32
32
  "typecheck": "bun tsc --noEmit -p ./tsconfig.json"
33
33
  },
34
34
  "peerDependencies": {
35
- "@codeleap/utils": "7.0.0",
36
- "@codeleap/types": "7.0.0",
35
+ "@codeleap/utils": "7.0.1",
36
+ "@codeleap/types": "7.0.1",
37
37
  "typescript": "5.5.2"
38
38
  }
39
39
  }