@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.
Files changed (55) hide show
  1. package/README.md +3 -1
  2. package/dist/cjs/src/FormoAnalytics.d.ts +17 -1
  3. package/dist/cjs/src/FormoAnalytics.js +150 -82
  4. package/dist/cjs/src/FormoAnalyticsProvider.js +5 -1
  5. package/dist/cjs/src/constants/base.d.ts +4 -0
  6. package/dist/cjs/src/constants/base.js +8 -1
  7. package/dist/cjs/src/lib/browser/browsers.d.ts +3 -0
  8. package/dist/cjs/src/lib/browser/browsers.js +132 -0
  9. package/dist/cjs/src/lib/consent.d.ts +35 -0
  10. package/dist/cjs/src/lib/consent.js +102 -0
  11. package/dist/cjs/src/lib/event/EventFactory.d.ts +10 -10
  12. package/dist/cjs/src/lib/event/EventFactory.js +272 -140
  13. package/dist/cjs/src/lib/event/EventManager.d.ts +1 -1
  14. package/dist/cjs/src/lib/event/EventManager.js +62 -9
  15. package/dist/cjs/src/lib/event/type.d.ts +2 -2
  16. package/dist/cjs/src/lib/index.d.ts +1 -0
  17. package/dist/cjs/src/lib/index.js +1 -0
  18. package/dist/cjs/src/lib/storage/built-in/blueprint.js +2 -1
  19. package/dist/cjs/src/lib/version.d.ts +1 -1
  20. package/dist/cjs/src/lib/version.js +1 -1
  21. package/dist/cjs/src/types/base.d.ts +3 -0
  22. package/dist/cjs/src/utils/address.d.ts +7 -0
  23. package/dist/cjs/src/utils/address.js +21 -1
  24. package/dist/cjs/src/utils/hash.d.ts +10 -0
  25. package/dist/cjs/src/utils/hash.js +21 -0
  26. package/dist/cjs/src/utils/index.d.ts +1 -0
  27. package/dist/cjs/src/utils/index.js +1 -0
  28. package/dist/esm/src/FormoAnalytics.d.ts +17 -1
  29. package/dist/esm/src/FormoAnalytics.js +152 -84
  30. package/dist/esm/src/FormoAnalyticsProvider.js +5 -1
  31. package/dist/esm/src/constants/base.d.ts +4 -0
  32. package/dist/esm/src/constants/base.js +7 -0
  33. package/dist/esm/src/lib/browser/browsers.d.ts +3 -0
  34. package/dist/esm/src/lib/browser/browsers.js +129 -0
  35. package/dist/esm/src/lib/consent.d.ts +35 -0
  36. package/dist/esm/src/lib/consent.js +97 -0
  37. package/dist/esm/src/lib/event/EventFactory.d.ts +10 -10
  38. package/dist/esm/src/lib/event/EventFactory.js +272 -140
  39. package/dist/esm/src/lib/event/EventManager.d.ts +1 -1
  40. package/dist/esm/src/lib/event/EventManager.js +62 -9
  41. package/dist/esm/src/lib/event/type.d.ts +2 -2
  42. package/dist/esm/src/lib/index.d.ts +1 -0
  43. package/dist/esm/src/lib/index.js +1 -0
  44. package/dist/esm/src/lib/storage/built-in/blueprint.js +2 -1
  45. package/dist/esm/src/lib/version.d.ts +1 -1
  46. package/dist/esm/src/lib/version.js +1 -1
  47. package/dist/esm/src/types/base.d.ts +3 -0
  48. package/dist/esm/src/utils/address.d.ts +7 -0
  49. package/dist/esm/src/utils/address.js +19 -0
  50. package/dist/esm/src/utils/hash.d.ts +10 -0
  51. package/dist/esm/src/utils/hash.js +18 -0
  52. package/dist/esm/src/utils/index.d.ts +1 -0
  53. package/dist/esm/src/utils/index.js +1 -0
  54. package/dist/index.umd.min.js +1 -1
  55. 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
@@ -2,6 +2,7 @@ import { keccak256 } from "ethereum-cryptography/keccak.js";
2
2
  import { utf8ToBytes } from "ethereum-cryptography/utils.js";
3
3
  import { ensureIfUint8Array, isAddress, uint8ArrayToHexString, } from "../validators";
4
4
  import { isNullish } from "../validators/object";
5
+ import { BLOCKED_ADDRESSES } from "../constants";
5
6
  /**
6
7
  * Private helper function to validate and trim an address
7
8
  * @param address The address to validate and trim
@@ -36,6 +37,24 @@ export var isValidAddress = function (address) {
36
37
  export var getValidAddress = function (address) {
37
38
  return _validateAndTrimAddress(address);
38
39
  };
40
+ /**
41
+ * Checks if an address is in the blocked list and should not emit events.
42
+ * Blocked addresses include the zero address and dead address which are not normal user addresses.
43
+ * @param address The address to check
44
+ * @returns true if the address is blocked, false otherwise
45
+ */
46
+ export var isBlockedAddress = function (address) {
47
+ if (!address)
48
+ return false;
49
+ var validAddress = getValidAddress(address);
50
+ if (!validAddress)
51
+ return false;
52
+ // Normalize to checksum format for comparison
53
+ var checksumAddress = toChecksumAddress(validAddress);
54
+ return BLOCKED_ADDRESSES.some(function (blockedAddr) {
55
+ return toChecksumAddress(blockedAddr) === checksumAddress;
56
+ });
57
+ };
39
58
  export var toChecksumAddress = function (address) {
40
59
  if (!isAddress(address, false)) {
41
60
  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,18 @@
1
+ /**
2
+ * Hash utilities using ethereum-cryptography for secure, deterministic hashing
3
+ */
4
+ import { sha256 } from 'ethereum-cryptography/sha256';
5
+ import { utf8ToBytes, bytesToHex } from 'ethereum-cryptography/utils';
6
+ /**
7
+ * Generate a secure hash of a string using SHA-256 for creating short, consistent identifiers
8
+ * @param str - The string to hash
9
+ * @returns Short hash string (first 8 characters of SHA-256 hex)
10
+ */
11
+ export function secureHash(str) {
12
+ var bytes = utf8ToBytes(str);
13
+ var hashBytes = sha256(bytes);
14
+ var hashHex = bytesToHex(hashBytes);
15
+ // Return first 8 characters for reasonable cookie name length
16
+ return hashHex.slice(0, 8);
17
+ }
18
+ //# sourceMappingURL=hash.js.map
@@ -2,4 +2,5 @@ export * from "./address";
2
2
  export * from "./base";
3
3
  export * from "./converter";
4
4
  export * from "./generate";
5
+ export * from "./hash";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -2,4 +2,5 @@ export * from "./address";
2
2
  export * from "./base";
3
3
  export * from "./converter";
4
4
  export * from "./generate";
5
+ export * from "./hash";
5
6
  //# sourceMappingURL=index.js.map