@formo/analytics 1.28.2 → 1.28.3

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 (52) hide show
  1. package/dist/cjs/src/FormoAnalytics.d.ts +2 -0
  2. package/dist/cjs/src/FormoAnalytics.js +10 -5
  3. package/dist/cjs/src/FormoAnalyticsProvider.js +1 -0
  4. package/dist/cjs/src/consent/index.js +12 -10
  5. package/dist/cjs/src/event/EventFactory.js +6 -6
  6. package/dist/cjs/src/event/utils.d.ts +2 -3
  7. package/dist/cjs/src/event/utils.js +24 -24
  8. package/dist/cjs/src/queue/EventQueue.d.ts +1 -1
  9. package/dist/cjs/src/queue/EventQueue.js +21 -20
  10. package/dist/cjs/src/session/index.d.ts +0 -9
  11. package/dist/cjs/src/session/index.js +7 -0
  12. package/dist/cjs/src/solana/SolanaAdapter.d.ts +3 -4
  13. package/dist/cjs/src/solana/SolanaAdapter.js +42 -29
  14. package/dist/cjs/src/storage/StorageManager.js +11 -3
  15. package/dist/cjs/src/storage/built-in/cookie.js +29 -3
  16. package/dist/cjs/src/storage/cookiePolicy.d.ts +10 -0
  17. package/dist/cjs/src/storage/cookiePolicy.js +27 -0
  18. package/dist/cjs/src/types/base.d.ts +12 -0
  19. package/dist/cjs/src/utils/address.js +4 -6
  20. package/dist/cjs/src/utils/domain.d.ts +27 -0
  21. package/dist/cjs/src/utils/domain.js +74 -0
  22. package/dist/cjs/src/utils/generate.js +23 -11
  23. package/dist/cjs/src/validators/network.js +7 -2
  24. package/dist/cjs/src/version.d.ts +1 -1
  25. package/dist/cjs/src/version.js +1 -1
  26. package/dist/esm/src/FormoAnalytics.d.ts +2 -0
  27. package/dist/esm/src/FormoAnalytics.js +10 -5
  28. package/dist/esm/src/FormoAnalyticsProvider.js +1 -0
  29. package/dist/esm/src/consent/index.js +12 -10
  30. package/dist/esm/src/event/EventFactory.js +6 -6
  31. package/dist/esm/src/event/utils.d.ts +2 -3
  32. package/dist/esm/src/event/utils.js +25 -24
  33. package/dist/esm/src/queue/EventQueue.d.ts +1 -1
  34. package/dist/esm/src/queue/EventQueue.js +21 -20
  35. package/dist/esm/src/session/index.d.ts +0 -9
  36. package/dist/esm/src/session/index.js +7 -0
  37. package/dist/esm/src/solana/SolanaAdapter.d.ts +3 -4
  38. package/dist/esm/src/solana/SolanaAdapter.js +42 -29
  39. package/dist/esm/src/storage/StorageManager.js +11 -3
  40. package/dist/esm/src/storage/built-in/cookie.js +29 -3
  41. package/dist/esm/src/storage/cookiePolicy.d.ts +10 -0
  42. package/dist/esm/src/storage/cookiePolicy.js +24 -0
  43. package/dist/esm/src/types/base.d.ts +12 -0
  44. package/dist/esm/src/utils/address.js +4 -6
  45. package/dist/esm/src/utils/domain.d.ts +27 -0
  46. package/dist/esm/src/utils/domain.js +70 -0
  47. package/dist/esm/src/utils/generate.js +23 -11
  48. package/dist/esm/src/validators/network.js +7 -2
  49. package/dist/esm/src/version.d.ts +1 -1
  50. package/dist/esm/src/version.js +1 -1
  51. package/dist/index.umd.min.js +1 -1
  52. package/package.json +1 -1
@@ -34,23 +34,35 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
34
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
35
  }
36
36
  };
37
+ import { sha256 } from 'ethereum-cryptography/sha256';
38
+ import { utf8ToBytes, bytesToHex } from 'ethereum-cryptography/utils';
37
39
  export function hash(input) {
38
40
  return __awaiter(this, void 0, void 0, function () {
39
- var hashBuffer, byteArray;
41
+ var bytes, hashBytes;
40
42
  return __generator(this, function (_a) {
41
- switch (_a.label) {
42
- case 0: return [4 /*yield*/, crypto.subtle.digest("SHA-256", new TextEncoder().encode(input))];
43
- case 1:
44
- hashBuffer = _a.sent();
45
- byteArray = new Uint8Array(hashBuffer);
46
- return [2 /*return*/, Array.from(byteArray)
47
- .map(function (byte) { return byte.toString(16).padStart(2, "0"); })
48
- .join("")];
49
- }
43
+ bytes = utf8ToBytes(input);
44
+ hashBytes = sha256(bytes);
45
+ return [2 /*return*/, bytesToHex(hashBytes)];
50
46
  });
51
47
  });
52
48
  }
53
49
  export function generateNativeUUID() {
54
- return crypto.randomUUID();
50
+ if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {
51
+ return crypto.randomUUID();
52
+ }
53
+ // Fallback using crypto.getRandomValues (available in insecure contexts)
54
+ if (typeof crypto !== 'undefined' && typeof crypto.getRandomValues === 'function') {
55
+ var bytes = new Uint8Array(16);
56
+ crypto.getRandomValues(bytes);
57
+ bytes[6] = (bytes[6] & 0x0f) | 0x40; // version 4
58
+ bytes[8] = (bytes[8] & 0x3f) | 0x80; // variant 1
59
+ var hex = Array.from(bytes).map(function (b) { return b.toString(16).padStart(2, '0'); }).join('');
60
+ return "".concat(hex.slice(0, 8), "-").concat(hex.slice(8, 12), "-").concat(hex.slice(12, 16), "-").concat(hex.slice(16, 20), "-").concat(hex.slice(20));
61
+ }
62
+ // Last resort: Math.random (not cryptographically secure, but functional)
63
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
64
+ var r = (Math.random() * 16) | 0;
65
+ return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);
66
+ });
55
67
  }
56
68
  //# sourceMappingURL=generate.js.map
@@ -1,5 +1,9 @@
1
1
  var objectToString = Object.prototype.toString;
2
- var isError = function (value) { return objectToString.call(value) === "[object Error]"; };
2
+ var isError = function (value) {
3
+ var tag = objectToString.call(value);
4
+ return tag === "[object Error]" || tag === "[object DOMException]";
5
+ };
6
+ var errorNames = new Set(["TypeError", "TimeoutError", "NetworkError"]);
3
7
  var errorMessages = new Set([
4
8
  "network error", // Chrome
5
9
  "Failed to fetch", // Chrome
@@ -9,11 +13,12 @@ var errorMessages = new Set([
9
13
  "Network request failed", // `cross-fetch`
10
14
  "fetch failed", // Undici (Node.js)
11
15
  "terminated", // Undici (Node.js)
16
+ "The operation was aborted due to timeout", // AbortSignal.timeout()
12
17
  ]);
13
18
  export function isNetworkError(error) {
14
19
  var isValid = error &&
15
20
  isError(error) &&
16
- error.name === "TypeError" &&
21
+ errorNames.has(error.name) &&
17
22
  typeof error.message === "string";
18
23
  if (!isValid) {
19
24
  return false;
@@ -1,2 +1,2 @@
1
- export declare const version = "1.28.2";
1
+ export declare const version = "1.28.3";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,4 +1,4 @@
1
1
  // This file is auto-generated by scripts/update-version.js during npm version
2
2
  // Do not edit manually - it will be overwritten
3
- export var version = '1.28.2';
3
+ export var version = '1.28.3';
4
4
  //# sourceMappingURL=version.js.map