@formo/analytics 1.19.10 → 1.21.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 +3 -1
- package/dist/cjs/src/FormoAnalytics.d.ts +17 -1
- package/dist/cjs/src/FormoAnalytics.js +150 -82
- package/dist/cjs/src/FormoAnalyticsProvider.js +5 -1
- package/dist/cjs/src/constants/base.d.ts +4 -0
- package/dist/cjs/src/constants/base.js +8 -1
- package/dist/cjs/src/lib/browser/browsers.d.ts +3 -0
- package/dist/cjs/src/lib/browser/browsers.js +132 -0
- package/dist/cjs/src/lib/consent.d.ts +35 -0
- package/dist/cjs/src/lib/consent.js +102 -0
- package/dist/cjs/src/lib/event/EventFactory.d.ts +10 -10
- package/dist/cjs/src/lib/event/EventFactory.js +272 -140
- package/dist/cjs/src/lib/event/EventManager.d.ts +1 -1
- package/dist/cjs/src/lib/event/EventManager.js +62 -9
- package/dist/cjs/src/lib/event/type.d.ts +2 -2
- package/dist/cjs/src/lib/index.d.ts +1 -0
- package/dist/cjs/src/lib/index.js +1 -0
- package/dist/cjs/src/lib/storage/built-in/blueprint.js +2 -1
- package/dist/cjs/src/lib/version.d.ts +1 -1
- package/dist/cjs/src/lib/version.js +1 -1
- package/dist/cjs/src/types/base.d.ts +3 -0
- package/dist/cjs/src/utils/address.d.ts +7 -0
- package/dist/cjs/src/utils/address.js +21 -1
- package/dist/cjs/src/utils/hash.d.ts +10 -0
- package/dist/cjs/src/utils/hash.js +21 -0
- package/dist/cjs/src/utils/index.d.ts +1 -0
- package/dist/cjs/src/utils/index.js +1 -0
- package/dist/esm/src/FormoAnalytics.d.ts +17 -1
- package/dist/esm/src/FormoAnalytics.js +152 -84
- package/dist/esm/src/FormoAnalyticsProvider.js +5 -1
- package/dist/esm/src/constants/base.d.ts +4 -0
- package/dist/esm/src/constants/base.js +7 -0
- package/dist/esm/src/lib/browser/browsers.d.ts +3 -0
- package/dist/esm/src/lib/browser/browsers.js +129 -0
- package/dist/esm/src/lib/consent.d.ts +35 -0
- package/dist/esm/src/lib/consent.js +97 -0
- package/dist/esm/src/lib/event/EventFactory.d.ts +10 -10
- package/dist/esm/src/lib/event/EventFactory.js +272 -140
- package/dist/esm/src/lib/event/EventManager.d.ts +1 -1
- package/dist/esm/src/lib/event/EventManager.js +62 -9
- package/dist/esm/src/lib/event/type.d.ts +2 -2
- package/dist/esm/src/lib/index.d.ts +1 -0
- package/dist/esm/src/lib/index.js +1 -0
- package/dist/esm/src/lib/storage/built-in/blueprint.js +2 -1
- package/dist/esm/src/lib/version.d.ts +1 -1
- package/dist/esm/src/lib/version.js +1 -1
- package/dist/esm/src/types/base.d.ts +3 -0
- package/dist/esm/src/utils/address.d.ts +7 -0
- package/dist/esm/src/utils/address.js +19 -0
- package/dist/esm/src/utils/hash.d.ts +10 -0
- package/dist/esm/src/utils/hash.js +18 -0
- package/dist/esm/src/utils/index.d.ts +1 -0
- package/dist/esm/src/utils/index.js +1 -0
- package/dist/index.umd.min.js +1 -1
- package/package.json +2 -2
|
@@ -18,5 +18,12 @@ export declare const isValidAddress: (address: Address | null | undefined) => ad
|
|
|
18
18
|
* This function is the preferred way to get a validated, trimmed address for use in your application.
|
|
19
19
|
*/
|
|
20
20
|
export declare const getValidAddress: (address: Address | null | undefined) => string | null;
|
|
21
|
+
/**
|
|
22
|
+
* Checks if an address is in the blocked list and should not emit events.
|
|
23
|
+
* Blocked addresses include the zero address and dead address which are not normal user addresses.
|
|
24
|
+
* @param address The address to check
|
|
25
|
+
* @returns true if the address is blocked, false otherwise
|
|
26
|
+
*/
|
|
27
|
+
export declare const isBlockedAddress: (address: Address | null | undefined) => boolean;
|
|
21
28
|
export declare const toChecksumAddress: (address: Address) => string;
|
|
22
29
|
//# sourceMappingURL=address.d.ts.map
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toChecksumAddress = exports.getValidAddress = exports.isValidAddress = void 0;
|
|
3
|
+
exports.toChecksumAddress = exports.isBlockedAddress = exports.getValidAddress = exports.isValidAddress = void 0;
|
|
4
4
|
var keccak_js_1 = require("ethereum-cryptography/keccak.js");
|
|
5
5
|
var utils_js_1 = require("ethereum-cryptography/utils.js");
|
|
6
6
|
var validators_1 = require("../validators");
|
|
7
7
|
var object_1 = require("../validators/object");
|
|
8
|
+
var constants_1 = require("../constants");
|
|
8
9
|
/**
|
|
9
10
|
* Private helper function to validate and trim an address
|
|
10
11
|
* @param address The address to validate and trim
|
|
@@ -41,6 +42,25 @@ var getValidAddress = function (address) {
|
|
|
41
42
|
return _validateAndTrimAddress(address);
|
|
42
43
|
};
|
|
43
44
|
exports.getValidAddress = getValidAddress;
|
|
45
|
+
/**
|
|
46
|
+
* Checks if an address is in the blocked list and should not emit events.
|
|
47
|
+
* Blocked addresses include the zero address and dead address which are not normal user addresses.
|
|
48
|
+
* @param address The address to check
|
|
49
|
+
* @returns true if the address is blocked, false otherwise
|
|
50
|
+
*/
|
|
51
|
+
var isBlockedAddress = function (address) {
|
|
52
|
+
if (!address)
|
|
53
|
+
return false;
|
|
54
|
+
var validAddress = (0, exports.getValidAddress)(address);
|
|
55
|
+
if (!validAddress)
|
|
56
|
+
return false;
|
|
57
|
+
// Normalize to checksum format for comparison
|
|
58
|
+
var checksumAddress = (0, exports.toChecksumAddress)(validAddress);
|
|
59
|
+
return constants_1.BLOCKED_ADDRESSES.some(function (blockedAddr) {
|
|
60
|
+
return (0, exports.toChecksumAddress)(blockedAddr) === checksumAddress;
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
exports.isBlockedAddress = isBlockedAddress;
|
|
44
64
|
var toChecksumAddress = function (address) {
|
|
45
65
|
if (!(0, validators_1.isAddress)(address, false)) {
|
|
46
66
|
throw new Error("Invalid address " + address);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hash utilities using ethereum-cryptography for secure, deterministic hashing
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Generate a secure hash of a string using SHA-256 for creating short, consistent identifiers
|
|
6
|
+
* @param str - The string to hash
|
|
7
|
+
* @returns Short hash string (first 8 characters of SHA-256 hex)
|
|
8
|
+
*/
|
|
9
|
+
export declare function secureHash(str: string): string;
|
|
10
|
+
//# sourceMappingURL=hash.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Hash utilities using ethereum-cryptography for secure, deterministic hashing
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.secureHash = secureHash;
|
|
7
|
+
var sha256_1 = require("ethereum-cryptography/sha256");
|
|
8
|
+
var utils_1 = require("ethereum-cryptography/utils");
|
|
9
|
+
/**
|
|
10
|
+
* Generate a secure hash of a string using SHA-256 for creating short, consistent identifiers
|
|
11
|
+
* @param str - The string to hash
|
|
12
|
+
* @returns Short hash string (first 8 characters of SHA-256 hex)
|
|
13
|
+
*/
|
|
14
|
+
function secureHash(str) {
|
|
15
|
+
var bytes = (0, utils_1.utf8ToBytes)(str);
|
|
16
|
+
var hashBytes = (0, sha256_1.sha256)(bytes);
|
|
17
|
+
var hashHex = (0, utils_1.bytesToHex)(hashBytes);
|
|
18
|
+
// Return first 8 characters for reasonable cookie name length
|
|
19
|
+
return hashHex.slice(0, 8);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=hash.js.map
|
|
@@ -18,4 +18,5 @@ __exportStar(require("./address"), exports);
|
|
|
18
18
|
__exportStar(require("./base"), exports);
|
|
19
19
|
__exportStar(require("./converter"), exports);
|
|
20
20
|
__exportStar(require("./generate"), exports);
|
|
21
|
+
__exportStar(require("./hash"), exports);
|
|
21
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -177,6 +177,22 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
177
177
|
* @returns {Promise<void>}
|
|
178
178
|
*/
|
|
179
179
|
track(event: string, properties?: IFormoEventProperties, context?: IFormoEventContext, callback?: (...args: unknown[]) => void): Promise<void>;
|
|
180
|
+
/**
|
|
181
|
+
* Opt out of tracking.
|
|
182
|
+
* @returns {void}
|
|
183
|
+
*/
|
|
184
|
+
optOutTracking(): void;
|
|
185
|
+
/**
|
|
186
|
+
* Opt back into tracking after previously opting out. This will re-enable analytics tracking
|
|
187
|
+
* and switch back to persistent storage.
|
|
188
|
+
* @returns {void}
|
|
189
|
+
*/
|
|
190
|
+
optInTracking(): void;
|
|
191
|
+
/**
|
|
192
|
+
* Check if the user has opted out of tracking.
|
|
193
|
+
* @returns {boolean} True if the user has opted out
|
|
194
|
+
*/
|
|
195
|
+
hasOptedOutTracking(): boolean;
|
|
180
196
|
private trackProvider;
|
|
181
197
|
private trackProviders;
|
|
182
198
|
private addProviderListener;
|
|
@@ -204,7 +220,7 @@ export declare class FormoAnalytics implements IFormoAnalytics {
|
|
|
204
220
|
private trackPageHit;
|
|
205
221
|
private trackEvent;
|
|
206
222
|
/**
|
|
207
|
-
* Determines if tracking should be enabled based on configuration
|
|
223
|
+
* Determines if tracking should be enabled based on configuration and consent
|
|
208
224
|
* @returns {boolean} True if tracking should be enabled
|
|
209
225
|
*/
|
|
210
226
|
private shouldTrack;
|