@mcp-fe/react-event-tracker 0.0.12 → 0.0.13

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,2 +1,3 @@
1
- export declare function useReactRouterEventTracker(): void;
1
+ import { WorkerClientInitOptions } from '@mcp-fe/event-tracker';
2
+ export declare function useReactRouterEventTracker(initOptions?: WorkerClientInitOptions): void;
2
3
  //# sourceMappingURL=useReactRouterEventTracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useReactRouterEventTracker.d.ts","sourceRoot":"","sources":["../../../../libs/react-event-tracker/src/hooks/useReactRouterEventTracker.ts"],"names":[],"mappings":"AASA,wBAAgB,0BAA0B,IAAI,IAAI,CAuFjD"}
1
+ {"version":3,"file":"useReactRouterEventTracker.d.ts","sourceRoot":"","sources":["../../../../libs/react-event-tracker/src/hooks/useReactRouterEventTracker.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,0BAA0B,CAAC,WAAW,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAuFtF"}
@@ -1,2 +1,3 @@
1
- export declare function useTanstackRouterEventTracker(): void;
1
+ import { WorkerClientInitOptions } from '@mcp-fe/event-tracker';
2
+ export declare function useTanstackRouterEventTracker(initOptions?: WorkerClientInitOptions): void;
2
3
  //# sourceMappingURL=useTanstackRouterEventTracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTanstackRouterEventTracker.d.ts","sourceRoot":"","sources":["../../../../libs/react-event-tracker/src/hooks/useTanstackRouterEventTracker.ts"],"names":[],"mappings":"AASA,wBAAgB,6BAA6B,IAAI,IAAI,CAuFpD"}
1
+ {"version":3,"file":"useTanstackRouterEventTracker.d.ts","sourceRoot":"","sources":["../../../../libs/react-event-tracker/src/hooks/useTanstackRouterEventTracker.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,6BAA6B,CAAC,WAAW,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAuFzF"}
package/index.mjs CHANGED
@@ -1,59 +1,59 @@
1
1
  import * as S from "react";
2
- import A, { useRef as R, useState as Q, useEffect as _ } from "react";
3
- const se = Object.prototype.hasOwnProperty;
4
- function Z(t, e, n = 0) {
2
+ import L, { useRef as R, useState as Q, useEffect as _ } from "react";
3
+ const ae = Object.prototype.hasOwnProperty;
4
+ function Z(t, e, r = 0) {
5
5
  if (t === e)
6
6
  return t;
7
- if (n > 500) return e;
8
- const r = e, o = z(t) && z(r);
9
- if (!o && !(U(t) && U(r))) return r;
10
- const i = o ? t : x(t);
11
- if (!i) return r;
12
- const c = o ? r : x(r);
13
- if (!c) return r;
14
- const u = i.length, a = c.length, s = o ? new Array(a) : {};
15
- let v = 0;
16
- for (let h = 0; h < a; h++) {
17
- const p = o ? h : c[h], l = t[p], f = r[p];
18
- if (l === f) {
19
- s[p] = l, (o ? h < u : se.call(t, p)) && v++;
7
+ if (r > 500) return e;
8
+ const o = e, n = G(t) && G(o);
9
+ if (!n && !(V(t) && V(o))) return o;
10
+ const l = n ? t : M(t);
11
+ if (!l) return o;
12
+ const a = n ? o : M(o);
13
+ if (!a) return o;
14
+ const c = l.length, i = a.length, s = n ? new Array(i) : {};
15
+ let h = 0;
16
+ for (let v = 0; v < i; v++) {
17
+ const p = n ? v : a[v], u = t[p], f = o[p];
18
+ if (u === f) {
19
+ s[p] = u, (n ? v < c : ae.call(t, p)) && h++;
20
20
  continue;
21
21
  }
22
- if (l === null || f === null || typeof l != "object" || typeof f != "object") {
22
+ if (u === null || f === null || typeof u != "object" || typeof f != "object") {
23
23
  s[p] = f;
24
24
  continue;
25
25
  }
26
- const d = Z(l, f, n + 1);
27
- s[p] = d, d === l && v++;
26
+ const d = Z(u, f, r + 1);
27
+ s[p] = d, d === u && h++;
28
28
  }
29
- return u === a && v === u ? t : s;
29
+ return c === i && h === c ? t : s;
30
30
  }
31
- function x(t) {
32
- const e = [], n = Object.getOwnPropertyNames(t);
33
- for (const o of n) {
34
- if (!Object.prototype.propertyIsEnumerable.call(t, o)) return !1;
35
- e.push(o);
31
+ function M(t) {
32
+ const e = [], r = Object.getOwnPropertyNames(t);
33
+ for (const n of r) {
34
+ if (!Object.prototype.propertyIsEnumerable.call(t, n)) return !1;
35
+ e.push(n);
36
36
  }
37
- const r = Object.getOwnPropertySymbols(t);
38
- for (const o of r) {
39
- if (!Object.prototype.propertyIsEnumerable.call(t, o)) return !1;
40
- e.push(o);
37
+ const o = Object.getOwnPropertySymbols(t);
38
+ for (const n of o) {
39
+ if (!Object.prototype.propertyIsEnumerable.call(t, n)) return !1;
40
+ e.push(n);
41
41
  }
42
42
  return e;
43
43
  }
44
- function U(t) {
45
- if (!H(t))
44
+ function V(t) {
45
+ if (!z(t))
46
46
  return !1;
47
47
  const e = t.constructor;
48
48
  if (typeof e > "u")
49
49
  return !0;
50
- const n = e.prototype;
51
- return !(!H(n) || !n.hasOwnProperty("isPrototypeOf"));
50
+ const r = e.prototype;
51
+ return !(!z(r) || !r.hasOwnProperty("isPrototypeOf"));
52
52
  }
53
- function H(t) {
53
+ function z(t) {
54
54
  return Object.prototype.toString.call(t) === "[object Object]";
55
55
  }
56
- function z(t) {
56
+ function G(t) {
57
57
  return Array.isArray(t) && t.length === Object.keys(t).length;
58
58
  }
59
59
  var ce = process.env.NODE_ENV === "production";
@@ -61,231 +61,231 @@ function ue(t, e) {
61
61
  if (!ce) {
62
62
  if (t)
63
63
  return;
64
- var n = "Warning: " + e;
65
- typeof console < "u" && console.warn(n);
64
+ var r = "Warning: " + e;
65
+ typeof console < "u" && console.warn(r);
66
66
  try {
67
- throw Error(n);
67
+ throw Error(r);
68
68
  } catch {
69
69
  }
70
70
  }
71
71
  }
72
- var C = { exports: {} }, L = {}, N = { exports: {} }, P = {};
72
+ var C = { exports: {} }, A = {}, N = { exports: {} }, b = {};
73
73
  var K;
74
74
  function le() {
75
- if (K) return P;
75
+ if (K) return b;
76
76
  K = 1;
77
- var t = A;
78
- function e(h, p) {
79
- return h === p && (h !== 0 || 1 / h === 1 / p) || h !== h && p !== p;
77
+ var t = L;
78
+ function e(v, p) {
79
+ return v === p && (v !== 0 || 1 / v === 1 / p) || v !== v && p !== p;
80
80
  }
81
- var n = typeof Object.is == "function" ? Object.is : e, r = t.useState, o = t.useEffect, i = t.useLayoutEffect, c = t.useDebugValue;
82
- function u(h, p) {
83
- var l = p(), f = r({ inst: { value: l, getSnapshot: p } }), d = f[0].inst, k = f[1];
84
- return i(
81
+ var r = typeof Object.is == "function" ? Object.is : e, o = t.useState, n = t.useEffect, l = t.useLayoutEffect, a = t.useDebugValue;
82
+ function c(v, p) {
83
+ var u = p(), f = o({ inst: { value: u, getSnapshot: p } }), d = f[0].inst, k = f[1];
84
+ return l(
85
85
  function() {
86
- d.value = l, d.getSnapshot = p, a(d) && k({ inst: d });
86
+ d.value = u, d.getSnapshot = p, i(d) && k({ inst: d });
87
87
  },
88
- [h, l, p]
89
- ), o(
88
+ [v, u, p]
89
+ ), n(
90
90
  function() {
91
- return a(d) && k({ inst: d }), h(function() {
92
- a(d) && k({ inst: d });
91
+ return i(d) && k({ inst: d }), v(function() {
92
+ i(d) && k({ inst: d });
93
93
  });
94
94
  },
95
- [h]
96
- ), c(l), l;
95
+ [v]
96
+ ), a(u), u;
97
97
  }
98
- function a(h) {
99
- var p = h.getSnapshot;
100
- h = h.value;
98
+ function i(v) {
99
+ var p = v.getSnapshot;
100
+ v = v.value;
101
101
  try {
102
- var l = p();
103
- return !n(h, l);
102
+ var u = p();
103
+ return !r(v, u);
104
104
  } catch {
105
105
  return !0;
106
106
  }
107
107
  }
108
- function s(h, p) {
108
+ function s(v, p) {
109
109
  return p();
110
110
  }
111
- var v = typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u" ? s : u;
112
- return P.useSyncExternalStore = t.useSyncExternalStore !== void 0 ? t.useSyncExternalStore : v, P;
111
+ var h = typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u" ? s : c;
112
+ return b.useSyncExternalStore = t.useSyncExternalStore !== void 0 ? t.useSyncExternalStore : h, b;
113
113
  }
114
- var b = {};
115
- var F;
114
+ var I = {};
115
+ var H;
116
116
  function fe() {
117
- return F || (F = 1, process.env.NODE_ENV !== "production" && (function() {
118
- function t(l, f) {
119
- return l === f && (l !== 0 || 1 / l === 1 / f) || l !== l && f !== f;
117
+ return H || (H = 1, process.env.NODE_ENV !== "production" && (function() {
118
+ function t(u, f) {
119
+ return u === f && (u !== 0 || 1 / u === 1 / f) || u !== u && f !== f;
120
120
  }
121
- function e(l, f) {
122
- v || o.startTransition === void 0 || (v = !0, console.error(
121
+ function e(u, f) {
122
+ h || n.startTransition === void 0 || (h = !0, console.error(
123
123
  "You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."
124
124
  ));
125
125
  var d = f();
126
- if (!h) {
126
+ if (!v) {
127
127
  var k = f();
128
- i(d, k) || (console.error(
128
+ l(d, k) || (console.error(
129
129
  "The result of getSnapshot should be cached to avoid an infinite loop"
130
- ), h = !0);
130
+ ), v = !0);
131
131
  }
132
- k = c({
132
+ k = a({
133
133
  inst: { value: d, getSnapshot: f }
134
134
  });
135
- var g = k[0].inst, T = k[1];
136
- return a(
135
+ var g = k[0].inst, y = k[1];
136
+ return i(
137
137
  function() {
138
- g.value = d, g.getSnapshot = f, n(g) && T({ inst: g });
138
+ g.value = d, g.getSnapshot = f, r(g) && y({ inst: g });
139
139
  },
140
- [l, d, f]
141
- ), u(
140
+ [u, d, f]
141
+ ), c(
142
142
  function() {
143
- return n(g) && T({ inst: g }), l(function() {
144
- n(g) && T({ inst: g });
143
+ return r(g) && y({ inst: g }), u(function() {
144
+ r(g) && y({ inst: g });
145
145
  });
146
146
  },
147
- [l]
147
+ [u]
148
148
  ), s(d), d;
149
149
  }
150
- function n(l) {
151
- var f = l.getSnapshot;
152
- l = l.value;
150
+ function r(u) {
151
+ var f = u.getSnapshot;
152
+ u = u.value;
153
153
  try {
154
154
  var d = f();
155
- return !i(l, d);
155
+ return !l(u, d);
156
156
  } catch {
157
157
  return !0;
158
158
  }
159
159
  }
160
- function r(l, f) {
160
+ function o(u, f) {
161
161
  return f();
162
162
  }
163
163
  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
164
- var o = A, i = typeof Object.is == "function" ? Object.is : t, c = o.useState, u = o.useEffect, a = o.useLayoutEffect, s = o.useDebugValue, v = !1, h = !1, p = typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u" ? r : e;
165
- b.useSyncExternalStore = o.useSyncExternalStore !== void 0 ? o.useSyncExternalStore : p, typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
166
- })()), b;
164
+ var n = L, l = typeof Object.is == "function" ? Object.is : t, a = n.useState, c = n.useEffect, i = n.useLayoutEffect, s = n.useDebugValue, h = !1, v = !1, p = typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u" ? o : e;
165
+ I.useSyncExternalStore = n.useSyncExternalStore !== void 0 ? n.useSyncExternalStore : p, typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
166
+ })()), I;
167
167
  }
168
- var G;
168
+ var F;
169
169
  function ee() {
170
- return G || (G = 1, process.env.NODE_ENV === "production" ? N.exports = le() : N.exports = fe()), N.exports;
170
+ return F || (F = 1, process.env.NODE_ENV === "production" ? N.exports = le() : N.exports = fe()), N.exports;
171
171
  }
172
172
  var q;
173
173
  function de() {
174
- if (q) return L;
174
+ if (q) return A;
175
175
  q = 1;
176
- var t = A, e = ee();
177
- function n(s, v) {
178
- return s === v && (s !== 0 || 1 / s === 1 / v) || s !== s && v !== v;
176
+ var t = L, e = ee();
177
+ function r(s, h) {
178
+ return s === h && (s !== 0 || 1 / s === 1 / h) || s !== s && h !== h;
179
179
  }
180
- var r = typeof Object.is == "function" ? Object.is : n, o = e.useSyncExternalStore, i = t.useRef, c = t.useEffect, u = t.useMemo, a = t.useDebugValue;
181
- return L.useSyncExternalStoreWithSelector = function(s, v, h, p, l) {
182
- var f = i(null);
180
+ var o = typeof Object.is == "function" ? Object.is : r, n = e.useSyncExternalStore, l = t.useRef, a = t.useEffect, c = t.useMemo, i = t.useDebugValue;
181
+ return A.useSyncExternalStoreWithSelector = function(s, h, v, p, u) {
182
+ var f = l(null);
183
183
  if (f.current === null) {
184
184
  var d = { hasValue: !1, value: null };
185
185
  f.current = d;
186
186
  } else d = f.current;
187
- f = u(
187
+ f = c(
188
188
  function() {
189
189
  function g(m) {
190
- if (!T) {
191
- if (T = !0, y = m, m = p(m), l !== void 0 && d.hasValue) {
190
+ if (!y) {
191
+ if (y = !0, T = m, m = p(m), u !== void 0 && d.hasValue) {
192
192
  var E = d.value;
193
- if (l(E, m))
193
+ if (u(E, m))
194
194
  return O = E;
195
195
  }
196
196
  return O = m;
197
197
  }
198
- if (E = O, r(y, m)) return E;
199
- var W = p(m);
200
- return l !== void 0 && l(E, W) ? (y = m, E) : (y = m, O = W);
198
+ if (E = O, o(T, m)) return E;
199
+ var w = p(m);
200
+ return u !== void 0 && u(E, w) ? (T = m, E) : (T = m, O = w);
201
201
  }
202
- var T = !1, y, O, w = h === void 0 ? null : h;
202
+ var y = !1, T, O, W = v === void 0 ? null : v;
203
203
  return [
204
204
  function() {
205
- return g(v());
205
+ return g(h());
206
206
  },
207
- w === null ? void 0 : function() {
208
- return g(w());
207
+ W === null ? void 0 : function() {
208
+ return g(W());
209
209
  }
210
210
  ];
211
211
  },
212
- [v, h, p, l]
212
+ [h, v, p, u]
213
213
  );
214
- var k = o(s, f[0], f[1]);
215
- return c(
214
+ var k = n(s, f[0], f[1]);
215
+ return a(
216
216
  function() {
217
217
  d.hasValue = !0, d.value = k;
218
218
  },
219
219
  [k]
220
- ), a(k), k;
221
- }, L;
220
+ ), i(k), k;
221
+ }, A;
222
222
  }
223
- var I = {};
223
+ var P = {};
224
224
  var X;
225
225
  function he() {
226
226
  return X || (X = 1, process.env.NODE_ENV !== "production" && (function() {
227
- function t(s, v) {
228
- return s === v && (s !== 0 || 1 / s === 1 / v) || s !== s && v !== v;
227
+ function t(s, h) {
228
+ return s === h && (s !== 0 || 1 / s === 1 / h) || s !== s && h !== h;
229
229
  }
230
230
  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
231
- var e = A, n = ee(), r = typeof Object.is == "function" ? Object.is : t, o = n.useSyncExternalStore, i = e.useRef, c = e.useEffect, u = e.useMemo, a = e.useDebugValue;
232
- I.useSyncExternalStoreWithSelector = function(s, v, h, p, l) {
233
- var f = i(null);
231
+ var e = L, r = ee(), o = typeof Object.is == "function" ? Object.is : t, n = r.useSyncExternalStore, l = e.useRef, a = e.useEffect, c = e.useMemo, i = e.useDebugValue;
232
+ P.useSyncExternalStoreWithSelector = function(s, h, v, p, u) {
233
+ var f = l(null);
234
234
  if (f.current === null) {
235
235
  var d = { hasValue: !1, value: null };
236
236
  f.current = d;
237
237
  } else d = f.current;
238
- f = u(
238
+ f = c(
239
239
  function() {
240
240
  function g(m) {
241
- if (!T) {
242
- if (T = !0, y = m, m = p(m), l !== void 0 && d.hasValue) {
241
+ if (!y) {
242
+ if (y = !0, T = m, m = p(m), u !== void 0 && d.hasValue) {
243
243
  var E = d.value;
244
- if (l(E, m))
244
+ if (u(E, m))
245
245
  return O = E;
246
246
  }
247
247
  return O = m;
248
248
  }
249
- if (E = O, r(y, m))
249
+ if (E = O, o(T, m))
250
250
  return E;
251
- var W = p(m);
252
- return l !== void 0 && l(E, W) ? (y = m, E) : (y = m, O = W);
251
+ var w = p(m);
252
+ return u !== void 0 && u(E, w) ? (T = m, E) : (T = m, O = w);
253
253
  }
254
- var T = !1, y, O, w = h === void 0 ? null : h;
254
+ var y = !1, T, O, W = v === void 0 ? null : v;
255
255
  return [
256
256
  function() {
257
- return g(v());
257
+ return g(h());
258
258
  },
259
- w === null ? void 0 : function() {
260
- return g(w());
259
+ W === null ? void 0 : function() {
260
+ return g(W());
261
261
  }
262
262
  ];
263
263
  },
264
- [v, h, p, l]
264
+ [h, v, p, u]
265
265
  );
266
- var k = o(s, f[0], f[1]);
267
- return c(
266
+ var k = n(s, f[0], f[1]);
267
+ return a(
268
268
  function() {
269
269
  d.hasValue = !0, d.value = k;
270
270
  },
271
271
  [k]
272
- ), a(k), k;
272
+ ), i(k), k;
273
273
  }, typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
274
- })()), I;
274
+ })()), P;
275
275
  }
276
276
  var $;
277
- function pe() {
277
+ function ve() {
278
278
  return $ || ($ = 1, process.env.NODE_ENV === "production" ? C.exports = de() : C.exports = he()), C.exports;
279
279
  }
280
- var ve = pe();
281
- function ke(t, e = (r) => r, n = {}) {
282
- const r = n.equal ?? me;
283
- return ve.useSyncExternalStoreWithSelector(
280
+ var pe = ve();
281
+ function ke(t, e = (o) => o, r = {}) {
282
+ const o = r.equal ?? me;
283
+ return pe.useSyncExternalStoreWithSelector(
284
284
  t.subscribe,
285
285
  () => t.state,
286
286
  () => t.state,
287
287
  e,
288
- r
288
+ o
289
289
  );
290
290
  }
291
291
  function me(t, e) {
@@ -295,23 +295,23 @@ function me(t, e) {
295
295
  return !1;
296
296
  if (t instanceof Map && e instanceof Map) {
297
297
  if (t.size !== e.size) return !1;
298
- for (const [r, o] of t)
299
- if (!e.has(r) || !Object.is(o, e.get(r))) return !1;
298
+ for (const [o, n] of t)
299
+ if (!e.has(o) || !Object.is(n, e.get(o))) return !1;
300
300
  return !0;
301
301
  }
302
302
  if (t instanceof Set && e instanceof Set) {
303
303
  if (t.size !== e.size) return !1;
304
- for (const r of t)
305
- if (!e.has(r)) return !1;
304
+ for (const o of t)
305
+ if (!e.has(o)) return !1;
306
306
  return !0;
307
307
  }
308
308
  if (t instanceof Date && e instanceof Date)
309
309
  return t.getTime() === e.getTime();
310
- const n = j(t);
311
- if (n.length !== j(e).length)
310
+ const r = j(t);
311
+ if (r.length !== j(e).length)
312
312
  return !1;
313
- for (let r = 0; r < n.length; r++)
314
- if (!Object.prototype.hasOwnProperty.call(e, n[r]) || !Object.is(t[n[r]], e[n[r]]))
313
+ for (let o = 0; o < r.length; o++)
314
+ if (!Object.prototype.hasOwnProperty.call(e, r[o]) || !Object.is(t[r[o]], e[r[o]]))
315
315
  return !1;
316
316
  return !0;
317
317
  }
@@ -320,9 +320,9 @@ function j(t) {
320
320
  Object.getOwnPropertySymbols(t)
321
321
  );
322
322
  }
323
- const D = S.createContext(null);
323
+ const U = S.createContext(null);
324
324
  function ge() {
325
- return typeof document > "u" ? D : window.__TSR_ROUTER_CONTEXT__ ? window.__TSR_ROUTER_CONTEXT__ : (window.__TSR_ROUTER_CONTEXT__ = D, D);
325
+ return typeof document > "u" ? U : window.__TSR_ROUTER_CONTEXT__ ? window.__TSR_ROUTER_CONTEXT__ : (window.__TSR_ROUTER_CONTEXT__ = U, U);
326
326
  }
327
327
  function Ee(t) {
328
328
  const e = S.useContext(ge());
@@ -334,19 +334,19 @@ function Ee(t) {
334
334
  function Se(t) {
335
335
  const e = Ee({
336
336
  warn: t?.router === void 0
337
- }), n = t?.router || e, r = R(void 0);
338
- return ke(n.__store, (o) => {
337
+ }), r = t?.router || e, o = R(void 0);
338
+ return ke(r.__store, (n) => {
339
339
  if (t?.select) {
340
- if (t.structuralSharing ?? n.options.defaultStructuralSharing) {
341
- const i = Z(
342
- r.current,
343
- t.select(o)
340
+ if (t.structuralSharing ?? r.options.defaultStructuralSharing) {
341
+ const l = Z(
342
+ o.current,
343
+ t.select(n)
344
344
  );
345
- return r.current = i, i;
345
+ return o.current = l, l;
346
346
  }
347
- return t.select(o);
347
+ return t.select(n);
348
348
  }
349
- return o;
349
+ return n;
350
350
  });
351
351
  }
352
352
  function _e(t) {
@@ -354,7 +354,12 @@ function _e(t) {
354
354
  select: (e) => e.location
355
355
  });
356
356
  }
357
- class Te {
357
+ class ye {
358
+ // Configurable worker script URLs (defaults kept for backward compatibility)
359
+ sharedWorkerUrl = "/mcp-shared-worker.js";
360
+ serviceWorkerUrl = "/mcp-service-worker.js";
361
+ // Backend websocket URL to pass into the worker(s)
362
+ backendWsUrl = "ws://localhost:3001";
358
363
  serviceWorkerRegistration = null;
359
364
  sharedWorker = null;
360
365
  sharedWorkerPort = null;
@@ -362,197 +367,236 @@ class Te {
362
367
  pendingAuthToken = null;
363
368
  // connection status subscribers
364
369
  connectionStatusCallbacks = /* @__PURE__ */ new Set();
365
- serviceWorkerMessageHandler = null;
366
370
  // Mutex/promise to prevent concurrent init runs
367
371
  initPromise = null;
368
372
  // Initialize and choose worker implementation (prefer SharedWorker)
373
+ // Accept either a ServiceWorkerRegistration OR WorkerInitOptions to configure URLs
369
374
  async init(e) {
375
+ let r;
376
+ const o = e;
377
+ if (o && typeof o.scope == "string")
378
+ r = e;
379
+ else if (e) {
380
+ const n = e;
381
+ n.sharedWorkerUrl && (this.sharedWorkerUrl = n.sharedWorkerUrl), n.serviceWorkerUrl && (this.serviceWorkerUrl = n.serviceWorkerUrl), n.backendWsUrl && (this.backendWsUrl = n.backendWsUrl);
382
+ }
370
383
  return this.initPromise ? this.initPromise.then(async () => {
371
- e && this.workerType !== "service" && await this.init(e);
384
+ r && this.workerType !== "service" && await this.init(r);
372
385
  }) : (this.initPromise = (async () => {
373
386
  try {
374
- if (e) {
375
- this.serviceWorkerRegistration = e, this.workerType = "service", console.log("[WorkerClient] Using ServiceWorker (explicit registration)"), this.pendingAuthToken && (this.sendAuthTokenToServiceWorker(this.pendingAuthToken), this.pendingAuthToken = null);
376
- return;
377
- }
378
- if (typeof SharedWorker < "u")
387
+ if (r) {
388
+ this.serviceWorkerRegistration = r, this.workerType = "service", console.log(
389
+ "[WorkerClient] Using ServiceWorker (explicit registration)"
390
+ );
379
391
  try {
380
- if (this.sharedWorker = new SharedWorker("/mcp-shared-worker.js", { type: "module" }), this.sharedWorkerPort = this.sharedWorker.port, this.sharedWorkerPort.start(), this.pendingAuthToken && this.sharedWorkerPort)
381
- try {
382
- this.sharedWorkerPort.postMessage({ type: "SET_AUTH_TOKEN", token: this.pendingAuthToken });
383
- } catch (r) {
384
- console.warn("[WorkerClient] Immediate postMessage to SharedWorker failed (will retry after init):", r);
385
- }
386
- this.sharedWorker.onerror = (r) => {
387
- console.error("[WorkerClient] SharedWorker error:", r.message || r.error || r), this.workerType !== "shared" && this.initServiceWorkerFallback().catch((o) => {
388
- console.error("[WorkerClient] Failed to initialize ServiceWorker fallback:", o);
389
- });
390
- }, await new Promise((r, o) => {
391
- let i = !1;
392
- const c = setTimeout(() => {
393
- if (!i) {
394
- const a = this.sharedWorkerPort;
395
- a && (a.onmessage = null), o(new Error("SharedWorker initialization timeout"));
396
- }
397
- }, 2e3), u = this.sharedWorkerPort;
398
- if (!u)
399
- return clearTimeout(c), o(new Error("SharedWorker port not available"));
400
- u.onmessage = (a) => {
401
- try {
402
- const s = a.data;
403
- s && s.type === "CONNECTION_STATUS" && (clearTimeout(c), i = !0, this.workerType = "shared", u.onmessage = null, r());
404
- } catch {
405
- }
406
- };
407
- });
408
- const n = this.sharedWorkerPort;
409
- if (this.pendingAuthToken && n)
410
- try {
411
- n.postMessage({ type: "SET_AUTH_TOKEN", token: this.pendingAuthToken }), this.pendingAuthToken = null;
412
- } catch (r) {
413
- console.error("[WorkerClient] Failed to send pending auth token to SharedWorker:", r);
414
- }
415
- n && (n.onmessage = (r) => {
416
- try {
417
- const o = r.data;
418
- if (o && o.type === "CONNECTION_STATUS") {
419
- const i = !!o.connected;
420
- this.connectionStatusCallbacks.forEach((c) => {
421
- try {
422
- c(i);
423
- } catch {
424
- }
425
- });
426
- }
427
- } catch {
428
- }
429
- }), console.log("[WorkerClient] Using SharedWorker");
430
- return;
431
- } catch (n) {
432
- console.warn("[WorkerClient] SharedWorker not available, falling back to ServiceWorker:", n);
392
+ const l = { type: "INIT", backendUrl: this.backendWsUrl };
393
+ this.pendingAuthToken && (l.token = this.pendingAuthToken), this.serviceWorkerRegistration.active ? this.serviceWorkerRegistration.active.postMessage(l) : "serviceWorker" in navigator && navigator.serviceWorker.controller && navigator.serviceWorker.controller.postMessage(l);
394
+ } catch {
433
395
  }
434
- console.log("this should not be called"), await this.initServiceWorkerFallback(), this.pendingAuthToken && this.workerType === "service" && (this.sendAuthTokenToServiceWorker(this.pendingAuthToken), this.pendingAuthToken = null);
396
+ return;
397
+ }
398
+ if (await this.initSharedWorker()) return;
399
+ await this.initServiceWorkerFallback();
435
400
  } finally {
436
401
  this.initPromise = null;
437
402
  }
438
403
  })(), this.initPromise);
439
404
  }
440
- async initServiceWorkerFallback() {
441
- if (console.log("initServiceWorkerFallback called"), "serviceWorker" in navigator)
442
- try {
443
- const e = await navigator.serviceWorker.getRegistration();
444
- if (e) {
445
- this.serviceWorkerRegistration = e, this.workerType = "service", console.log("[WorkerClient] Using existing ServiceWorker registration");
446
- return;
405
+ async initSharedWorker() {
406
+ if (typeof SharedWorker > "u")
407
+ return !1;
408
+ try {
409
+ this.sharedWorker = new SharedWorker(this.sharedWorkerUrl, {
410
+ type: "module"
411
+ }), this.sharedWorkerPort = this.sharedWorker.port, this.sharedWorkerPort.start(), await new Promise((r, o) => {
412
+ let n = !1;
413
+ const l = setTimeout(() => {
414
+ if (!n) {
415
+ const c = this.sharedWorkerPort;
416
+ c && (c.onmessage = null), o(new Error("SharedWorker initialization timeout"));
417
+ }
418
+ }, 2e3), a = this.sharedWorkerPort;
419
+ if (!a)
420
+ return clearTimeout(l), o(new Error("SharedWorker port not available"));
421
+ a.onmessage = (c) => {
422
+ try {
423
+ const i = c.data;
424
+ i && i.type === "CONNECTION_STATUS" && (clearTimeout(l), n = !0, this.workerType = "shared", a.onmessage = null, r());
425
+ } catch {
426
+ }
427
+ };
428
+ });
429
+ const e = this.sharedWorkerPort;
430
+ if (e) {
431
+ try {
432
+ const r = { type: "INIT", backendUrl: this.backendWsUrl };
433
+ this.pendingAuthToken && (r.token = this.pendingAuthToken), e.postMessage(r), this.pendingAuthToken = null;
434
+ } catch (r) {
435
+ console.warn("[WorkerClient] Failed to send INIT to SharedWorker port:", r);
447
436
  }
448
- const n = await navigator.serviceWorker.register("/mcp-service-worker.js");
449
- this.serviceWorkerRegistration = n, this.workerType = "service", console.log("[WorkerClient] Using ServiceWorker (fallback)"), this.serviceWorkerMessageHandler && (navigator.serviceWorker.removeEventListener("message", this.serviceWorkerMessageHandler), this.serviceWorkerMessageHandler = null), this.serviceWorkerMessageHandler = (r) => {
437
+ e.onmessage = (r) => {
450
438
  try {
451
439
  const o = r.data;
452
440
  if (o && o.type === "CONNECTION_STATUS") {
453
- const i = !!o.connected;
454
- this.connectionStatusCallbacks.forEach((c) => {
441
+ const n = !!o.connected;
442
+ this.connectionStatusCallbacks.forEach((l) => {
455
443
  try {
456
- c(i);
444
+ l(n);
457
445
  } catch {
458
446
  }
459
447
  });
460
448
  }
461
449
  } catch {
462
450
  }
463
- }, navigator.serviceWorker.addEventListener("message", this.serviceWorkerMessageHandler);
451
+ };
452
+ }
453
+ return console.log("[WorkerClient] Using SharedWorker"), !0;
454
+ } catch (e) {
455
+ return console.warn(
456
+ "[WorkerClient] SharedWorker not available, falling back to ServiceWorker:",
457
+ e
458
+ ), !1;
459
+ }
460
+ }
461
+ async initServiceWorkerFallback() {
462
+ if ("serviceWorker" in navigator)
463
+ try {
464
+ const e = await navigator.serviceWorker.getRegistration();
465
+ if (e) {
466
+ this.serviceWorkerRegistration = e, this.workerType = "service", console.log(
467
+ "[WorkerClient] Using existing ServiceWorker registration"
468
+ );
469
+ return;
470
+ }
471
+ this.serviceWorkerRegistration = await navigator.serviceWorker.register(
472
+ this.serviceWorkerUrl
473
+ ), this.workerType = "service", console.log("[WorkerClient] Using MCP ServiceWorker (fallback)");
474
+ try {
475
+ const r = { type: "INIT", backendUrl: this.backendWsUrl };
476
+ this.pendingAuthToken && (r.token = this.pendingAuthToken), this.serviceWorkerRegistration.active ? this.serviceWorkerRegistration.active.postMessage(r) : "serviceWorker" in navigator && navigator.serviceWorker.controller && navigator.serviceWorker.controller.postMessage(r), this.pendingAuthToken = null;
477
+ } catch {
478
+ }
464
479
  } catch (e) {
465
- throw console.error("[WorkerClient] Failed to register ServiceWorker:", e), e;
480
+ throw console.error(
481
+ "[WorkerClient] Failed to register ServiceWorker:",
482
+ e
483
+ ), e;
466
484
  }
467
485
  else
468
486
  throw new Error("Neither SharedWorker nor ServiceWorker is supported");
469
487
  }
470
488
  // Low-level request that expects a reply via MessageChannel
471
- async request(e, n, r = 5e3) {
489
+ async request(e, r, o = 5e3) {
472
490
  if (this.workerType === "shared" && this.sharedWorkerPort)
473
- return new Promise((o, i) => {
474
- const c = new MessageChannel(), u = setTimeout(() => {
475
- c.port1.onmessage = null, i(new Error("Request timeout"));
476
- }, r);
477
- c.port1.onmessage = (a) => {
478
- clearTimeout(u), a.data && a.data.success ? o(a.data) : a.data && a.data.success === !1 ? i(new Error(a.data.error || "Worker error")) : o(a.data);
491
+ return new Promise((n, l) => {
492
+ const a = new MessageChannel(), c = setTimeout(() => {
493
+ a.port1.onmessage = null, l(new Error("Request timeout"));
494
+ }, o);
495
+ a.port1.onmessage = (i) => {
496
+ clearTimeout(c), i.data && i.data.success ? n(i.data) : i.data && i.data.success === !1 ? l(new Error(i.data.error || "Worker error")) : n(i.data);
479
497
  };
480
498
  try {
481
- const a = this.sharedWorkerPort;
482
- if (!a)
483
- return clearTimeout(u), i(new Error("SharedWorker port not available"));
484
- a.postMessage({ type: e, ...n || {} }, [c.port2]);
485
- } catch (a) {
486
- clearTimeout(u), i(a instanceof Error ? a : new Error(String(a)));
499
+ const i = this.sharedWorkerPort;
500
+ if (!i)
501
+ return clearTimeout(c), l(new Error("SharedWorker port not available"));
502
+ i.postMessage({ type: e, ...r || {} }, [a.port2]);
503
+ } catch (i) {
504
+ clearTimeout(c), l(i instanceof Error ? i : new Error(String(i)));
487
505
  }
488
506
  });
489
507
  if (this.workerType === "service" && this.serviceWorkerRegistration) {
490
- const o = this.serviceWorkerRegistration;
491
- if (!o) throw new Error("Service worker registration missing");
492
- if (!o.active && (await navigator.serviceWorker.ready, !o.active))
508
+ const n = this.serviceWorkerRegistration;
509
+ if (!n) throw new Error("Service worker registration missing");
510
+ if (!n.active && (await navigator.serviceWorker.ready, !n.active))
493
511
  throw new Error("Service worker not active");
494
- return new Promise((i, c) => {
495
- const u = new MessageChannel(), a = setTimeout(() => {
496
- u.port1.onmessage = null, c(new Error("Request timeout"));
497
- }, r);
498
- u.port1.onmessage = (s) => {
499
- clearTimeout(a), s.data && s.data.success ? i(s.data) : s.data && s.data.success === !1 ? c(new Error(s.data.error || "Worker error")) : i(s.data);
512
+ return new Promise((l, a) => {
513
+ const c = new MessageChannel(), i = setTimeout(() => {
514
+ c.port1.onmessage = null, a(new Error("Request timeout"));
515
+ }, o);
516
+ c.port1.onmessage = (s) => {
517
+ clearTimeout(i), s.data && s.data.success ? l(s.data) : s.data && s.data.success === !1 ? a(new Error(s.data.error || "Worker error")) : l(s.data);
500
518
  };
501
519
  try {
502
- const s = o.active;
520
+ const s = n.active;
503
521
  if (!s)
504
- return clearTimeout(a), c(new Error("Service worker active instance not available"));
505
- s.postMessage({ type: e, ...n || {} }, [u.port2]);
522
+ return clearTimeout(i), a(
523
+ new Error("Service worker active instance not available")
524
+ );
525
+ s.postMessage({ type: e, ...r || {} }, [c.port2]);
506
526
  } catch (s) {
507
- clearTimeout(a), c(s instanceof Error ? s : new Error(String(s)));
527
+ clearTimeout(i), a(s instanceof Error ? s : new Error(String(s)));
508
528
  }
509
529
  });
510
530
  }
511
531
  throw new Error("No worker registered");
512
532
  }
513
533
  // Fire-and-forget postMessage (no response expected)
514
- async post(e, n) {
534
+ async post(e, r) {
515
535
  if (this.workerType === "shared" && this.sharedWorkerPort) {
516
536
  try {
517
- this.sharedWorkerPort.postMessage({ type: e, ...n || {} });
518
- } catch (r) {
519
- console.error("[WorkerClient] Failed to post to SharedWorker:", r);
537
+ this.sharedWorkerPort.postMessage({ type: e, ...r || {} });
538
+ } catch (o) {
539
+ console.error("[WorkerClient] Failed to post to SharedWorker:", o);
520
540
  }
521
541
  return;
522
542
  }
523
543
  if (this.workerType === "service" && this.serviceWorkerRegistration?.active) {
524
544
  try {
525
- this.serviceWorkerRegistration.active.postMessage({ type: e, ...n || {} });
526
- } catch (r) {
527
- console.error("[WorkerClient] Failed to post to ServiceWorker (active):", r);
545
+ this.serviceWorkerRegistration.active.postMessage({
546
+ type: e,
547
+ ...r || {}
548
+ });
549
+ } catch (o) {
550
+ console.error(
551
+ "[WorkerClient] Failed to post to ServiceWorker (active):",
552
+ o
553
+ );
528
554
  }
529
555
  return;
530
556
  }
531
557
  if ("serviceWorker" in navigator && navigator.serviceWorker.controller) {
532
558
  try {
533
- navigator.serviceWorker.controller.postMessage({ type: e, ...n || {} });
534
- } catch (r) {
535
- console.error("[WorkerClient] Failed to post to ServiceWorker.controller:", r);
559
+ navigator.serviceWorker.controller.postMessage({
560
+ type: e,
561
+ ...r || {}
562
+ });
563
+ } catch (o) {
564
+ console.error(
565
+ "[WorkerClient] Failed to post to ServiceWorker.controller:",
566
+ o
567
+ );
536
568
  }
537
569
  return;
538
570
  }
539
- if (e === "SET_AUTH_TOKEN" && n) {
540
- const r = n.token;
541
- typeof r == "string" && (this.pendingAuthToken = r);
571
+ if (e === "SET_AUTH_TOKEN" && r) {
572
+ const o = r.token;
573
+ typeof o == "string" && (this.pendingAuthToken = o);
542
574
  }
543
575
  }
544
576
  sendAuthTokenToServiceWorker(e) {
545
577
  if (this.serviceWorkerRegistration?.active)
546
578
  try {
547
- this.serviceWorkerRegistration.active.postMessage({ type: "SET_AUTH_TOKEN", token: e });
548
- } catch (n) {
549
- console.error("[WorkerClient] Failed to send auth token to ServiceWorker:", n);
579
+ this.serviceWorkerRegistration.active.postMessage({
580
+ type: "SET_AUTH_TOKEN",
581
+ token: e
582
+ });
583
+ } catch (r) {
584
+ console.error(
585
+ "[WorkerClient] Failed to send auth token to ServiceWorker:",
586
+ r
587
+ );
550
588
  }
551
589
  else if ("serviceWorker" in navigator && navigator.serviceWorker.controller)
552
590
  try {
553
- navigator.serviceWorker.controller.postMessage({ type: "SET_AUTH_TOKEN", token: e });
554
- } catch (n) {
555
- console.error("[WorkerClient] Failed to send auth token to ServiceWorker.controller:", n);
591
+ navigator.serviceWorker.controller.postMessage({
592
+ type: "SET_AUTH_TOKEN",
593
+ token: e
594
+ });
595
+ } catch (r) {
596
+ console.error(
597
+ "[WorkerClient] Failed to send auth token to ServiceWorker.controller:",
598
+ r
599
+ );
556
600
  }
557
601
  else
558
602
  this.pendingAuthToken = e;
@@ -566,8 +610,12 @@ class Te {
566
610
  }
567
611
  async getConnectionStatus() {
568
612
  try {
569
- const e = await this.request("GET_CONNECTION_STATUS", void 0, 2e3);
570
- return e && typeof e == "object" && "connected" in e, !!e.connected;
613
+ const e = await this.request(
614
+ "GET_CONNECTION_STATUS",
615
+ void 0,
616
+ 2e3
617
+ );
618
+ return e && typeof e == "object" && "connected" in e ? !!e.connected : !!e?.connected;
571
619
  } catch {
572
620
  return !1;
573
621
  }
@@ -576,90 +624,93 @@ class Te {
576
624
  if (this.pendingAuthToken = e, this.workerType === "shared" && this.sharedWorkerPort)
577
625
  try {
578
626
  this.sharedWorkerPort.postMessage({ type: "SET_AUTH_TOKEN", token: e }), this.pendingAuthToken = null;
579
- } catch (n) {
580
- console.error("[WorkerClient] Failed to set auth token on SharedWorker:", n);
627
+ } catch (r) {
628
+ console.error(
629
+ "[WorkerClient] Failed to set auth token on SharedWorker:",
630
+ r
631
+ );
581
632
  }
582
633
  else this.workerType === "service" && (this.sendAuthTokenToServiceWorker(e), this.pendingAuthToken = null);
583
634
  }
584
635
  }
585
- const te = new Te();
636
+ const te = new ye();
586
637
  async function re(t) {
587
638
  return te.init(t);
588
639
  }
589
- async function M(t) {
640
+ async function D(t) {
590
641
  const e = { ...t, timestamp: Date.now() };
591
642
  await te.request("STORE_EVENT", { event: e });
592
643
  }
593
- async function ne(t, e, n) {
594
- return M({ type: "navigation", from: t, to: e, path: n || e });
644
+ async function ne(t, e, r) {
645
+ return D({ type: "navigation", from: t, to: e, path: r || e });
595
646
  }
596
- async function oe(t, e, n) {
597
- const r = t.id || void 0, o = t.className || void 0, i = t.textContent?.trim().substring(0, 100) || void 0, c = t.tagName.toLowerCase();
598
- return M({
647
+ async function oe(t, e, r) {
648
+ const o = t.id || void 0, n = t.className || void 0, l = t.textContent?.trim().substring(0, 100) || void 0, a = t.tagName.toLowerCase();
649
+ return D({
599
650
  type: "click",
600
- element: c,
601
- elementId: r,
602
- elementClass: o,
603
- elementText: i,
651
+ element: a,
652
+ elementId: o,
653
+ elementClass: n,
654
+ elementText: l,
604
655
  path: e || window.location.pathname,
605
- metadata: n
656
+ metadata: r
606
657
  });
607
658
  }
608
- async function ie(t, e, n) {
609
- const r = t.id || void 0, o = t.className || void 0, i = t.tagName.toLowerCase();
610
- return M({
659
+ async function ie(t, e, r) {
660
+ const o = t.id || void 0, n = t.className || void 0, l = t.tagName.toLowerCase();
661
+ return D({
611
662
  type: "input",
612
- element: i,
613
- elementId: r,
614
- elementClass: o,
615
- path: n || window.location.pathname,
663
+ element: l,
664
+ elementId: o,
665
+ elementClass: n,
666
+ path: r || window.location.pathname,
616
667
  metadata: {
617
668
  valueLength: e?.length || 0,
618
669
  value: e
619
670
  }
620
671
  });
621
672
  }
622
- function be() {
623
- const t = _e(), [e, n] = Q(!1), r = R(t.pathname), o = R(null);
673
+ function Ie(t) {
674
+ const e = _e(), [r, o] = Q(!1), n = R(e.pathname), l = R(null);
624
675
  _(() => {
625
- r.current !== t.pathname && (o.current = r.current, r.current = t.pathname);
626
- }, [t.pathname]), _(() => {
627
- re().then(() => n(!0)).catch((i) => {
628
- console.error("Worker initialization failed:", i);
676
+ n.current !== e.pathname && (l.current = n.current, n.current = e.pathname);
677
+ }, [e.pathname]), _(() => {
678
+ re(t).then(() => o(!0)).catch((a) => {
679
+ console.error("Worker initialization failed:", a);
629
680
  });
630
- }, []), _(() => {
631
- if (!e) return;
632
- const i = o.current, c = r.current;
633
- i && i !== c && ne(i, c, c).catch((u) => {
634
- console.error("Failed to track navigation:", u);
681
+ }, [t]), _(() => {
682
+ if (!r) return;
683
+ const a = l.current, c = n.current;
684
+ a && a !== c && ne(a, c, c).catch((i) => {
685
+ console.error("Failed to track navigation:", i);
635
686
  });
636
- }, [t.pathname, e]), _(() => {
637
- if (!e) return;
638
- const i = (c) => {
639
- const u = c.target;
640
- if (!u) return;
641
- u.tagName === "BUTTON" || u.tagName === "A" || u.closest("button") || u.closest("a") || oe(u, r.current).catch((s) => {
642
- console.error("Failed to track click:", s);
687
+ }, [e.pathname, r]), _(() => {
688
+ if (!r) return;
689
+ const a = (c) => {
690
+ const i = c.target;
691
+ if (!i) return;
692
+ i.tagName === "BUTTON" || i.tagName === "A" || i.closest("button") || i.closest("a") || oe(i, n.current).catch((h) => {
693
+ console.error("Failed to track click:", h);
643
694
  });
644
695
  };
645
- return document.addEventListener("click", i, !0), () => document.removeEventListener("click", i, !0);
646
- }, [e]), _(() => {
647
- if (!e) return;
648
- let i;
649
- const c = (u) => {
650
- const a = u.target;
651
- a && (a.tagName === "INPUT" || a.tagName === "TEXTAREA") && (clearTimeout(i), i = setTimeout(() => {
652
- ie(a, a.value, r.current).catch(
653
- (s) => {
654
- console.error("Failed to track input:", s);
696
+ return document.addEventListener("click", a, !0), () => document.removeEventListener("click", a, !0);
697
+ }, [r]), _(() => {
698
+ if (!r) return;
699
+ let a;
700
+ const c = (i) => {
701
+ const s = i.target;
702
+ s && (s.tagName === "INPUT" || s.tagName === "TEXTAREA") && (clearTimeout(a), a = setTimeout(() => {
703
+ ie(s, s.value, n.current).catch(
704
+ (h) => {
705
+ console.error("Failed to track input:", h);
655
706
  }
656
707
  );
657
708
  }, 1e3));
658
709
  };
659
710
  return document.addEventListener("input", c, !0), () => {
660
- clearTimeout(i), document.removeEventListener("input", c, !0);
711
+ clearTimeout(a), document.removeEventListener("input", c, !0);
661
712
  };
662
- }, [e]);
713
+ }, [r]);
663
714
  }
664
715
  var Y;
665
716
  (function(t) {
@@ -672,20 +723,20 @@ var J;
672
723
  (function(t) {
673
724
  t.data = "data", t.deferred = "deferred", t.redirect = "redirect", t.error = "error";
674
725
  })(J || (J = {}));
675
- const ae = ["post", "put", "patch", "delete"];
676
- new Set(ae);
677
- const ye = ["get", ...ae];
678
- new Set(ye);
726
+ const se = ["post", "put", "patch", "delete"];
727
+ new Set(se);
728
+ const Te = ["get", ...se];
729
+ new Set(Te);
679
730
  const Oe = /* @__PURE__ */ S.createContext(null);
680
731
  process.env.NODE_ENV !== "production" && (Oe.displayName = "DataRouter");
681
- const we = /* @__PURE__ */ S.createContext(null);
682
- process.env.NODE_ENV !== "production" && (we.displayName = "DataRouterState");
683
732
  const We = /* @__PURE__ */ S.createContext(null);
684
- process.env.NODE_ENV !== "production" && (We.displayName = "Await");
733
+ process.env.NODE_ENV !== "production" && (We.displayName = "DataRouterState");
734
+ const we = /* @__PURE__ */ S.createContext(null);
735
+ process.env.NODE_ENV !== "production" && (we.displayName = "Await");
685
736
  const Re = /* @__PURE__ */ S.createContext(null);
686
737
  process.env.NODE_ENV !== "production" && (Re.displayName = "Navigation");
687
- const V = /* @__PURE__ */ S.createContext(null);
688
- process.env.NODE_ENV !== "production" && (V.displayName = "Location");
738
+ const x = /* @__PURE__ */ S.createContext(null);
739
+ process.env.NODE_ENV !== "production" && (x.displayName = "Location");
689
740
  const Ce = /* @__PURE__ */ S.createContext({
690
741
  outlet: null,
691
742
  matches: [],
@@ -694,64 +745,64 @@ const Ce = /* @__PURE__ */ S.createContext({
694
745
  process.env.NODE_ENV !== "production" && (Ce.displayName = "Route");
695
746
  const Ne = /* @__PURE__ */ S.createContext(null);
696
747
  process.env.NODE_ENV !== "production" && (Ne.displayName = "RouteError");
697
- function Ae() {
698
- return S.useContext(V) != null;
699
- }
700
748
  function Le() {
701
- return Ae() || (process.env.NODE_ENV !== "production" ? B(
749
+ return S.useContext(x) != null;
750
+ }
751
+ function Ae() {
752
+ return Le() || (process.env.NODE_ENV !== "production" ? B(
702
753
  !1,
703
754
  // TODO: This error is probably because they somehow have 2 versions of the
704
755
  // router loaded. We can help them understand how to avoid that.
705
756
  "useLocation() may be used only in the context of a <Router> component."
706
- ) : B()), S.useContext(V).location;
757
+ ) : B()), S.useContext(x).location;
707
758
  }
708
759
  new Promise(() => {
709
760
  });
710
- function Ie() {
711
- const t = Le(), [e, n] = Q(!1), r = R(t.pathname), o = R(null);
761
+ function Pe(t) {
762
+ const e = Ae(), [r, o] = Q(!1), n = R(e.pathname), l = R(null);
712
763
  _(() => {
713
- o.current = r.current, r.current = t.pathname;
714
- }, [t.pathname]), _(() => {
715
- re().then(() => {
716
- n(!0);
717
- }).catch((i) => {
718
- console.error("Worker initialization failed:", i);
764
+ l.current = n.current, n.current = e.pathname;
765
+ }, [e.pathname]), _(() => {
766
+ re(t).then(() => {
767
+ o(!0);
768
+ }).catch((a) => {
769
+ console.error("Worker initialization failed:", a);
719
770
  });
720
- }, []), _(() => {
721
- if (!e) return;
722
- const i = o.current, c = r.current;
723
- i && i !== c && ne(i, c, c).catch((u) => {
724
- console.error("Failed to track navigation:", u);
771
+ }, [t]), _(() => {
772
+ if (!r) return;
773
+ const a = l.current, c = n.current;
774
+ a && a !== c && ne(a, c, c).catch((i) => {
775
+ console.error("Failed to track navigation:", i);
725
776
  });
726
- }, [t.pathname, e]), _(() => {
727
- if (!e) return;
728
- const i = (c) => {
729
- const u = c.target;
730
- if (!u) return;
731
- u.tagName === "BUTTON" || u.tagName === "A" || u.closest("button") || u.closest("a") || oe(u, r.current).catch((s) => {
732
- console.error("Failed to track click:", s);
777
+ }, [e.pathname, r]), _(() => {
778
+ if (!r) return;
779
+ const a = (c) => {
780
+ const i = c.target;
781
+ if (!i) return;
782
+ i.tagName === "BUTTON" || i.tagName === "A" || i.closest("button") || i.closest("a") || oe(i, n.current).catch((h) => {
783
+ console.error("Failed to track click:", h);
733
784
  });
734
785
  };
735
- return document.addEventListener("click", i, !0), () => document.removeEventListener("click", i, !0);
736
- }, [e]), _(() => {
737
- if (!e) return;
738
- let i;
739
- const c = (u) => {
740
- const a = u.target;
741
- a && (a.tagName === "INPUT" || a.tagName === "TEXTAREA") && (clearTimeout(i), i = setTimeout(() => {
742
- ie(a, a.value, r.current).catch(
743
- (s) => {
744
- console.error("Failed to track input:", s);
786
+ return document.addEventListener("click", a, !0), () => document.removeEventListener("click", a, !0);
787
+ }, [r]), _(() => {
788
+ if (!r) return;
789
+ let a;
790
+ const c = (i) => {
791
+ const s = i.target;
792
+ s && (s.tagName === "INPUT" || s.tagName === "TEXTAREA") && (clearTimeout(a), a = setTimeout(() => {
793
+ ie(s, s.value, n.current).catch(
794
+ (h) => {
795
+ console.error("Failed to track input:", h);
745
796
  }
746
797
  );
747
798
  }, 1e3));
748
799
  };
749
800
  return document.addEventListener("input", c, !0), () => {
750
- clearTimeout(i), document.removeEventListener("input", c, !0);
801
+ clearTimeout(a), document.removeEventListener("input", c, !0);
751
802
  };
752
- }, [e]);
803
+ }, [r]);
753
804
  }
754
805
  export {
755
- Ie as useReactRouterEventTracker,
756
- be as useTanstackRouterEventTracker
806
+ Pe as useReactRouterEventTracker,
807
+ Ie as useTanstackRouterEventTracker
757
808
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-fe/react-event-tracker",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
4
4
  "main": "./index.js",
5
5
  "types": "./index.d.ts",
6
6
  "exports": {
@@ -11,7 +11,13 @@
11
11
  }
12
12
  },
13
13
  "dependencies": {
14
- "@mcp-fe/event-tracker": "0.0.12"
14
+ "@mcp-fe/event-tracker": "0.0.13"
15
+ },
16
+ "peerDependencies": {
17
+ "react": ">=19.0.0",
18
+ "react-dom": ">=19.0.0",
19
+ "react-router-dom": ">=6.0.0",
20
+ "@tanstack/react-router": ">=1.0.0"
15
21
  },
16
22
  "publishConfig": {
17
23
  "access": "public"