@mostly-good-metrics/javascript 0.4.4 → 0.5.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/README.md +50 -4
- package/dist/cjs/client.js +91 -21
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/index.js +7 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/storage.js +185 -1
- package/dist/cjs/storage.js.map +1 -1
- package/dist/cjs/types.js +2 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils.js +29 -0
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/client.js +92 -22
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/index.js +6 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/storage.js +185 -1
- package/dist/esm/storage.js.map +1 -1
- package/dist/esm/types.js +2 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils.js +28 -0
- package/dist/esm/utils.js.map +1 -1
- package/dist/types/client.d.ts +28 -5
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/index.d.ts +7 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/storage.d.ts +56 -1
- package/dist/types/storage.d.ts.map +1 -1
- package/dist/types/types.d.ts +49 -15
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils.d.ts +5 -0
- package/dist/types/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client.test.ts +172 -1
- package/src/client.ts +113 -21
- package/src/index.ts +7 -2
- package/src/storage.test.ts +126 -0
- package/src/storage.ts +204 -1
- package/src/types.ts +60 -15
- package/src/utils.test.ts +21 -0
- package/src/utils.ts +29 -0
package/dist/cjs/types.js
CHANGED
|
@@ -26,6 +26,7 @@ exports.SystemEvents = {
|
|
|
26
26
|
APP_UPDATED: '$app_updated',
|
|
27
27
|
APP_OPENED: '$app_opened',
|
|
28
28
|
APP_BACKGROUNDED: '$app_backgrounded',
|
|
29
|
+
IDENTIFY: '$identify',
|
|
29
30
|
};
|
|
30
31
|
/**
|
|
31
32
|
* System property keys (prefixed with $).
|
|
@@ -47,7 +48,7 @@ exports.DefaultConfiguration = {
|
|
|
47
48
|
flushInterval: 30,
|
|
48
49
|
maxStoredEvents: 10000,
|
|
49
50
|
enableDebugLogging: false,
|
|
50
|
-
trackAppLifecycleEvents:
|
|
51
|
+
trackAppLifecycleEvents: false,
|
|
51
52
|
};
|
|
52
53
|
/**
|
|
53
54
|
* Validation constraints.
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAqWA;;GAEG;AACH,MAAa,QAAS,SAAQ,KAAK;IAKjC,YACE,IAAkB,EAClB,OAAe,EACf,OAAsD;QAEtD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;QAEtC,uEAAuE;QACvE,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AArBD,4BAqBC;AAED;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,aAAa,EAAE,gBAAgB;IAC/B,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,aAAa;IACzB,gBAAgB,EAAE,mBAAmB;IACrC,QAAQ,EAAE,WAAW;CACb,CAAC;AAiBX;;GAEG;AACU,QAAA,gBAAgB,GAAG;IAC9B,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,eAAe;IAC7B,OAAO,EAAE,UAAU;IACnB,gBAAgB,EAAE,mBAAmB;IACrC,GAAG,EAAE,MAAM;CACH,CAAC;AAEX;;GAEG;AACU,QAAA,oBAAoB,GAAG;IAClC,OAAO,EAAE,sCAAsC;IAC/C,WAAW,EAAE,YAAY;IACzB,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,KAAK;IACtB,kBAAkB,EAAE,KAAK;IACzB,uBAAuB,EAAE,KAAK;CACtB,CAAC;AAEX;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,qBAAqB,EAAE,GAAG;IAC1B,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,CAAC;IACjB,kBAAkB,EAAE,CAAC;IACrB,iBAAiB,EAAE,GAAG;IACtB,0BAA0B,EAAE,IAAI;IAChC,kBAAkB,EAAE,CAAC;IACrB,uBAAuB,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO;IAC3C,2BAA2B,EAAE,IAAI,EAAE,MAAM;CACjC,CAAC;AAEX;;;GAGG;AACU,QAAA,gBAAgB,GAAG,4BAA4B,CAAC"}
|
package/dist/cjs/utils.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateUUID = generateUUID;
|
|
4
|
+
exports.generateAnonymousId = generateAnonymousId;
|
|
4
5
|
exports.getISOTimestamp = getISOTimestamp;
|
|
5
6
|
exports.isValidEventName = isValidEventName;
|
|
6
7
|
exports.validateEventName = validateEventName;
|
|
@@ -30,6 +31,34 @@ function generateUUID() {
|
|
|
30
31
|
return v.toString(16);
|
|
31
32
|
});
|
|
32
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Generate a short random string for anonymous IDs.
|
|
36
|
+
* Uses base36 (0-9, a-z) for URL-safe, readable IDs.
|
|
37
|
+
*/
|
|
38
|
+
function generateRandomString(length) {
|
|
39
|
+
const chars = '0123456789abcdefghijklmnopqrstuvwxyz';
|
|
40
|
+
let result = '';
|
|
41
|
+
if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
|
|
42
|
+
const array = new Uint8Array(length);
|
|
43
|
+
crypto.getRandomValues(array);
|
|
44
|
+
for (let i = 0; i < length; i++) {
|
|
45
|
+
result += chars[array[i] % chars.length];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
for (let i = 0; i < length; i++) {
|
|
50
|
+
result += chars[Math.floor(Math.random() * chars.length)];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Generate an anonymous user ID with $anon_ prefix.
|
|
57
|
+
* Format: $anon_xxxxxxxxxxxx (12 random chars)
|
|
58
|
+
*/
|
|
59
|
+
function generateAnonymousId() {
|
|
60
|
+
return `$anon_${generateRandomString(12)}`;
|
|
61
|
+
}
|
|
33
62
|
/**
|
|
34
63
|
* Get the current timestamp in ISO8601 format.
|
|
35
64
|
*/
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;AAiBA,oCAYC;AAKD,0CAEC;AAOD,4CAKC;AAKD,8CAkBC;AAKD,gDAcC;AA6DD,oDAoCC;AAmBD,wCAQC;AAKD,4CA0BC;AAKD,oCA0BC;AAKD,wCAyBC;AAKD,sBAEC;AAKD,8BAKC;AAKD,kCAMC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;AAiBA,oCAYC;AA2BD,kDAEC;AAKD,0CAEC;AAOD,4CAKC;AAKD,8CAkBC;AAKD,gDAcC;AA6DD,oDAoCC;AAmBD,wCAQC;AAKD,4CA0BC;AAKD,oCA0BC;AAKD,wCAyBC;AAKD,sBAEC;AAKD,8BAKC;AAKD,kCAMC;AA3WD,qCAAkC;AAClC,mCAWiB;AAEjB;;GAEG;AACH,SAAgB,YAAY;IAC1B,uEAAuE;IACvE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC7E,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IAED,0BAA0B;IAC1B,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACnE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,sCAAsC,CAAC;IACrD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB;IACjC,OAAO,SAAS,oBAAoB,CAAC,EAAE,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,mBAAW,CAAC,qBAAqB,EAAE,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,wBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,gBAAQ,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,mBAAW,CAAC,qBAAqB,EAAE,CAAC;QACpD,MAAM,IAAI,gBAAQ,CAChB,oBAAoB,EACpB,sBAAsB,mBAAW,CAAC,qBAAqB,qBAAqB,CAC7E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,wBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,gBAAQ,CAChB,oBAAoB,EACpB,uHAAuH,CACxH,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,UAAuC,EACvC,WAAmB,mBAAW,CAAC,kBAAkB;IAEjD,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrF,OAAO,SAA4B,CAAC;IACtC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CACpB,KAAyB,EACzB,KAAa,EACb,QAAgB;IAEhB,gBAAgB;IAChB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa;IACb,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+BAA+B;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,mBAAW,CAAC,0BAA0B,EAAE,CAAC;YAC1D,eAAM,CAAC,KAAK,CACV,mCAAmC,KAAK,CAAC,MAAM,OAAO,mBAAW,CAAC,0BAA0B,aAAa,CAC1G,CAAC;YACF,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,mBAAW,CAAC,0BAA0B,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS;IACT,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YACtB,eAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,UAAU;IACV,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YACtB,eAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAuC,EAAE,CAAC;QACtD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,iCAAiC;IACjC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,MAAwB;IAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,4BAAoB,CAAC,YAAY,EAAE,mBAAW,CAAC,cAAc,CAAC,EAC9F,mBAAW,CAAC,cAAc,CAC3B,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,MAAM,CAAC,aAAa,IAAI,4BAAoB,CAAC,aAAa,EAC1D,mBAAW,CAAC,kBAAkB,CAC/B,CAAC;IAEF,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAC9B,MAAM,CAAC,eAAe,IAAI,4BAAoB,CAAC,eAAe,EAC9D,mBAAW,CAAC,iBAAiB,CAC9B,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,4BAAoB,CAAC,OAAO;QACvD,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,4BAAoB,CAAC,WAAW;QACnE,YAAY;QACZ,aAAa;QACb,eAAe;QACf,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,4BAAoB,CAAC,kBAAkB;QACxF,uBAAuB,EACrB,MAAM,CAAC,uBAAuB,IAAI,4BAAoB,CAAC,uBAAuB;QAChF,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,cAAc,EAAE;QAC7C,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;QACnC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;QACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,cAAc,EAAE;QAC7C,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,YAAY;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;QACnC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,cAAc;IACrB,+BAA+B;IAC/B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,sEAAsE;IACtE,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc;IAC5B,oBAAoB;IACpB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0CAA0C;IAC1C,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IAE7C,kCAAkC;IAClC,IAAI,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,sEAAsE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACpF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,4DAA4D,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wCAAwC;IACxC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY;IAC1B,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAC7D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC;IAE/B,4CAA4C;IAC5C,MAAM,QAAQ,GAAuB;QACnC,CAAC,sBAAsB,EAAE,SAAS,CAAC;QACnC,CAAC,qBAAqB,EAAE,OAAO,CAAC;QAChC,CAAC,qBAAqB,EAAE,KAAK,CAAC;QAC9B,CAAC,oBAAoB,EAAE,QAAQ,CAAC;QAChC,CAAC,mBAAmB,EAAE,SAAS,CAAC;QAChC,CAAC,QAAQ,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;YACnD,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAC7D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC;IAE/B,0CAA0C;IAC1C,MAAM,QAAQ,GAAuB;QACnC,CAAC,mBAAmB,EAAE,QAAQ,CAAC;QAC/B,CAAC,oBAAoB,EAAE,SAAS,CAAC;QACjC,CAAC,mBAAmB,EAAE,QAAQ,CAAC;QAC/B,CAAC,iBAAiB,EAAE,MAAM,CAAC;QAC3B,CAAC,gBAAgB,EAAE,IAAI,CAAC;QACxB,CAAC,uBAAuB,EAAE,IAAI,CAAC;KAChC,CAAC;IAEF,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,GAAG,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAgB,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS;IACvB,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW;IACzB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/dist/esm/client.js
CHANGED
|
@@ -2,7 +2,7 @@ import { logger, setDebugLogging } from './logger';
|
|
|
2
2
|
import { createDefaultNetworkClient } from './network';
|
|
3
3
|
import { createDefaultStorage, persistence } from './storage';
|
|
4
4
|
import { SystemEvents, SystemProperties, } from './types';
|
|
5
|
-
import { delay, detectDeviceType, generateUUID, getDeviceModel, getISOTimestamp, getLocale, getOSVersion, getTimezone, resolveConfiguration, sanitizeProperties, validateEventName, } from './utils';
|
|
5
|
+
import { delay, detectDeviceType, generateAnonymousId, generateUUID, getDeviceModel, getISOTimestamp, getLocale, getOSVersion, getTimezone, resolveConfiguration, sanitizeProperties, validateEventName, } from './utils';
|
|
6
6
|
const FLUSH_DELAY_MS = 100; // Delay between batch sends
|
|
7
7
|
/**
|
|
8
8
|
* Main client for MostlyGoodMetrics.
|
|
@@ -37,6 +37,9 @@ export class MostlyGoodMetrics {
|
|
|
37
37
|
};
|
|
38
38
|
this.config = resolveConfiguration(config);
|
|
39
39
|
this.sessionIdValue = generateUUID();
|
|
40
|
+
// Configure cookie settings before initializing anonymous ID
|
|
41
|
+
persistence.configureCookies(config.cookieDomain, config.disableCookies);
|
|
42
|
+
this.anonymousIdValue = persistence.initializeAnonymousId(config.anonymousId, generateAnonymousId);
|
|
40
43
|
// Set up logging
|
|
41
44
|
setDebugLogging(this.config.enableDebugLogging);
|
|
42
45
|
// Initialize storage
|
|
@@ -87,9 +90,9 @@ export class MostlyGoodMetrics {
|
|
|
87
90
|
MostlyGoodMetrics.instance = null;
|
|
88
91
|
}
|
|
89
92
|
}
|
|
90
|
-
//
|
|
93
|
+
// =====================================================
|
|
91
94
|
// Static convenience methods (delegate to shared instance)
|
|
92
|
-
//
|
|
95
|
+
// =====================================================
|
|
93
96
|
/**
|
|
94
97
|
* Track an event with the given name and optional properties.
|
|
95
98
|
*/
|
|
@@ -97,10 +100,12 @@ export class MostlyGoodMetrics {
|
|
|
97
100
|
MostlyGoodMetrics.instance?.track(name, properties);
|
|
98
101
|
}
|
|
99
102
|
/**
|
|
100
|
-
* Identify the current user.
|
|
103
|
+
* Identify the current user with optional profile data.
|
|
104
|
+
* @param userId The user's unique identifier
|
|
105
|
+
* @param profile Optional profile data (email, name)
|
|
101
106
|
*/
|
|
102
|
-
static identify(userId) {
|
|
103
|
-
MostlyGoodMetrics.instance?.identify(userId);
|
|
107
|
+
static identify(userId, profile) {
|
|
108
|
+
MostlyGoodMetrics.instance?.identify(userId, profile);
|
|
104
109
|
}
|
|
105
110
|
/**
|
|
106
111
|
* Reset user identity.
|
|
@@ -162,9 +167,9 @@ export class MostlyGoodMetrics {
|
|
|
162
167
|
static getSuperProperties() {
|
|
163
168
|
return MostlyGoodMetrics.instance?.getSuperProperties() ?? {};
|
|
164
169
|
}
|
|
165
|
-
//
|
|
170
|
+
// =====================================================
|
|
166
171
|
// Instance properties
|
|
167
|
-
//
|
|
172
|
+
// =====================================================
|
|
168
173
|
/**
|
|
169
174
|
* Get the current user ID.
|
|
170
175
|
*/
|
|
@@ -177,6 +182,12 @@ export class MostlyGoodMetrics {
|
|
|
177
182
|
get sessionId() {
|
|
178
183
|
return this.sessionIdValue;
|
|
179
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Get the anonymous ID (auto-generated UUID, persisted across sessions).
|
|
187
|
+
*/
|
|
188
|
+
get anonymousId() {
|
|
189
|
+
return this.anonymousIdValue;
|
|
190
|
+
}
|
|
180
191
|
/**
|
|
181
192
|
* Check if a flush operation is in progress.
|
|
182
193
|
*/
|
|
@@ -189,9 +200,9 @@ export class MostlyGoodMetrics {
|
|
|
189
200
|
get configuration() {
|
|
190
201
|
return { ...this.config };
|
|
191
202
|
}
|
|
192
|
-
//
|
|
203
|
+
// =====================================================
|
|
193
204
|
// Instance methods
|
|
194
|
-
//
|
|
205
|
+
// =====================================================
|
|
195
206
|
/**
|
|
196
207
|
* Track an event with the given name and optional properties.
|
|
197
208
|
*/
|
|
@@ -218,11 +229,11 @@ export class MostlyGoodMetrics {
|
|
|
218
229
|
name,
|
|
219
230
|
client_event_id: generateUUID(),
|
|
220
231
|
timestamp: getISOTimestamp(),
|
|
221
|
-
|
|
222
|
-
|
|
232
|
+
user_id: this.userId ?? this.anonymousIdValue,
|
|
233
|
+
session_id: this.sessionIdValue,
|
|
223
234
|
platform: this.config.platform,
|
|
224
|
-
|
|
225
|
-
|
|
235
|
+
app_version: this.config.appVersion || undefined,
|
|
236
|
+
os_version: this.config.osVersion || getOSVersion() || undefined,
|
|
226
237
|
environment: this.config.environment,
|
|
227
238
|
locale: getLocale(),
|
|
228
239
|
timezone: getTimezone(),
|
|
@@ -237,22 +248,81 @@ export class MostlyGoodMetrics {
|
|
|
237
248
|
void this.checkBatchSize();
|
|
238
249
|
}
|
|
239
250
|
/**
|
|
240
|
-
* Identify the current user.
|
|
251
|
+
* Identify the current user with optional profile data.
|
|
252
|
+
* Profile data is sent to the backend via the $identify event.
|
|
253
|
+
* Debouncing: only sends $identify if payload changed or >24h since last send.
|
|
254
|
+
*
|
|
255
|
+
* @param userId The user's unique identifier
|
|
256
|
+
* @param profile Optional profile data (email, name)
|
|
241
257
|
*/
|
|
242
|
-
identify(userId) {
|
|
258
|
+
identify(userId, profile) {
|
|
243
259
|
if (!userId) {
|
|
244
260
|
logger.warn('identify called with empty userId');
|
|
245
261
|
return;
|
|
246
262
|
}
|
|
247
263
|
logger.debug(`Identifying user: ${userId}`);
|
|
248
264
|
persistence.setUserId(userId);
|
|
265
|
+
// If profile data is provided, check if we should send $identify event
|
|
266
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- intentional truthy check for non-empty strings
|
|
267
|
+
if (profile && (profile.email || profile.name)) {
|
|
268
|
+
this.sendIdentifyEventIfNeeded(userId, profile);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Send $identify event if debounce conditions are met.
|
|
273
|
+
* Only sends if: hash changed OR more than 24 hours since last send.
|
|
274
|
+
*/
|
|
275
|
+
sendIdentifyEventIfNeeded(userId, profile) {
|
|
276
|
+
// Compute hash of the identify payload
|
|
277
|
+
const payloadString = JSON.stringify({ userId, email: profile.email, name: profile.name });
|
|
278
|
+
const currentHash = this.simpleHash(payloadString);
|
|
279
|
+
const storedHash = persistence.getIdentifyHash();
|
|
280
|
+
const lastSentAt = persistence.getIdentifyLastSentAt();
|
|
281
|
+
const now = Date.now();
|
|
282
|
+
const twentyFourHoursMs = 24 * 60 * 60 * 1000;
|
|
283
|
+
const hashChanged = storedHash !== currentHash;
|
|
284
|
+
const expiredTime = !lastSentAt || now - lastSentAt > twentyFourHoursMs;
|
|
285
|
+
if (hashChanged || expiredTime) {
|
|
286
|
+
logger.debug(`Sending $identify event (hashChanged=${hashChanged}, expiredTime=${expiredTime})`);
|
|
287
|
+
// Build properties object with only defined values
|
|
288
|
+
const properties = {};
|
|
289
|
+
if (profile.email) {
|
|
290
|
+
properties.email = profile.email;
|
|
291
|
+
}
|
|
292
|
+
if (profile.name) {
|
|
293
|
+
properties.name = profile.name;
|
|
294
|
+
}
|
|
295
|
+
// Track the $identify event
|
|
296
|
+
this.track(SystemEvents.IDENTIFY, properties);
|
|
297
|
+
// Update stored hash and timestamp
|
|
298
|
+
persistence.setIdentifyHash(currentHash);
|
|
299
|
+
persistence.setIdentifyLastSentAt(now);
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
logger.debug('Skipping $identify event (debounced)');
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Simple hash function for debouncing.
|
|
307
|
+
* Uses a basic string hash - not cryptographic, just for comparison.
|
|
308
|
+
*/
|
|
309
|
+
simpleHash(str) {
|
|
310
|
+
let hash = 0;
|
|
311
|
+
for (let i = 0; i < str.length; i++) {
|
|
312
|
+
const char = str.charCodeAt(i);
|
|
313
|
+
hash = (hash << 5) - hash + char;
|
|
314
|
+
hash = hash & hash; // Convert to 32-bit integer
|
|
315
|
+
}
|
|
316
|
+
return hash.toString(16);
|
|
249
317
|
}
|
|
250
318
|
/**
|
|
251
319
|
* Reset user identity.
|
|
320
|
+
* Clears the user ID and identify debounce state.
|
|
252
321
|
*/
|
|
253
322
|
resetIdentity() {
|
|
254
323
|
logger.debug('Resetting user identity');
|
|
255
324
|
persistence.setUserId(null);
|
|
325
|
+
persistence.clearIdentifyState();
|
|
256
326
|
}
|
|
257
327
|
/**
|
|
258
328
|
* Start a new session.
|
|
@@ -333,9 +403,9 @@ export class MostlyGoodMetrics {
|
|
|
333
403
|
this.removeLifecycleListeners();
|
|
334
404
|
logger.debug('MostlyGoodMetrics instance destroyed');
|
|
335
405
|
}
|
|
336
|
-
//
|
|
406
|
+
// =====================================================
|
|
337
407
|
// Private methods
|
|
338
|
-
//
|
|
408
|
+
// =====================================================
|
|
339
409
|
async checkBatchSize() {
|
|
340
410
|
const count = await this.storage.eventCount();
|
|
341
411
|
if (count >= this.config.maxBatchSize) {
|
|
@@ -394,10 +464,10 @@ export class MostlyGoodMetrics {
|
|
|
394
464
|
buildPayload(events) {
|
|
395
465
|
const context = {
|
|
396
466
|
platform: this.config.platform,
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
467
|
+
app_version: this.config.appVersion || undefined,
|
|
468
|
+
os_version: this.config.osVersion || getOSVersion() || undefined,
|
|
469
|
+
user_id: this.userId ?? this.anonymousIdValue,
|
|
470
|
+
session_id: this.sessionIdValue,
|
|
401
471
|
environment: this.config.environment,
|
|
402
472
|
locale: getLocale(),
|
|
403
473
|
timezone: getTimezone(),
|
package/dist/esm/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -19,8 +19,11 @@
|
|
|
19
19
|
* page: '/checkout',
|
|
20
20
|
* });
|
|
21
21
|
*
|
|
22
|
-
* // Identify users
|
|
23
|
-
* MostlyGoodMetrics.identify('user_123'
|
|
22
|
+
* // Identify users with profile data
|
|
23
|
+
* MostlyGoodMetrics.identify('user_123', {
|
|
24
|
+
* email: 'user@example.com',
|
|
25
|
+
* name: 'Jane Doe',
|
|
26
|
+
* });
|
|
24
27
|
* ```
|
|
25
28
|
*/
|
|
26
29
|
// Main client
|
|
@@ -34,7 +37,7 @@ export { InMemoryEventStorage, LocalStorageEventStorage, createDefaultStorage }
|
|
|
34
37
|
// Network client (for custom network implementations)
|
|
35
38
|
export { FetchNetworkClient, createDefaultNetworkClient } from './network';
|
|
36
39
|
// Utilities (for advanced usage)
|
|
37
|
-
export { generateUUID, getISOTimestamp, isValidEventName, validateEventName, sanitizeProperties, detectPlatform, detectDeviceType, getOSVersion, getDeviceModel, } from './utils';
|
|
40
|
+
export { generateAnonymousId, generateUUID, getISOTimestamp, isValidEventName, validateEventName, sanitizeProperties, detectPlatform, detectDeviceType, getOSVersion, getDeviceModel, } from './utils';
|
|
38
41
|
// Logger (for debugging)
|
|
39
42
|
export { logger } from './logger';
|
|
40
43
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,cAAc;AACd,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAqB7C,cAAc;AACd,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,YAAY;AACZ,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAEjB,wDAAwD;AACxD,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjG,sDAAsD;AACtD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAE3E,iCAAiC;AACjC,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,SAAS,CAAC;AAEjB,yBAAyB;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/esm/storage.js
CHANGED
|
@@ -2,8 +2,11 @@ import { logger } from './logger';
|
|
|
2
2
|
import { Constraints, MGMError } from './types';
|
|
3
3
|
const STORAGE_KEY = 'mostlygoodmetrics_events';
|
|
4
4
|
const USER_ID_KEY = 'mostlygoodmetrics_user_id';
|
|
5
|
+
const ANONYMOUS_ID_KEY = 'mostlygoodmetrics_anonymous_id';
|
|
5
6
|
const APP_VERSION_KEY = 'mostlygoodmetrics_app_version';
|
|
6
7
|
const SUPER_PROPERTIES_KEY = 'mostlygoodmetrics_super_properties';
|
|
8
|
+
const IDENTIFY_HASH_KEY = 'mostlygoodmetrics_identify_hash';
|
|
9
|
+
const IDENTIFY_TIMESTAMP_KEY = 'mostlygoodmetrics_identify_timestamp';
|
|
7
10
|
/**
|
|
8
11
|
* Check if we're running in a browser environment with localStorage available.
|
|
9
12
|
*/
|
|
@@ -21,6 +24,57 @@ function isLocalStorageAvailable() {
|
|
|
21
24
|
return false;
|
|
22
25
|
}
|
|
23
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if cookies are available in this environment.
|
|
29
|
+
*/
|
|
30
|
+
function isCookieAvailable() {
|
|
31
|
+
try {
|
|
32
|
+
if (typeof document === 'undefined' || typeof document.cookie === 'undefined') {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
// Test if we can actually set a cookie
|
|
36
|
+
const testKey = '__mgm_cookie_test__';
|
|
37
|
+
document.cookie = `${testKey}=test; path=/; max-age=60`;
|
|
38
|
+
const hasTest = document.cookie.indexOf(testKey) !== -1;
|
|
39
|
+
// Clean up test cookie
|
|
40
|
+
document.cookie = `${testKey}=; path=/; max-age=0`;
|
|
41
|
+
return hasTest;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get a cookie value by name.
|
|
49
|
+
*/
|
|
50
|
+
function getCookie(name) {
|
|
51
|
+
if (!isCookieAvailable()) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
const cookies = document.cookie.split(';');
|
|
55
|
+
for (const cookie of cookies) {
|
|
56
|
+
const [cookieName, cookieValue] = cookie.trim().split('=');
|
|
57
|
+
if (cookieName === name) {
|
|
58
|
+
return decodeURIComponent(cookieValue);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Set a cookie with optional domain for cross-subdomain support.
|
|
65
|
+
* Uses a 1-year expiry by default.
|
|
66
|
+
*/
|
|
67
|
+
function setCookie(name, value, domain) {
|
|
68
|
+
if (!isCookieAvailable()) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const maxAge = 365 * 24 * 60 * 60; // 1 year in seconds
|
|
72
|
+
let cookieString = `${name}=${encodeURIComponent(value)}; path=/; max-age=${maxAge}; SameSite=Lax`;
|
|
73
|
+
if (domain) {
|
|
74
|
+
cookieString += `; domain=${domain}`;
|
|
75
|
+
}
|
|
76
|
+
document.cookie = cookieString;
|
|
77
|
+
}
|
|
24
78
|
/**
|
|
25
79
|
* In-memory event storage implementation.
|
|
26
80
|
* Used as a fallback when localStorage is not available,
|
|
@@ -148,13 +202,31 @@ export function createDefaultStorage(maxEvents) {
|
|
|
148
202
|
}
|
|
149
203
|
/**
|
|
150
204
|
* Persistence helpers for user ID and app version.
|
|
151
|
-
*
|
|
205
|
+
* Uses cookies first (for cross-subdomain support), then localStorage as fallback.
|
|
152
206
|
*/
|
|
153
207
|
class PersistenceManager {
|
|
154
208
|
constructor() {
|
|
155
209
|
this.inMemoryUserId = null;
|
|
210
|
+
this.inMemoryAnonymousId = null;
|
|
156
211
|
this.inMemoryAppVersion = null;
|
|
157
212
|
this.inMemorySuperProperties = {};
|
|
213
|
+
this.cookieDomain = undefined;
|
|
214
|
+
this.disableCookies = false;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Configure cookie settings.
|
|
218
|
+
* @param cookieDomain Domain for cross-subdomain cookies (e.g., '.example.com')
|
|
219
|
+
* @param disableCookies If true, only use localStorage (no cookies)
|
|
220
|
+
*/
|
|
221
|
+
configureCookies(cookieDomain, disableCookies) {
|
|
222
|
+
this.cookieDomain = cookieDomain;
|
|
223
|
+
this.disableCookies = disableCookies ?? false;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Check if cookies should be used.
|
|
227
|
+
*/
|
|
228
|
+
shouldUseCookies() {
|
|
229
|
+
return !this.disableCookies && isCookieAvailable();
|
|
158
230
|
}
|
|
159
231
|
/**
|
|
160
232
|
* Get the persisted user ID.
|
|
@@ -179,6 +251,74 @@ class PersistenceManager {
|
|
|
179
251
|
}
|
|
180
252
|
this.inMemoryUserId = userId;
|
|
181
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* Get the anonymous ID (auto-generated UUID).
|
|
256
|
+
* Checks cookies first, then localStorage, then in-memory.
|
|
257
|
+
*/
|
|
258
|
+
getAnonymousId() {
|
|
259
|
+
// Try cookies first (for cross-subdomain support)
|
|
260
|
+
if (this.shouldUseCookies()) {
|
|
261
|
+
const cookieId = getCookie(ANONYMOUS_ID_KEY);
|
|
262
|
+
if (cookieId) {
|
|
263
|
+
return cookieId;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
// Fall back to localStorage
|
|
267
|
+
if (isLocalStorageAvailable()) {
|
|
268
|
+
return localStorage.getItem(ANONYMOUS_ID_KEY);
|
|
269
|
+
}
|
|
270
|
+
return this.inMemoryAnonymousId;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Set the anonymous ID (persists across sessions).
|
|
274
|
+
* Saves to both cookies and localStorage for redundancy.
|
|
275
|
+
*/
|
|
276
|
+
setAnonymousId(anonymousId) {
|
|
277
|
+
// Save to cookies if enabled
|
|
278
|
+
if (this.shouldUseCookies()) {
|
|
279
|
+
setCookie(ANONYMOUS_ID_KEY, anonymousId, this.cookieDomain);
|
|
280
|
+
}
|
|
281
|
+
// Also save to localStorage as fallback
|
|
282
|
+
if (isLocalStorageAvailable()) {
|
|
283
|
+
localStorage.setItem(ANONYMOUS_ID_KEY, anonymousId);
|
|
284
|
+
}
|
|
285
|
+
this.inMemoryAnonymousId = anonymousId;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Initialize the anonymous ID. If an override is provided, use it.
|
|
289
|
+
* Otherwise, use existing persisted ID or generate a new UUID.
|
|
290
|
+
* @param overrideId Optional ID from wrapper SDK (e.g., React Native device ID)
|
|
291
|
+
* @param generateUUID Function to generate a UUID
|
|
292
|
+
*/
|
|
293
|
+
initializeAnonymousId(overrideId, generateUUID) {
|
|
294
|
+
// If wrapper SDK provides an override, always use it
|
|
295
|
+
if (overrideId) {
|
|
296
|
+
this.setAnonymousId(overrideId);
|
|
297
|
+
return overrideId;
|
|
298
|
+
}
|
|
299
|
+
// Check for existing persisted anonymous ID
|
|
300
|
+
const existingId = this.getAnonymousId();
|
|
301
|
+
if (existingId) {
|
|
302
|
+
// Ensure it's saved to cookies if we have cookie support now
|
|
303
|
+
if (this.shouldUseCookies() && !getCookie(ANONYMOUS_ID_KEY)) {
|
|
304
|
+
setCookie(ANONYMOUS_ID_KEY, existingId, this.cookieDomain);
|
|
305
|
+
}
|
|
306
|
+
return existingId;
|
|
307
|
+
}
|
|
308
|
+
// Generate and persist a new anonymous ID
|
|
309
|
+
const newId = generateUUID();
|
|
310
|
+
this.setAnonymousId(newId);
|
|
311
|
+
return newId;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Reset the anonymous ID to a new UUID.
|
|
315
|
+
* @param generateUUID Function to generate a UUID
|
|
316
|
+
*/
|
|
317
|
+
resetAnonymousId(generateUUID) {
|
|
318
|
+
const newId = generateUUID();
|
|
319
|
+
this.setAnonymousId(newId);
|
|
320
|
+
return newId;
|
|
321
|
+
}
|
|
182
322
|
/**
|
|
183
323
|
* Get the persisted app version (for detecting updates).
|
|
184
324
|
*/
|
|
@@ -277,6 +417,50 @@ class PersistenceManager {
|
|
|
277
417
|
}
|
|
278
418
|
}
|
|
279
419
|
}
|
|
420
|
+
/**
|
|
421
|
+
* Get the stored identify hash (for debouncing).
|
|
422
|
+
*/
|
|
423
|
+
getIdentifyHash() {
|
|
424
|
+
if (isLocalStorageAvailable()) {
|
|
425
|
+
return localStorage.getItem(IDENTIFY_HASH_KEY);
|
|
426
|
+
}
|
|
427
|
+
return null;
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Set the identify hash.
|
|
431
|
+
*/
|
|
432
|
+
setIdentifyHash(hash) {
|
|
433
|
+
if (isLocalStorageAvailable()) {
|
|
434
|
+
localStorage.setItem(IDENTIFY_HASH_KEY, hash);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Get the timestamp of the last identify event sent.
|
|
439
|
+
*/
|
|
440
|
+
getIdentifyLastSentAt() {
|
|
441
|
+
if (isLocalStorageAvailable()) {
|
|
442
|
+
const timestamp = localStorage.getItem(IDENTIFY_TIMESTAMP_KEY);
|
|
443
|
+
return timestamp ? parseInt(timestamp, 10) : null;
|
|
444
|
+
}
|
|
445
|
+
return null;
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Set the timestamp of the last identify event sent.
|
|
449
|
+
*/
|
|
450
|
+
setIdentifyLastSentAt(timestamp) {
|
|
451
|
+
if (isLocalStorageAvailable()) {
|
|
452
|
+
localStorage.setItem(IDENTIFY_TIMESTAMP_KEY, timestamp.toString());
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Clear identify debounce state (used when resetting identity).
|
|
457
|
+
*/
|
|
458
|
+
clearIdentifyState() {
|
|
459
|
+
if (isLocalStorageAvailable()) {
|
|
460
|
+
localStorage.removeItem(IDENTIFY_HASH_KEY);
|
|
461
|
+
localStorage.removeItem(IDENTIFY_TIMESTAMP_KEY);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
280
464
|
}
|
|
281
465
|
export const persistence = new PersistenceManager();
|
|
282
466
|
//# sourceMappingURL=storage.js.map
|