@formo/analytics 1.20.0 → 1.22.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.
@@ -1,3 +1,39 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
1
37
  var __rest = (this && this.__rest) || function (s, e) {
2
38
  var t = {};
3
39
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -29,20 +65,31 @@ var EventManager = /** @class */ (function () {
29
65
  * @param event Incoming event data
30
66
  */
31
67
  EventManager.prototype.addEvent = function (event, address, userId) {
32
- var callback = event.callback, _event = __rest(event, ["callback"]);
33
- var formoEvent = this.eventFactory.create(_event, address, userId);
34
- // Check if the final event has a blocked address - don't queue it
35
- if (formoEvent.address && isBlockedAddress(formoEvent.address)) {
36
- logger.warn("Event blocked: Address ".concat(formoEvent.address, " is in the blocked list and cannot emit events"));
37
- return;
38
- }
39
- this.eventQueue.enqueue(formoEvent, function (err, _, data) {
40
- if (err) {
41
- logger.error("Error sending events:", err);
42
- }
43
- else
44
- logger.info("Events sent successfully: ".concat(data.length, " events"));
45
- callback === null || callback === void 0 ? void 0 : callback(err, _, data);
68
+ return __awaiter(this, void 0, void 0, function () {
69
+ var callback, _event, formoEvent;
70
+ return __generator(this, function (_a) {
71
+ switch (_a.label) {
72
+ case 0:
73
+ callback = event.callback, _event = __rest(event, ["callback"]);
74
+ return [4 /*yield*/, this.eventFactory.create(_event, address, userId)];
75
+ case 1:
76
+ formoEvent = _a.sent();
77
+ // Check if the final event has a blocked address - don't queue it
78
+ if (formoEvent.address && isBlockedAddress(formoEvent.address)) {
79
+ logger.warn("Event blocked: Address ".concat(formoEvent.address, " is in the blocked list and cannot emit events"));
80
+ return [2 /*return*/];
81
+ }
82
+ this.eventQueue.enqueue(formoEvent, function (err, _, data) {
83
+ if (err) {
84
+ logger.error("Error sending events:", err);
85
+ }
86
+ else
87
+ logger.info("Events sent successfully: ".concat(data.length, " events"));
88
+ callback === null || callback === void 0 ? void 0 : callback(err, _, data);
89
+ });
90
+ return [2 /*return*/];
91
+ }
92
+ });
46
93
  });
47
94
  };
48
95
  return EventManager;
@@ -1,8 +1,8 @@
1
1
  import { Address, APIEvent, IFormoEvent } from "../../types";
2
2
  export interface IEventManager {
3
- addEvent(event: APIEvent, address?: Address, userId?: string): void;
3
+ addEvent(event: APIEvent, address?: Address, userId?: string): Promise<void>;
4
4
  }
5
5
  export interface IEventFactory {
6
- create(event: APIEvent, address?: Address, userId?: string): IFormoEvent;
6
+ create(event: APIEvent, address?: Address, userId?: string): Promise<IFormoEvent>;
7
7
  }
8
8
  //# sourceMappingURL=type.d.ts.map
@@ -1,2 +1,2 @@
1
- export declare const version = "1.20.0";
1
+ export declare const version = "1.22.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export var version = '1.20.0';
2
+ export var version = '1.22.0';
3
3
  //# sourceMappingURL=version.js.map
@@ -63,9 +63,48 @@ export interface TrackingOptions {
63
63
  excludePaths?: string[];
64
64
  excludeChains?: ChainID[];
65
65
  }
66
+ /**
67
+ * Configuration options for controlling wallet event autocapture
68
+ * All events are enabled by default unless explicitly set to false
69
+ */
70
+ export interface AutocaptureOptions {
71
+ /**
72
+ * Track wallet connect events
73
+ * @default true
74
+ */
75
+ connect?: boolean;
76
+ /**
77
+ * Track wallet disconnect events
78
+ * @default true
79
+ */
80
+ disconnect?: boolean;
81
+ /**
82
+ * Track wallet signature events (personal_sign, eth_signTypedData_v4)
83
+ * @default true
84
+ */
85
+ signature?: boolean;
86
+ /**
87
+ * Track wallet transaction events (eth_sendTransaction)
88
+ * @default true
89
+ */
90
+ transaction?: boolean;
91
+ /**
92
+ * Track wallet chain change events
93
+ * @default true
94
+ */
95
+ chain?: boolean;
96
+ }
66
97
  export interface Options {
67
98
  provider?: EIP1193Provider;
68
99
  tracking?: boolean | TrackingOptions;
100
+ /**
101
+ * Control wallet event autocapture
102
+ * - `false`: Disable all wallet autocapture
103
+ * - `true`: Enable all wallet events (default)
104
+ * - `AutocaptureOptions`: Granular control over specific events
105
+ * @default true
106
+ */
107
+ autocapture?: boolean | AutocaptureOptions;
69
108
  flushAt?: number;
70
109
  flushInterval?: number;
71
110
  retryCount?: number;