@formo/analytics-react-native 0.1.0
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 +302 -0
- package/lib/commonjs/FormoAnalytics.js +526 -0
- package/lib/commonjs/FormoAnalytics.js.map +1 -0
- package/lib/commonjs/FormoAnalyticsProvider.js +265 -0
- package/lib/commonjs/FormoAnalyticsProvider.js.map +1 -0
- package/lib/commonjs/constants/config.js +69 -0
- package/lib/commonjs/constants/config.js.map +1 -0
- package/lib/commonjs/constants/events.js +30 -0
- package/lib/commonjs/constants/events.js.map +1 -0
- package/lib/commonjs/constants/index.js +39 -0
- package/lib/commonjs/constants/index.js.map +1 -0
- package/lib/commonjs/constants/storage.js +23 -0
- package/lib/commonjs/constants/storage.js.map +1 -0
- package/lib/commonjs/index.js +65 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/lib/consent/index.js +56 -0
- package/lib/commonjs/lib/consent/index.js.map +1 -0
- package/lib/commonjs/lib/event/EventFactory.js +493 -0
- package/lib/commonjs/lib/event/EventFactory.js.map +1 -0
- package/lib/commonjs/lib/event/EventManager.js +46 -0
- package/lib/commonjs/lib/event/EventManager.js.map +1 -0
- package/lib/commonjs/lib/event/EventQueue.js +290 -0
- package/lib/commonjs/lib/event/EventQueue.js.map +1 -0
- package/lib/commonjs/lib/event/index.js +50 -0
- package/lib/commonjs/lib/event/index.js.map +1 -0
- package/lib/commonjs/lib/event/types.js +6 -0
- package/lib/commonjs/lib/event/types.js.map +1 -0
- package/lib/commonjs/lib/lifecycle/index.js +196 -0
- package/lib/commonjs/lib/lifecycle/index.js.map +1 -0
- package/lib/commonjs/lib/logger/index.js +48 -0
- package/lib/commonjs/lib/logger/index.js.map +1 -0
- package/lib/commonjs/lib/session/index.js +109 -0
- package/lib/commonjs/lib/session/index.js.map +1 -0
- package/lib/commonjs/lib/storage/AsyncStorageAdapter.js +164 -0
- package/lib/commonjs/lib/storage/AsyncStorageAdapter.js.map +1 -0
- package/lib/commonjs/lib/storage/MemoryStorage.js +41 -0
- package/lib/commonjs/lib/storage/MemoryStorage.js.map +1 -0
- package/lib/commonjs/lib/storage/StorageBlueprint.js +24 -0
- package/lib/commonjs/lib/storage/StorageBlueprint.js.map +1 -0
- package/lib/commonjs/lib/storage/StorageManager.js +126 -0
- package/lib/commonjs/lib/storage/StorageManager.js.map +1 -0
- package/lib/commonjs/lib/storage/index.js +49 -0
- package/lib/commonjs/lib/storage/index.js.map +1 -0
- package/lib/commonjs/lib/storage/types.js +2 -0
- package/lib/commonjs/lib/storage/types.js.map +1 -0
- package/lib/commonjs/lib/wagmi/WagmiEventHandler.js +445 -0
- package/lib/commonjs/lib/wagmi/WagmiEventHandler.js.map +1 -0
- package/lib/commonjs/lib/wagmi/index.js +28 -0
- package/lib/commonjs/lib/wagmi/index.js.map +1 -0
- package/lib/commonjs/lib/wagmi/types.js +2 -0
- package/lib/commonjs/lib/wagmi/types.js.map +1 -0
- package/lib/commonjs/types/base.js +6 -0
- package/lib/commonjs/types/base.js.map +1 -0
- package/lib/commonjs/types/events.js +22 -0
- package/lib/commonjs/types/events.js.map +1 -0
- package/lib/commonjs/types/index.js +28 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/commonjs/utils/address.js +82 -0
- package/lib/commonjs/utils/address.js.map +1 -0
- package/lib/commonjs/utils/hash.js +30 -0
- package/lib/commonjs/utils/hash.js.map +1 -0
- package/lib/commonjs/utils/helpers.js +116 -0
- package/lib/commonjs/utils/helpers.js.map +1 -0
- package/lib/commonjs/utils/index.js +61 -0
- package/lib/commonjs/utils/index.js.map +1 -0
- package/lib/commonjs/utils/timestamp.js +34 -0
- package/lib/commonjs/utils/timestamp.js.map +1 -0
- package/lib/commonjs/utils/trafficSource.js +147 -0
- package/lib/commonjs/utils/trafficSource.js.map +1 -0
- package/lib/commonjs/version.js +10 -0
- package/lib/commonjs/version.js.map +1 -0
- package/lib/module/FormoAnalytics.js +519 -0
- package/lib/module/FormoAnalytics.js.map +1 -0
- package/lib/module/FormoAnalyticsProvider.js +256 -0
- package/lib/module/FormoAnalyticsProvider.js.map +1 -0
- package/lib/module/constants/config.js +62 -0
- package/lib/module/constants/config.js.map +1 -0
- package/lib/module/constants/events.js +24 -0
- package/lib/module/constants/events.js.map +1 -0
- package/lib/module/constants/index.js +4 -0
- package/lib/module/constants/index.js.map +1 -0
- package/lib/module/constants/storage.js +17 -0
- package/lib/module/constants/storage.js.map +1 -0
- package/lib/module/index.js +51 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/lib/consent/index.js +49 -0
- package/lib/module/lib/consent/index.js.map +1 -0
- package/lib/module/lib/event/EventFactory.js +488 -0
- package/lib/module/lib/event/EventFactory.js.map +1 -0
- package/lib/module/lib/event/EventManager.js +41 -0
- package/lib/module/lib/event/EventManager.js.map +1 -0
- package/lib/module/lib/event/EventQueue.js +283 -0
- package/lib/module/lib/event/EventQueue.js.map +1 -0
- package/lib/module/lib/event/index.js +5 -0
- package/lib/module/lib/event/index.js.map +1 -0
- package/lib/module/lib/event/types.js +2 -0
- package/lib/module/lib/event/types.js.map +1 -0
- package/lib/module/lib/lifecycle/index.js +190 -0
- package/lib/module/lib/lifecycle/index.js.map +1 -0
- package/lib/module/lib/logger/index.js +42 -0
- package/lib/module/lib/logger/index.js.map +1 -0
- package/lib/module/lib/session/index.js +92 -0
- package/lib/module/lib/session/index.js.map +1 -0
- package/lib/module/lib/storage/AsyncStorageAdapter.js +158 -0
- package/lib/module/lib/storage/AsyncStorageAdapter.js.map +1 -0
- package/lib/module/lib/storage/MemoryStorage.js +35 -0
- package/lib/module/lib/storage/MemoryStorage.js.map +1 -0
- package/lib/module/lib/storage/StorageBlueprint.js +18 -0
- package/lib/module/lib/storage/StorageBlueprint.js.map +1 -0
- package/lib/module/lib/storage/StorageManager.js +115 -0
- package/lib/module/lib/storage/StorageManager.js.map +1 -0
- package/lib/module/lib/storage/index.js +5 -0
- package/lib/module/lib/storage/index.js.map +1 -0
- package/lib/module/lib/storage/types.js +2 -0
- package/lib/module/lib/storage/types.js.map +1 -0
- package/lib/module/lib/wagmi/WagmiEventHandler.js +439 -0
- package/lib/module/lib/wagmi/WagmiEventHandler.js.map +1 -0
- package/lib/module/lib/wagmi/index.js +3 -0
- package/lib/module/lib/wagmi/index.js.map +1 -0
- package/lib/module/lib/wagmi/types.js +2 -0
- package/lib/module/lib/wagmi/types.js.map +1 -0
- package/lib/module/types/base.js +2 -0
- package/lib/module/types/base.js.map +1 -0
- package/lib/module/types/events.js +17 -0
- package/lib/module/types/events.js.map +1 -0
- package/lib/module/types/index.js +3 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/utils/address.js +74 -0
- package/lib/module/utils/address.js.map +1 -0
- package/lib/module/utils/hash.js +24 -0
- package/lib/module/utils/hash.js.map +1 -0
- package/lib/module/utils/helpers.js +105 -0
- package/lib/module/utils/helpers.js.map +1 -0
- package/lib/module/utils/index.js +6 -0
- package/lib/module/utils/index.js.map +1 -0
- package/lib/module/utils/timestamp.js +26 -0
- package/lib/module/utils/timestamp.js.map +1 -0
- package/lib/module/utils/trafficSource.js +137 -0
- package/lib/module/utils/trafficSource.js.map +1 -0
- package/lib/module/version.js +4 -0
- package/lib/module/version.js.map +1 -0
- package/lib/typescript/FormoAnalytics.d.ts +163 -0
- package/lib/typescript/FormoAnalytics.d.ts.map +1 -0
- package/lib/typescript/FormoAnalyticsProvider.d.ts +29 -0
- package/lib/typescript/FormoAnalyticsProvider.d.ts.map +1 -0
- package/lib/typescript/constants/config.d.ts +8 -0
- package/lib/typescript/constants/config.d.ts.map +1 -0
- package/lib/typescript/constants/events.d.ts +23 -0
- package/lib/typescript/constants/events.d.ts.map +1 -0
- package/lib/typescript/constants/index.d.ts +4 -0
- package/lib/typescript/constants/index.d.ts.map +1 -0
- package/lib/typescript/constants/storage.d.ts +10 -0
- package/lib/typescript/constants/storage.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +44 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/lib/consent/index.d.ts +13 -0
- package/lib/typescript/lib/consent/index.d.ts.map +1 -0
- package/lib/typescript/lib/event/EventFactory.d.ts +61 -0
- package/lib/typescript/lib/event/EventFactory.d.ts.map +1 -0
- package/lib/typescript/lib/event/EventManager.d.ts +17 -0
- package/lib/typescript/lib/event/EventManager.d.ts.map +1 -0
- package/lib/typescript/lib/event/EventQueue.d.ts +74 -0
- package/lib/typescript/lib/event/EventQueue.d.ts.map +1 -0
- package/lib/typescript/lib/event/index.d.ts +5 -0
- package/lib/typescript/lib/event/index.d.ts.map +1 -0
- package/lib/typescript/lib/event/types.d.ts +23 -0
- package/lib/typescript/lib/event/types.d.ts.map +1 -0
- package/lib/typescript/lib/lifecycle/index.d.ts +46 -0
- package/lib/typescript/lib/lifecycle/index.d.ts.map +1 -0
- package/lib/typescript/lib/logger/index.d.ts +19 -0
- package/lib/typescript/lib/logger/index.d.ts.map +1 -0
- package/lib/typescript/lib/session/index.d.ts +41 -0
- package/lib/typescript/lib/session/index.d.ts.map +1 -0
- package/lib/typescript/lib/storage/AsyncStorageAdapter.d.ts +48 -0
- package/lib/typescript/lib/storage/AsyncStorageAdapter.d.ts.map +1 -0
- package/lib/typescript/lib/storage/MemoryStorage.d.ts +18 -0
- package/lib/typescript/lib/storage/MemoryStorage.d.ts.map +1 -0
- package/lib/typescript/lib/storage/StorageBlueprint.d.ts +21 -0
- package/lib/typescript/lib/storage/StorageBlueprint.d.ts.map +1 -0
- package/lib/typescript/lib/storage/StorageManager.d.ts +45 -0
- package/lib/typescript/lib/storage/StorageManager.d.ts.map +1 -0
- package/lib/typescript/lib/storage/index.d.ts +5 -0
- package/lib/typescript/lib/storage/index.d.ts.map +1 -0
- package/lib/typescript/lib/storage/types.d.ts +22 -0
- package/lib/typescript/lib/storage/types.d.ts.map +1 -0
- package/lib/typescript/lib/wagmi/WagmiEventHandler.d.ts +104 -0
- package/lib/typescript/lib/wagmi/WagmiEventHandler.d.ts.map +1 -0
- package/lib/typescript/lib/wagmi/index.d.ts +3 -0
- package/lib/typescript/lib/wagmi/index.d.ts.map +1 -0
- package/lib/typescript/lib/wagmi/types.d.ts +54 -0
- package/lib/typescript/lib/wagmi/types.d.ts.map +1 -0
- package/lib/typescript/types/base.d.ts +219 -0
- package/lib/typescript/types/base.d.ts.map +1 -0
- package/lib/typescript/types/events.d.ts +111 -0
- package/lib/typescript/types/events.d.ts.map +1 -0
- package/lib/typescript/types/index.d.ts +3 -0
- package/lib/typescript/types/index.d.ts.map +1 -0
- package/lib/typescript/utils/address.d.ts +25 -0
- package/lib/typescript/utils/address.d.ts.map +1 -0
- package/lib/typescript/utils/hash.d.ts +10 -0
- package/lib/typescript/utils/hash.d.ts.map +1 -0
- package/lib/typescript/utils/helpers.d.ts +26 -0
- package/lib/typescript/utils/helpers.d.ts.map +1 -0
- package/lib/typescript/utils/index.d.ts +6 -0
- package/lib/typescript/utils/index.d.ts.map +1 -0
- package/lib/typescript/utils/timestamp.d.ts +13 -0
- package/lib/typescript/utils/timestamp.d.ts.map +1 -0
- package/lib/typescript/utils/trafficSource.d.ts +30 -0
- package/lib/typescript/utils/trafficSource.d.ts.map +1 -0
- package/lib/typescript/version.d.ts +2 -0
- package/lib/typescript/version.d.ts.map +1 -0
- package/package.json +143 -0
- package/src/FormoAnalytics.ts +685 -0
- package/src/FormoAnalyticsProvider.tsx +296 -0
- package/src/constants/config.ts +62 -0
- package/src/constants/events.ts +26 -0
- package/src/constants/index.ts +3 -0
- package/src/constants/storage.ts +16 -0
- package/src/index.ts +55 -0
- package/src/lib/consent/index.ts +52 -0
- package/src/lib/event/EventFactory.ts +682 -0
- package/src/lib/event/EventManager.ts +50 -0
- package/src/lib/event/EventQueue.ts +371 -0
- package/src/lib/event/index.ts +4 -0
- package/src/lib/event/types.ts +107 -0
- package/src/lib/lifecycle/index.ts +215 -0
- package/src/lib/logger/index.ts +56 -0
- package/src/lib/session/index.ts +103 -0
- package/src/lib/storage/AsyncStorageAdapter.ts +173 -0
- package/src/lib/storage/MemoryStorage.ts +43 -0
- package/src/lib/storage/StorageBlueprint.ts +30 -0
- package/src/lib/storage/StorageManager.ts +121 -0
- package/src/lib/storage/index.ts +4 -0
- package/src/lib/storage/types.ts +23 -0
- package/src/lib/wagmi/WagmiEventHandler.ts +574 -0
- package/src/lib/wagmi/index.ts +2 -0
- package/src/lib/wagmi/types.ts +71 -0
- package/src/types/base.ts +287 -0
- package/src/types/events.ts +140 -0
- package/src/types/index.ts +2 -0
- package/src/utils/address.ts +84 -0
- package/src/utils/hash.ts +23 -0
- package/src/utils/helpers.ts +139 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/timestamp.ts +25 -0
- package/src/utils/trafficSource.ts +153 -0
- package/src/version.ts +3 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.generateUUID = generateUUID;
|
|
7
|
+
exports.hash = hash;
|
|
8
|
+
var _sha = require("ethereum-cryptography/sha256");
|
|
9
|
+
var _utils = require("ethereum-cryptography/utils");
|
|
10
|
+
/**
|
|
11
|
+
* Generate a SHA-256 hash for event deduplication
|
|
12
|
+
* Returns full 64 hex chars to match web SDK format
|
|
13
|
+
*/
|
|
14
|
+
async function hash(input) {
|
|
15
|
+
const bytes = (0, _utils.utf8ToBytes)(input);
|
|
16
|
+
const hashBytes = (0, _sha.sha256)(bytes);
|
|
17
|
+
return (0, _utils.bytesToHex)(hashBytes);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Generate a UUID v4
|
|
22
|
+
*/
|
|
23
|
+
function generateUUID() {
|
|
24
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, c => {
|
|
25
|
+
const r = Math.random() * 16 | 0;
|
|
26
|
+
const v = c === "x" ? r : r & 0x3 | 0x8;
|
|
27
|
+
return v.toString(16);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=hash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_sha","require","_utils","hash","input","bytes","utf8ToBytes","hashBytes","sha256","bytesToHex","generateUUID","replace","c","r","Math","random","v","toString"],"sourceRoot":"../../../src","sources":["utils/hash.ts"],"mappings":";;;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACO,eAAeE,IAAIA,CAACC,KAAa,EAAmB;EACzD,MAAMC,KAAK,GAAG,IAAAC,kBAAW,EAACF,KAAK,CAAC;EAChC,MAAMG,SAAS,GAAG,IAAAC,WAAM,EAACH,KAAK,CAAC;EAC/B,OAAO,IAAAI,iBAAU,EAACF,SAAS,CAAC;AAC9B;;AAEA;AACA;AACA;AACO,SAASG,YAAYA,CAAA,EAAW;EACrC,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAGC,CAAC,IAAK;IACpE,MAAMC,CAAC,GAAIC,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAI,CAAC;IAClC,MAAMC,CAAC,GAAGJ,CAAC,KAAK,GAAG,GAAGC,CAAC,GAAIA,CAAC,GAAG,GAAG,GAAI,GAAG;IACzC,OAAOG,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC;EACvB,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.clampNumber = clampNumber;
|
|
7
|
+
exports.getActionDescriptor = getActionDescriptor;
|
|
8
|
+
exports.isNetworkError = isNetworkError;
|
|
9
|
+
exports.isUndefined = isUndefined;
|
|
10
|
+
exports.mergeDeepRight = mergeDeepRight;
|
|
11
|
+
exports.toSnakeCase = toSnakeCase;
|
|
12
|
+
/**
|
|
13
|
+
* Clamp a number between min and max values
|
|
14
|
+
*/
|
|
15
|
+
function clampNumber(value, max, min) {
|
|
16
|
+
return Math.min(Math.max(value, min), max);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Check if value is undefined
|
|
21
|
+
*/
|
|
22
|
+
function isUndefined(value) {
|
|
23
|
+
return value === undefined;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Convert a camelCase/PascalCase string to snake_case
|
|
28
|
+
* Handles consecutive uppercase letters (acronyms) correctly:
|
|
29
|
+
* - "userID" -> "user_id"
|
|
30
|
+
* - "XMLParser" -> "xml_parser"
|
|
31
|
+
* - "getHTTPResponse" -> "get_http_response"
|
|
32
|
+
*/
|
|
33
|
+
function camelToSnake(str) {
|
|
34
|
+
return str
|
|
35
|
+
// Insert underscore before sequences of uppercase followed by lowercase (e.g., "XMLParser" -> "XML_Parser")
|
|
36
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2")
|
|
37
|
+
// Insert underscore before single uppercase preceded by lowercase (e.g., "userID" -> "user_ID")
|
|
38
|
+
.replace(/([a-z\d])([A-Z])/g, "$1_$2").toLowerCase();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Check if value is a plain object (not Date, Map, Set, RegExp, etc.)
|
|
43
|
+
*/
|
|
44
|
+
function isPlainObject(value) {
|
|
45
|
+
if (value === null || typeof value !== "object") {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
const proto = Object.getPrototypeOf(value);
|
|
49
|
+
return proto === Object.prototype || proto === null;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Convert object keys to snake_case (recursively handles nested objects and arrays)
|
|
54
|
+
* Preserves Date, Map, Set, RegExp, and other built-in objects unchanged
|
|
55
|
+
*/
|
|
56
|
+
function toSnakeCase(obj) {
|
|
57
|
+
const result = {};
|
|
58
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
59
|
+
const snakeKey = camelToSnake(key);
|
|
60
|
+
if (Array.isArray(value)) {
|
|
61
|
+
// Recursively convert plain objects inside arrays
|
|
62
|
+
result[snakeKey] = value.map(item => isPlainObject(item) ? toSnakeCase(item) : item);
|
|
63
|
+
} else if (isPlainObject(value)) {
|
|
64
|
+
result[snakeKey] = toSnakeCase(value);
|
|
65
|
+
} else {
|
|
66
|
+
// Preserve Date, Map, Set, RegExp, and other built-in objects unchanged
|
|
67
|
+
result[snakeKey] = value;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Deep merge two objects
|
|
75
|
+
*/
|
|
76
|
+
function mergeDeepRight(target, source) {
|
|
77
|
+
const output = {
|
|
78
|
+
...target
|
|
79
|
+
};
|
|
80
|
+
for (const key in source) {
|
|
81
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
82
|
+
const sourceValue = source[key];
|
|
83
|
+
const targetValue = output[key];
|
|
84
|
+
if (sourceValue !== null && typeof sourceValue === "object" && !Array.isArray(sourceValue) && targetValue !== null && typeof targetValue === "object" && !Array.isArray(targetValue)) {
|
|
85
|
+
output[key] = mergeDeepRight(targetValue, sourceValue);
|
|
86
|
+
} else if (sourceValue !== undefined) {
|
|
87
|
+
output[key] = sourceValue;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return output;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Get action descriptor for logging
|
|
96
|
+
*/
|
|
97
|
+
function getActionDescriptor(type, properties) {
|
|
98
|
+
if (type === "track" && properties?.event) {
|
|
99
|
+
return `track:${properties.event}`;
|
|
100
|
+
}
|
|
101
|
+
if (type === "screen" && properties?.name) {
|
|
102
|
+
return `screen:${properties.name}`;
|
|
103
|
+
}
|
|
104
|
+
return type;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Check if error is a network error
|
|
109
|
+
*/
|
|
110
|
+
function isNetworkError(error) {
|
|
111
|
+
if (!error) return false;
|
|
112
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
113
|
+
const networkErrorMessages = ["Network request failed", "Failed to fetch", "Network Error", "timeout", "ETIMEDOUT", "ECONNREFUSED", "ENOTFOUND"];
|
|
114
|
+
return networkErrorMessages.some(msg => message.toLowerCase().includes(msg.toLowerCase()));
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["clampNumber","value","max","min","Math","isUndefined","undefined","camelToSnake","str","replace","toLowerCase","isPlainObject","proto","Object","getPrototypeOf","prototype","toSnakeCase","obj","result","key","entries","snakeKey","Array","isArray","map","item","mergeDeepRight","target","source","output","hasOwnProperty","call","sourceValue","targetValue","getActionDescriptor","type","properties","event","name","isNetworkError","error","message","Error","String","networkErrorMessages","some","msg","includes"],"sourceRoot":"../../../src","sources":["utils/helpers.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _address = require("./address");
|
|
7
|
+
Object.keys(_address).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _address[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _address[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _hash = require("./hash");
|
|
18
|
+
Object.keys(_hash).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _hash[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _hash[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _timestamp = require("./timestamp");
|
|
29
|
+
Object.keys(_timestamp).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _timestamp[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _timestamp[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _helpers = require("./helpers");
|
|
40
|
+
Object.keys(_helpers).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _helpers[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _helpers[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
var _trafficSource = require("./trafficSource");
|
|
51
|
+
Object.keys(_trafficSource).forEach(function (key) {
|
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
|
53
|
+
if (key in exports && exports[key] === _trafficSource[key]) return;
|
|
54
|
+
Object.defineProperty(exports, key, {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _trafficSource[key];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_address","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_hash","_timestamp","_helpers","_trafficSource"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,QAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,QAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,QAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,KAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,KAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,KAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,KAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,UAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,UAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,UAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,UAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,QAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,QAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,QAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,QAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,cAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,cAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,cAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,cAAA,CAAAR,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getCurrentTimeFormatted = getCurrentTimeFormatted;
|
|
7
|
+
exports.millisecondsToSecond = millisecondsToSecond;
|
|
8
|
+
exports.toDateHourMinute = toDateHourMinute;
|
|
9
|
+
/**
|
|
10
|
+
* Get current time in ISO format
|
|
11
|
+
*/
|
|
12
|
+
function getCurrentTimeFormatted() {
|
|
13
|
+
return new Date().toISOString();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Format date to YYYY-MM-DD HH:mm format for hashing
|
|
18
|
+
*/
|
|
19
|
+
function toDateHourMinute(date) {
|
|
20
|
+
const year = date.getFullYear();
|
|
21
|
+
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
22
|
+
const day = String(date.getDate()).padStart(2, "0");
|
|
23
|
+
const hours = String(date.getHours()).padStart(2, "0");
|
|
24
|
+
const minutes = String(date.getMinutes()).padStart(2, "0");
|
|
25
|
+
return `${year}-${month}-${day} ${hours}:${minutes}`;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Convert milliseconds to seconds
|
|
30
|
+
*/
|
|
31
|
+
function millisecondsToSecond(ms) {
|
|
32
|
+
return Math.floor(ms / 1000);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=timestamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getCurrentTimeFormatted","Date","toISOString","toDateHourMinute","date","year","getFullYear","month","String","getMonth","padStart","day","getDate","hours","getHours","minutes","getMinutes","millisecondsToSecond","ms","Math","floor"],"sourceRoot":"../../../src","sources":["utils/timestamp.ts"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACO,SAASA,uBAAuBA,CAAA,EAAW;EAChD,OAAO,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;AACjC;;AAEA;AACA;AACA;AACO,SAASC,gBAAgBA,CAACC,IAAU,EAAU;EACnD,MAAMC,IAAI,GAAGD,IAAI,CAACE,WAAW,CAAC,CAAC;EAC/B,MAAMC,KAAK,GAAGC,MAAM,CAACJ,IAAI,CAACK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAC1D,MAAMC,GAAG,GAAGH,MAAM,CAACJ,IAAI,CAACQ,OAAO,CAAC,CAAC,CAAC,CAACF,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EACnD,MAAMG,KAAK,GAAGL,MAAM,CAACJ,IAAI,CAACU,QAAQ,CAAC,CAAC,CAAC,CAACJ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EACtD,MAAMK,OAAO,GAAGP,MAAM,CAACJ,IAAI,CAACY,UAAU,CAAC,CAAC,CAAC,CAACN,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAC1D,OAAO,GAAGL,IAAI,IAAIE,KAAK,IAAII,GAAG,IAAIE,KAAK,IAAIE,OAAO,EAAE;AACtD;;AAEA;AACA;AACA;AACO,SAASE,oBAAoBA,CAACC,EAAU,EAAU;EACvD,OAAOC,IAAI,CAACC,KAAK,CAACF,EAAE,GAAG,IAAI,CAAC;AAC9B","ignoreList":[]}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.clearTrafficSource = clearTrafficSource;
|
|
7
|
+
exports.getStoredTrafficSource = getStoredTrafficSource;
|
|
8
|
+
exports.mergeWithStoredTrafficSource = mergeWithStoredTrafficSource;
|
|
9
|
+
exports.parseTrafficSource = parseTrafficSource;
|
|
10
|
+
exports.storeTrafficSource = storeTrafficSource;
|
|
11
|
+
var _logger = require("../lib/logger");
|
|
12
|
+
var _storage = require("../lib/storage");
|
|
13
|
+
var _constants = require("../constants");
|
|
14
|
+
/**
|
|
15
|
+
* Traffic Source Utilities
|
|
16
|
+
* Parse UTM parameters and referral information from URLs
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Parse UTM parameters and referral info from URL
|
|
21
|
+
* Supports both web URLs (https://) and deep link URLs (myapp://)
|
|
22
|
+
*/
|
|
23
|
+
function parseTrafficSource(url, customRefParams, pathPattern) {
|
|
24
|
+
try {
|
|
25
|
+
// Handle deep link URLs that may not have standard URL format
|
|
26
|
+
let urlObj;
|
|
27
|
+
try {
|
|
28
|
+
urlObj = new URL(url);
|
|
29
|
+
} catch {
|
|
30
|
+
// If URL parsing fails, try to extract query string manually
|
|
31
|
+
const queryStart = url.indexOf("?");
|
|
32
|
+
if (queryStart === -1) {
|
|
33
|
+
return {
|
|
34
|
+
referrer: url
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Create a fake URL for parsing query params
|
|
39
|
+
urlObj = new URL(`http://localhost${url.substring(queryStart)}`);
|
|
40
|
+
}
|
|
41
|
+
const params = urlObj.searchParams;
|
|
42
|
+
const trafficSource = {};
|
|
43
|
+
|
|
44
|
+
// Extract UTM parameters
|
|
45
|
+
if (params.has("utm_source")) trafficSource.utm_source = params.get("utm_source");
|
|
46
|
+
if (params.has("utm_medium")) trafficSource.utm_medium = params.get("utm_medium");
|
|
47
|
+
if (params.has("utm_campaign")) trafficSource.utm_campaign = params.get("utm_campaign");
|
|
48
|
+
if (params.has("utm_term")) trafficSource.utm_term = params.get("utm_term");
|
|
49
|
+
if (params.has("utm_content")) trafficSource.utm_content = params.get("utm_content");
|
|
50
|
+
|
|
51
|
+
// Extract referral codes (check common parameter names + custom ones, deduplicated)
|
|
52
|
+
const defaultRefParams = ["ref", "referral", "refcode", "referrer_code"];
|
|
53
|
+
const refParams = customRefParams ? [...new Set([...defaultRefParams, ...customRefParams])] : defaultRefParams;
|
|
54
|
+
for (const param of refParams) {
|
|
55
|
+
if (params.has(param)) {
|
|
56
|
+
trafficSource.ref = params.get(param);
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Extract referral code from URL path if pathPattern is provided
|
|
62
|
+
if (pathPattern && !trafficSource.ref) {
|
|
63
|
+
try {
|
|
64
|
+
const pathRegex = new RegExp(pathPattern);
|
|
65
|
+
const pathname = urlObj.pathname;
|
|
66
|
+
const match = pathname.match(pathRegex);
|
|
67
|
+
if (match && match[1]) {
|
|
68
|
+
trafficSource.ref = match[1];
|
|
69
|
+
}
|
|
70
|
+
} catch (e) {
|
|
71
|
+
_logger.logger.error("Error parsing pathPattern for referral:", e);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Store the full URL as referrer
|
|
76
|
+
trafficSource.referrer = url;
|
|
77
|
+
return trafficSource;
|
|
78
|
+
} catch (error) {
|
|
79
|
+
_logger.logger.error("Error parsing traffic source from URL:", error);
|
|
80
|
+
return {
|
|
81
|
+
referrer: url
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Store traffic source in session storage
|
|
88
|
+
* Only stores if we have actual UTM or ref data
|
|
89
|
+
*/
|
|
90
|
+
function storeTrafficSource(trafficSource) {
|
|
91
|
+
try {
|
|
92
|
+
// Check if we have meaningful data to store (not just referrer)
|
|
93
|
+
const hasData = trafficSource.utm_source || trafficSource.utm_medium || trafficSource.utm_campaign || trafficSource.utm_term || trafficSource.utm_content || trafficSource.ref;
|
|
94
|
+
if (hasData || trafficSource.referrer) {
|
|
95
|
+
(0, _storage.storage)().set(_constants.SESSION_TRAFFIC_SOURCE_KEY, JSON.stringify(trafficSource));
|
|
96
|
+
_logger.logger.debug("Stored traffic source:", trafficSource);
|
|
97
|
+
}
|
|
98
|
+
} catch (error) {
|
|
99
|
+
_logger.logger.error("Error storing traffic source:", error);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Get stored traffic source from session
|
|
105
|
+
* Returns undefined if no traffic source is stored
|
|
106
|
+
*/
|
|
107
|
+
function getStoredTrafficSource() {
|
|
108
|
+
try {
|
|
109
|
+
const stored = (0, _storage.storage)().get(_constants.SESSION_TRAFFIC_SOURCE_KEY);
|
|
110
|
+
if (stored && typeof stored === "string") {
|
|
111
|
+
return JSON.parse(stored);
|
|
112
|
+
}
|
|
113
|
+
} catch (error) {
|
|
114
|
+
_logger.logger.debug("Failed to get stored traffic source:", error);
|
|
115
|
+
}
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Clear stored traffic source from session
|
|
121
|
+
*/
|
|
122
|
+
function clearTrafficSource() {
|
|
123
|
+
try {
|
|
124
|
+
(0, _storage.storage)().remove(_constants.SESSION_TRAFFIC_SOURCE_KEY);
|
|
125
|
+
_logger.logger.debug("Cleared traffic source from session");
|
|
126
|
+
} catch (error) {
|
|
127
|
+
_logger.logger.error("Error clearing traffic source:", error);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Merge stored traffic source with current context
|
|
133
|
+
* Stored traffic source is used as fallback - current context takes priority
|
|
134
|
+
*/
|
|
135
|
+
function mergeWithStoredTrafficSource(context) {
|
|
136
|
+
const stored = getStoredTrafficSource();
|
|
137
|
+
if (!stored) {
|
|
138
|
+
return context || {};
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Merge: stored values as base, context values override
|
|
142
|
+
return {
|
|
143
|
+
...stored,
|
|
144
|
+
...(context || {})
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=trafficSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_logger","require","_storage","_constants","parseTrafficSource","url","customRefParams","pathPattern","urlObj","URL","queryStart","indexOf","referrer","substring","params","searchParams","trafficSource","has","utm_source","get","utm_medium","utm_campaign","utm_term","utm_content","defaultRefParams","refParams","Set","param","ref","pathRegex","RegExp","pathname","match","e","logger","error","storeTrafficSource","hasData","storage","set","SESSION_TRAFFIC_SOURCE_KEY","JSON","stringify","debug","getStoredTrafficSource","stored","parse","undefined","clearTrafficSource","remove","mergeWithStoredTrafficSource","context"],"sourceRoot":"../../../src","sources":["utils/trafficSource.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.version = void 0;
|
|
7
|
+
// This file is auto-generated by scripts/update-version.js during npm version
|
|
8
|
+
// Do not edit manually - it will be overwritten
|
|
9
|
+
const version = exports.version = '0.1.0';
|
|
10
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["version","exports"],"sourceRoot":"../../src","sources":["version.ts"],"mappings":";;;;;;AAAA;AACA;AACO,MAAMA,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,OAAO","ignoreList":[]}
|