@interfere/next 0.0.0-alpha.10 → 0.0.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 (154) hide show
  1. package/README.md +1 -0
  2. package/dist/__tests__/build/with-interfere-coverage.test.d.ts +2 -0
  3. package/dist/__tests__/build/with-interfere-coverage.test.d.ts.map +1 -0
  4. package/dist/__tests__/build/with-interfere-coverage.test.js +338 -0
  5. package/dist/__tests__/build/with-interfere-coverage.test.js.map +1 -0
  6. package/dist/__tests__/build/with-interfere.test.d.ts +2 -0
  7. package/dist/__tests__/build/with-interfere.test.d.ts.map +1 -0
  8. package/dist/__tests__/build/with-interfere.test.js +466 -0
  9. package/dist/__tests__/build/with-interfere.test.js.map +1 -0
  10. package/dist/__tests__/core/client.test.d.ts +2 -0
  11. package/dist/__tests__/core/client.test.d.ts.map +1 -0
  12. package/dist/__tests__/core/client.test.js +373 -0
  13. package/dist/__tests__/core/client.test.js.map +1 -0
  14. package/dist/__tests__/core/debug.test.d.ts +2 -0
  15. package/dist/__tests__/core/debug.test.d.ts.map +1 -0
  16. package/dist/__tests__/core/debug.test.js +277 -0
  17. package/dist/__tests__/core/debug.test.js.map +1 -0
  18. package/dist/__tests__/core/encoders.test.d.ts +2 -0
  19. package/dist/__tests__/core/encoders.test.d.ts.map +1 -0
  20. package/dist/__tests__/core/encoders.test.js +56 -0
  21. package/dist/__tests__/core/encoders.test.js.map +1 -0
  22. package/dist/__tests__/core/persistence.test.d.ts +2 -0
  23. package/dist/__tests__/core/persistence.test.d.ts.map +1 -0
  24. package/dist/__tests__/core/persistence.test.js +129 -0
  25. package/dist/__tests__/core/persistence.test.js.map +1 -0
  26. package/dist/__tests__/core/rage-click.test.d.ts +2 -0
  27. package/dist/__tests__/core/rage-click.test.d.ts.map +1 -0
  28. package/dist/__tests__/core/rage-click.test.js +121 -0
  29. package/dist/__tests__/core/rage-click.test.js.map +1 -0
  30. package/dist/__tests__/core/session-manager.test.d.ts +2 -0
  31. package/dist/__tests__/core/session-manager.test.d.ts.map +1 -0
  32. package/dist/__tests__/core/session-manager.test.js +1132 -0
  33. package/dist/__tests__/core/session-manager.test.js.map +1 -0
  34. package/dist/__tests__/integration/release-upload.test.d.ts +2 -0
  35. package/dist/__tests__/integration/release-upload.test.d.ts.map +1 -0
  36. package/dist/__tests__/integration/release-upload.test.js +173 -0
  37. package/dist/__tests__/integration/release-upload.test.js.map +1 -0
  38. package/dist/__tests__/react/provider.test.d.ts +2 -0
  39. package/dist/__tests__/react/provider.test.d.ts.map +1 -0
  40. package/dist/__tests__/react/provider.test.jsx +166 -0
  41. package/dist/__tests__/react/provider.test.jsx.map +1 -0
  42. package/dist/__tests__/session/persistence.test.d.ts +2 -0
  43. package/dist/__tests__/session/persistence.test.d.ts.map +1 -0
  44. package/dist/__tests__/session/persistence.test.js +129 -0
  45. package/dist/__tests__/session/persistence.test.js.map +1 -0
  46. package/dist/__tests__/session/replay.test.d.ts +2 -0
  47. package/dist/__tests__/session/replay.test.d.ts.map +1 -0
  48. package/dist/__tests__/session/replay.test.js +296 -0
  49. package/dist/__tests__/session/replay.test.js.map +1 -0
  50. package/dist/__tests__/session/session-summary.test.d.ts +2 -0
  51. package/dist/__tests__/session/session-summary.test.d.ts.map +1 -0
  52. package/dist/__tests__/session/session-summary.test.js +763 -0
  53. package/dist/__tests__/session/session-summary.test.js.map +1 -0
  54. package/dist/build/index.d.ts +3 -0
  55. package/dist/build/index.d.ts.map +1 -0
  56. package/dist/build/index.js +2 -0
  57. package/dist/build/index.js.map +1 -0
  58. package/dist/build/with-interfere.d.ts +54 -0
  59. package/dist/build/with-interfere.d.ts.map +1 -0
  60. package/dist/build/with-interfere.js +267 -0
  61. package/dist/build/with-interfere.js.map +1 -0
  62. package/dist/core/client-core.d.ts +27 -0
  63. package/dist/core/client-core.d.ts.map +1 -0
  64. package/dist/core/client-core.js +164 -0
  65. package/dist/core/client-core.js.map +1 -0
  66. package/dist/core/client.d.ts +70 -18
  67. package/dist/core/client.d.ts.map +1 -1
  68. package/dist/core/client.js +112 -104
  69. package/dist/core/client.js.map +1 -1
  70. package/dist/core/client.test.js +227 -92
  71. package/dist/core/client.test.js.map +1 -1
  72. package/dist/core/constants.d.ts +12 -0
  73. package/dist/core/constants.d.ts.map +1 -0
  74. package/dist/core/constants.js +17 -0
  75. package/dist/core/constants.js.map +1 -0
  76. package/dist/core/debug.d.ts +47 -0
  77. package/dist/core/debug.d.ts.map +1 -0
  78. package/dist/core/debug.js +79 -0
  79. package/dist/core/debug.js.map +1 -0
  80. package/dist/core/encoders.test.js +20 -19
  81. package/dist/core/encoders.test.js.map +1 -1
  82. package/dist/core/error-handlers.d.ts.map +1 -1
  83. package/dist/core/error-handlers.js +42 -41
  84. package/dist/core/error-handlers.js.map +1 -1
  85. package/dist/core/runtime.d.ts +7 -0
  86. package/dist/core/runtime.d.ts.map +1 -0
  87. package/dist/core/runtime.js +16 -0
  88. package/dist/core/runtime.js.map +1 -0
  89. package/dist/index.d.ts +10 -7
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +6 -7
  92. package/dist/index.js.map +1 -1
  93. package/dist/next/error-boundary.d.ts +5 -5
  94. package/dist/next/error-boundary.d.ts.map +1 -1
  95. package/dist/next/error-boundary.jsx +5 -5
  96. package/dist/next/middleware.d.ts +1 -1
  97. package/dist/next/middleware.js +13 -13
  98. package/dist/persistence/index.d.ts +5 -0
  99. package/dist/persistence/index.d.ts.map +1 -0
  100. package/dist/persistence/index.js +67 -0
  101. package/dist/persistence/index.js.map +1 -0
  102. package/dist/persistence/storage.d.ts +5 -0
  103. package/dist/persistence/storage.d.ts.map +1 -0
  104. package/dist/persistence/storage.js +67 -0
  105. package/dist/persistence/storage.js.map +1 -0
  106. package/dist/react/provider.d.ts +9 -5
  107. package/dist/react/provider.d.ts.map +1 -1
  108. package/dist/react/provider.jsx +33 -10
  109. package/dist/react/provider.jsx.map +1 -1
  110. package/dist/session/constants.d.ts +19 -0
  111. package/dist/session/constants.d.ts.map +1 -0
  112. package/dist/session/constants.js +34 -0
  113. package/dist/session/constants.js.map +1 -0
  114. package/dist/session/persistence.d.ts +58 -0
  115. package/dist/session/persistence.d.ts.map +1 -0
  116. package/dist/session/persistence.js +180 -0
  117. package/dist/session/persistence.js.map +1 -0
  118. package/dist/session/persistence.test.d.ts +2 -0
  119. package/dist/session/persistence.test.d.ts.map +1 -0
  120. package/dist/session/persistence.test.js +129 -0
  121. package/dist/session/persistence.test.js.map +1 -0
  122. package/dist/session/rage-click.d.ts +17 -0
  123. package/dist/session/rage-click.d.ts.map +1 -0
  124. package/dist/session/rage-click.js +104 -0
  125. package/dist/session/rage-click.js.map +1 -0
  126. package/dist/session/rage-click.test.d.ts +2 -0
  127. package/dist/session/rage-click.test.d.ts.map +1 -0
  128. package/dist/session/rage-click.test.js +124 -0
  129. package/dist/session/rage-click.test.js.map +1 -0
  130. package/dist/session/replay.d.ts +2 -2
  131. package/dist/session/replay.d.ts.map +1 -1
  132. package/dist/session/replay.js +57 -24
  133. package/dist/session/replay.js.map +1 -1
  134. package/dist/session/session-manager.d.ts +126 -0
  135. package/dist/session/session-manager.d.ts.map +1 -0
  136. package/dist/session/session-manager.js +635 -0
  137. package/dist/session/session-manager.js.map +1 -0
  138. package/dist/session/session-manager.test.d.ts +2 -0
  139. package/dist/session/session-manager.test.d.ts.map +1 -0
  140. package/dist/session/session-manager.test.js +1134 -0
  141. package/dist/session/session-manager.test.js.map +1 -0
  142. package/dist/session/session-summary.d.ts +2 -2
  143. package/dist/session/session-summary.d.ts.map +1 -1
  144. package/dist/session/session-summary.js +94 -47
  145. package/dist/session/session-summary.js.map +1 -1
  146. package/dist/storage/index.d.ts +5 -0
  147. package/dist/storage/index.d.ts.map +1 -0
  148. package/dist/storage/index.js +67 -0
  149. package/dist/storage/index.js.map +1 -0
  150. package/dist/types/storage.d.ts +7 -0
  151. package/dist/types/storage.d.ts.map +1 -0
  152. package/dist/types/storage.js +2 -0
  153. package/dist/types/storage.js.map +1 -0
  154. package/package.json +24 -7
@@ -1,9 +1,13 @@
1
- import { sessionIdLength } from '@interfere/schemas';
2
- import { nanoid, urlAlphabet } from 'nanoid';
3
- import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
4
- import { capture, flush, getSessionId, init } from './client.js';
5
- const SESSION_ID_REGEX = new RegExp(`^[${urlAlphabet.split('').sort().join('')}]{${sessionIdLength}}$`);
6
- describe('client', () => {
1
+ import { v7 as uuidv7 } from "uuid";
2
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
3
+ import { capture, flush, getSessionId, init } from "./client.js";
4
+ const SESSION_ID_REGEX = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/;
5
+ // Test defaults for required fields
6
+ const DEFAULT_TEST_CONFIG = {
7
+ buildId: "test-build-123",
8
+ releaseId: "test-release-456",
9
+ };
10
+ describe("client", () => {
7
11
  beforeEach(() => {
8
12
  vi.resetModules();
9
13
  vi.clearAllMocks();
@@ -13,123 +17,150 @@ describe('client', () => {
13
17
  afterEach(() => {
14
18
  vi.useRealTimers();
15
19
  });
16
- describe('init', () => {
17
- it('initializes with required config', () => {
18
- const client = init({ surface: 'if_p_test' });
20
+ describe("init", () => {
21
+ it("initializes with required config", () => {
22
+ const client = init({
23
+ surface: "if_p_test",
24
+ options: DEFAULT_TEST_CONFIG,
25
+ });
19
26
  expect(client).toBeDefined();
20
27
  });
21
- it('uses default endpoint', () => {
28
+ it("uses default endpoint", () => {
22
29
  const fetchSpy = vi
23
- .spyOn(global, 'fetch')
30
+ .spyOn(global, "fetch")
24
31
  .mockResolvedValue(new Response());
25
- init({ surface: 'if_p_test' });
26
- capture('error', { test: true });
32
+ init({
33
+ surface: "if_p_test",
34
+ options: DEFAULT_TEST_CONFIG,
35
+ });
36
+ capture("error", { test: true });
27
37
  flush();
28
- expect(fetchSpy).toHaveBeenCalledWith('https://api.interfere.com/ingest/v0', expect.any(Object));
38
+ expect(fetchSpy).toHaveBeenCalledWith("https://api.interfere.com/ingest/v0", expect.any(Object));
29
39
  });
30
- it('uses custom endpoint', () => {
40
+ it("uses custom endpoint", () => {
31
41
  const fetchSpy = vi
32
- .spyOn(global, 'fetch')
42
+ .spyOn(global, "fetch")
33
43
  .mockResolvedValue(new Response());
34
44
  init({
35
- surface: 'if_p_test',
36
- options: { endpoint: 'http://localhost:3001/ingest/v0' },
45
+ surface: "if_p_test",
46
+ options: {
47
+ ...DEFAULT_TEST_CONFIG,
48
+ endpoint: "http://localhost:3001/ingest/v0",
49
+ },
37
50
  });
38
- capture('error', { test: true });
51
+ capture("error", { test: true });
39
52
  flush();
40
- expect(fetchSpy).toHaveBeenCalledWith('http://localhost:3001/ingest/v0', expect.any(Object));
53
+ expect(fetchSpy).toHaveBeenCalledWith("http://localhost:3001/ingest/v0", expect.any(Object));
41
54
  });
42
55
  });
43
- describe('capture', () => {
44
- it('throws if not initialized', async () => {
56
+ describe("capture", () => {
57
+ it("throws if not initialized", async () => {
45
58
  vi.resetModules();
46
- const { capture: freshCapture } = await import('./client.js');
47
- expect(() => freshCapture('error', {})).toThrow('[interfere] not initialized');
59
+ const { capture: freshCapture } = await import("./client.js");
60
+ expect(() => freshCapture("error", {})).toThrow("[Interfere] Not initialized");
48
61
  });
49
- it('queues events', () => {
62
+ it("queues events", () => {
50
63
  const fetchSpy = vi
51
- .spyOn(global, 'fetch')
64
+ .spyOn(global, "fetch")
52
65
  .mockResolvedValue(new Response());
53
- init({ surface: 'if_p_test' });
54
- capture('ui_event', { action: 'click' });
55
- capture('error', { message: 'test error' });
66
+ init({
67
+ surface: "if_p_test",
68
+ options: DEFAULT_TEST_CONFIG,
69
+ });
70
+ capture("ui_event", { action: "click" });
71
+ capture("error", { message: "test error" });
56
72
  // In server mode, each capture auto-flushes
57
73
  // So we expect 2 fetch calls
58
74
  expect(fetchSpy).toHaveBeenCalledTimes(2);
59
75
  const call1 = fetchSpy.mock.calls[0];
60
76
  const call2 = fetchSpy.mock.calls[1];
61
77
  if (!(call1?.[1] && call2?.[1])) {
62
- throw new Error('Expected 2 fetch calls');
78
+ throw new Error("Expected 2 fetch calls");
63
79
  }
64
80
  const body1 = JSON.parse(call1[1].body);
65
81
  const body2 = JSON.parse(call2[1].body);
66
82
  expect(body1).toHaveLength(1);
67
- expect(body1[0].type).toBe('ui_event');
83
+ expect(body1[0].type).toBe("ui_event");
68
84
  expect(body2).toHaveLength(1);
69
- expect(body2[0].type).toBe('error');
85
+ expect(body2[0].type).toBe("error");
70
86
  });
71
- it('auto-flushes after 10 events', () => {
87
+ it("auto-flushes after 10 events", () => {
72
88
  const fetchSpy = vi
73
- .spyOn(global, 'fetch')
89
+ .spyOn(global, "fetch")
74
90
  .mockResolvedValue(new Response());
75
- init({ surface: 'if_p_test' });
91
+ init({
92
+ surface: "if_p_test",
93
+ options: DEFAULT_TEST_CONFIG,
94
+ });
76
95
  // In server mode, each capture triggers a flush
77
96
  for (let i = 0; i < 10; i++) {
78
- capture('ui_event', { index: i });
97
+ capture("ui_event", { index: i });
79
98
  }
80
99
  // Each capture causes a flush in server mode
81
100
  expect(fetchSpy).toHaveBeenCalledTimes(10);
82
101
  });
83
- it('includes correct envelope structure', () => {
102
+ it("includes correct envelope structure", () => {
84
103
  const fetchSpy = vi
85
- .spyOn(global, 'fetch')
104
+ .spyOn(global, "fetch")
86
105
  .mockResolvedValue(new Response());
87
- init({ surface: 'if_p_test', options: { env: 'production' } });
88
- capture('network', { url: '/api/test' });
106
+ init({
107
+ surface: "if_p_test",
108
+ options: { ...DEFAULT_TEST_CONFIG, env: "production" },
109
+ });
110
+ capture("network", { url: "/api/test" });
89
111
  flush();
90
112
  const call = fetchSpy.mock.calls[0];
91
113
  if (!call?.[1]) {
92
- throw new Error('Expected fetch call');
114
+ throw new Error("Expected fetch call");
93
115
  }
94
116
  const body = JSON.parse(call[1].body);
95
117
  const envelope = body[0];
96
118
  expect(envelope.v).toBe(0);
97
- expect(envelope.runtime).toBe('server'); // Default in test environment
98
- expect(envelope.surface).toBe('if_p_test');
99
- expect(envelope.env).toBe('production');
119
+ expect(envelope.runtime).toBe("server"); // Default in test environment
120
+ expect(envelope.surface).toBe("if_p_test");
121
+ expect(envelope.env).toBe("production");
100
122
  expect(envelope.clientTs).toBeGreaterThan(0);
101
123
  expect(envelope.sessionId).toMatch(SESSION_ID_REGEX);
102
124
  expect(envelope.seq).toBe(1);
103
- expect(envelope.type).toBe('network');
125
+ expect(envelope.type).toBe("network");
104
126
  expect(envelope.payload).toBeDefined();
105
127
  });
106
128
  });
107
- describe('flush', () => {
108
- it('does nothing with empty queue', () => {
129
+ describe("flush", () => {
130
+ it("does nothing with empty queue", () => {
109
131
  const fetchSpy = vi
110
- .spyOn(global, 'fetch')
132
+ .spyOn(global, "fetch")
111
133
  .mockResolvedValue(new Response());
112
- init({ surface: 'if_p_test' });
134
+ init({
135
+ surface: "if_p_test",
136
+ options: DEFAULT_TEST_CONFIG,
137
+ });
113
138
  flush();
114
139
  expect(fetchSpy).not.toHaveBeenCalled();
115
140
  });
116
- it('clears queue after flush', () => {
141
+ it("clears queue after flush", () => {
117
142
  const fetchSpy = vi
118
- .spyOn(global, 'fetch')
143
+ .spyOn(global, "fetch")
119
144
  .mockResolvedValue(new Response());
120
- init({ surface: 'if_p_test' });
121
- capture('error', { test: true });
145
+ init({
146
+ surface: "if_p_test",
147
+ options: DEFAULT_TEST_CONFIG,
148
+ });
149
+ capture("error", { test: true });
122
150
  flush();
123
151
  expect(fetchSpy).toHaveBeenCalledTimes(1);
124
152
  flush(); // Second flush should do nothing
125
153
  expect(fetchSpy).toHaveBeenCalledTimes(1);
126
154
  });
127
- it('handles fetch errors in debug mode', async () => {
155
+ it("handles fetch errors in debug mode", async () => {
128
156
  const fetchSpy = vi
129
- .spyOn(global, 'fetch')
130
- .mockRejectedValue(new Error('Network error'));
131
- init({ surface: 'if_p_test', options: { debug: true } });
132
- capture('error', { test: true });
157
+ .spyOn(global, "fetch")
158
+ .mockRejectedValue(new Error("Network error"));
159
+ init({
160
+ surface: "if_p_test",
161
+ options: { ...DEFAULT_TEST_CONFIG, debug: true },
162
+ });
163
+ capture("error", { test: true });
133
164
  // Should not throw
134
165
  expect(() => flush()).not.toThrow();
135
166
  await vi.waitFor(() => {
@@ -137,66 +168,78 @@ describe('client', () => {
137
168
  });
138
169
  });
139
170
  });
140
- describe('getSessionId', () => {
141
- it('throws if not initialized', async () => {
171
+ describe("getSessionId", () => {
172
+ it("throws if not initialized", async () => {
142
173
  vi.resetModules();
143
- const { getSessionId: freshGetSessionId } = await import('./client.js');
144
- expect(() => freshGetSessionId()).toThrow('[interfere] not initialized');
174
+ const { getSessionId: freshGetSessionId } = await import("./client.js");
175
+ expect(() => freshGetSessionId()).toThrow("[Interfere] Not initialized");
145
176
  });
146
- it('returns consistent session ID', () => {
147
- init({ surface: 'if_p_test' });
177
+ it("returns consistent session ID", () => {
178
+ init({
179
+ surface: "if_p_test",
180
+ options: DEFAULT_TEST_CONFIG,
181
+ });
148
182
  const id1 = getSessionId();
149
183
  const id2 = getSessionId();
150
184
  expect(id1).toBe(id2);
151
185
  expect(id1).toMatch(SESSION_ID_REGEX);
152
186
  });
153
- it('uses provided session ID', () => {
154
- const customId = nanoid(sessionIdLength);
155
- init({ surface: 'if_p_test', options: { sessionId: customId } });
187
+ it("uses provided session ID", () => {
188
+ const customId = uuidv7();
189
+ init({
190
+ surface: "if_p_test",
191
+ options: { ...DEFAULT_TEST_CONFIG, sessionId: customId },
192
+ });
156
193
  expect(getSessionId()).toBe(customId);
157
194
  });
158
195
  });
159
- describe('runtime detection', () => {
160
- it('detects server runtime by default', () => {
196
+ describe("runtime detection", () => {
197
+ it("detects server runtime by default", () => {
161
198
  const fetchSpy = vi
162
- .spyOn(global, 'fetch')
199
+ .spyOn(global, "fetch")
163
200
  .mockResolvedValue(new Response());
164
- init({ surface: 'if_p_test' });
165
- capture('server_req', {});
201
+ init({
202
+ surface: "if_p_test",
203
+ options: DEFAULT_TEST_CONFIG,
204
+ });
205
+ capture("server_req", {});
166
206
  flush();
167
207
  const call = fetchSpy.mock.calls[0];
168
208
  if (!call?.[1]) {
169
- throw new Error('Expected fetch call');
209
+ throw new Error("Expected fetch call");
170
210
  }
171
211
  const body = JSON.parse(call[1].body);
172
- expect(body[0].runtime).toBe('server');
212
+ expect(body[0].runtime).toBe("server");
173
213
  });
174
- it('detects client runtime with window', async () => {
214
+ it("detects client runtime with window", async () => {
175
215
  const originalWindow = global.window;
176
216
  global.window = {
177
217
  addEventListener: vi.fn(),
178
218
  };
179
219
  vi.resetModules();
180
- const { init: freshInit, capture: freshCapture, flush: freshFlush, } = await import('./client.js');
220
+ const { init: freshInit, capture: freshCapture, flush: freshFlush, } = await import("./client.js");
181
221
  const fetchSpy = vi
182
- .spyOn(global, 'fetch')
222
+ .spyOn(global, "fetch")
183
223
  .mockResolvedValue(new Response());
184
- freshInit({ surface: 'if_p_test' });
185
- freshCapture('ui_event', {});
224
+ freshInit({
225
+ surface: "if_p_test",
226
+ options: DEFAULT_TEST_CONFIG,
227
+ });
228
+ freshCapture("ui_event", {});
186
229
  // Client mode doesn't auto-flush
187
230
  expect(fetchSpy).not.toHaveBeenCalled();
188
231
  freshFlush();
189
232
  const call = fetchSpy.mock.calls[0];
190
233
  if (!call?.[1]) {
191
- throw new Error('Expected fetch call');
234
+ throw new Error("Expected fetch call");
192
235
  }
193
236
  const body = JSON.parse(call[1].body);
194
- expect(body[0].runtime).toBe('client');
237
+ expect(body[0].runtime).toBe("client");
195
238
  global.window = originalWindow;
196
239
  });
197
240
  });
198
- describe('client mode features', () => {
199
- it('uses fetch with keepalive when sendBeacon is available', async () => {
241
+ describe("client mode features", () => {
242
+ it("uses fetch with keepalive when sendBeacon is available", async () => {
200
243
  const originalWindow = global.window;
201
244
  const fetchSpy = vi.fn().mockResolvedValue(new Response());
202
245
  const sendBeaconSpy = vi.fn().mockReturnValue(true);
@@ -209,14 +252,17 @@ describe('client', () => {
209
252
  };
210
253
  global.fetch = fetchSpy;
211
254
  vi.resetModules();
212
- const { init: freshInit, capture: freshCapture, flush: freshFlush, } = await import('./client.js');
213
- freshInit({ surface: 'if_p_test' });
214
- freshCapture('ui_event', {});
255
+ const { init: freshInit, capture: freshCapture, flush: freshFlush, } = await import("./client.js");
256
+ freshInit({
257
+ surface: "if_p_test",
258
+ options: DEFAULT_TEST_CONFIG,
259
+ });
260
+ freshCapture("ui_event", {});
215
261
  freshFlush();
216
262
  // Should use fetch with keepalive, not sendBeacon
217
263
  expect(sendBeaconSpy).not.toHaveBeenCalled();
218
- expect(fetchSpy).toHaveBeenCalledWith('https://api.interfere.com/ingest/v0', expect.objectContaining({
219
- method: 'POST',
264
+ expect(fetchSpy).toHaveBeenCalledWith("https://api.interfere.com/ingest/v0", expect.objectContaining({
265
+ method: "POST",
220
266
  keepalive: true,
221
267
  headers: expect.any(Headers),
222
268
  body: expect.any(String),
@@ -224,15 +270,104 @@ describe('client', () => {
224
270
  global.window = originalWindow;
225
271
  global.fetch = fetch;
226
272
  });
227
- it('sets up auto-flush timer in client mode', async () => {
273
+ it("sets up auto-flush timer in client mode", async () => {
228
274
  const originalWindow = global.window;
229
275
  global.window = { addEventListener: vi.fn() };
230
276
  vi.resetModules();
231
- const { init: freshInit } = await import('./client.js');
232
- freshInit({ surface: 'if_p_test', options: { flushInterval: 1000 } });
233
- expect(global.window.addEventListener).toHaveBeenCalledWith('beforeunload', expect.any(Function));
277
+ const { init: freshInit } = await import("./client.js");
278
+ freshInit({
279
+ surface: "if_p_test",
280
+ options: { ...DEFAULT_TEST_CONFIG, flushInterval: 1000 },
281
+ });
282
+ expect(global.window.addEventListener).toHaveBeenCalledWith("beforeunload", expect.any(Function));
234
283
  global.window = originalWindow;
235
284
  });
236
285
  });
286
+ describe("background events", () => {
287
+ beforeEach(() => {
288
+ vi.clearAllMocks();
289
+ });
290
+ it("should not update session activity for replay_chunk events", () => {
291
+ const client = init({
292
+ surface: "if_p_test",
293
+ options: DEFAULT_TEST_CONFIG,
294
+ });
295
+ // Mock the session manager to spy on checkAndGetSessionAndWindowId calls
296
+ const sessionManager = client
297
+ .sessionManager;
298
+ if (!sessionManager) {
299
+ throw new Error("Session manager not found");
300
+ }
301
+ const checkAndGetSpy = vi.spyOn(sessionManager, "checkAndGetSessionAndWindowId");
302
+ // Capture a background event
303
+ capture("replay_chunk", { events: [] });
304
+ // Should be called with readOnly = true
305
+ expect(checkAndGetSpy).toHaveBeenCalledWith(true);
306
+ });
307
+ it("should not update session activity for session_summary events", () => {
308
+ const client = init({
309
+ surface: "if_p_test",
310
+ options: DEFAULT_TEST_CONFIG,
311
+ });
312
+ const sessionManager = client
313
+ .sessionManager;
314
+ if (!sessionManager) {
315
+ throw new Error("Session manager not found");
316
+ }
317
+ const checkAndGetSpy = vi.spyOn(sessionManager, "checkAndGetSessionAndWindowId");
318
+ // Capture a background event
319
+ capture("session_summary", { summary: "test" });
320
+ // Should be called with readOnly = true
321
+ expect(checkAndGetSpy).toHaveBeenCalledWith(true);
322
+ });
323
+ it("should update session activity for user events", () => {
324
+ const client = init({
325
+ surface: "if_p_test",
326
+ options: DEFAULT_TEST_CONFIG,
327
+ });
328
+ const sessionManager = client
329
+ .sessionManager;
330
+ if (!sessionManager) {
331
+ throw new Error("Session manager not found");
332
+ }
333
+ const checkAndGetSpy = vi.spyOn(sessionManager, "checkAndGetSessionAndWindowId");
334
+ // Capture a user event
335
+ capture("ui_event", { action: "click" });
336
+ // Should be called with readOnly = false
337
+ expect(checkAndGetSpy).toHaveBeenCalledWith(false);
338
+ });
339
+ it("should update session activity for error events", () => {
340
+ const client = init({
341
+ surface: "if_p_test",
342
+ options: DEFAULT_TEST_CONFIG,
343
+ });
344
+ const sessionManager = client
345
+ .sessionManager;
346
+ if (!sessionManager) {
347
+ throw new Error("Session manager not found");
348
+ }
349
+ const checkAndGetSpy = vi.spyOn(sessionManager, "checkAndGetSessionAndWindowId");
350
+ // Capture an error event
351
+ capture("error", { message: "test error" });
352
+ // Should be called with readOnly = false
353
+ expect(checkAndGetSpy).toHaveBeenCalledWith(false);
354
+ });
355
+ it("should update session activity for custom events", () => {
356
+ const client = init({
357
+ surface: "if_p_test",
358
+ options: DEFAULT_TEST_CONFIG,
359
+ });
360
+ const sessionManager = client
361
+ .sessionManager;
362
+ if (!sessionManager) {
363
+ throw new Error("Session manager not found");
364
+ }
365
+ const checkAndGetSpy = vi.spyOn(sessionManager, "checkAndGetSessionAndWindowId");
366
+ // Capture a custom event
367
+ capture("custom", { action: "user_signup" });
368
+ // Should be called with readOnly = false
369
+ expect(checkAndGetSpy).toHaveBeenCalledWith(false);
370
+ });
371
+ });
237
372
  });
238
373
  //# sourceMappingURL=client.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/core/client.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,gBAAgB,GAAG,IAAI,MAAM,CACjC,KAAK,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,eAAe,IAAI,CACnE,CAAC;AAEF,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,YAAY,EAAE,CAAC;QAClB,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,QAAQ,GAAG,EAAE;iBAChB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;iBACtB,iBAAiB,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;YAErC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,KAAK,EAAE,CAAC;YAER,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,qCAAqC,EACrC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,QAAQ,GAAG,EAAE;iBAChB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;iBACtB,iBAAiB,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;YAErC,IAAI,CAAC;gBACH,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,EAAE,QAAQ,EAAE,iCAAiC,EAAE;aACzD,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,KAAK,EAAE,CAAC;YAER,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,iCAAiC,EACjC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACzC,EAAE,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YAC9D,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAC7C,6BAA6B,CAC9B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YACvB,MAAM,QAAQ,GAAG,EAAE;iBAChB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;iBACtB,iBAAiB,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;YAErC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/B,OAAO,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;YAE5C,4CAA4C;YAC5C,6BAA6B;YAC7B,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAE1C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAE,KAAK,CAAC,CAAC,CAAiB,CAAC,IAAc,CAAC,CAAC;YACnE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAE,KAAK,CAAC,CAAC,CAAiB,CAAC,IAAc,CAAC,CAAC;YAEnE,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEvC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,QAAQ,GAAG,EAAE;iBAChB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;iBACtB,iBAAiB,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;YAErC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAE/B,gDAAgD;YAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,OAAO,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;YAED,6CAA6C;YAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,QAAQ,GAAG,EAAE;iBAChB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;iBACtB,iBAAiB,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;YAErC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YACzC,KAAK,EAAE,CAAC;YAER,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,CAAC,CAAiB,CAAC,IAAc,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEzB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,8BAA8B;YACvE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACrD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,QAAQ,GAAG,EAAE;iBAChB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;iBACtB,iBAAiB,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;YAErC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/B,KAAK,EAAE,CAAC;YAER,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,QAAQ,GAAG,EAAE;iBAChB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;iBACtB,iBAAiB,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;YAErC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/B,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,KAAK,EAAE,CAAC;YAER,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAE1C,KAAK,EAAE,CAAC,CAAC,iCAAiC;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,QAAQ,GAAG,EAAE;iBAChB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;iBACtB,iBAAiB,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAEjD,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAEjC,mBAAmB;YACnB,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAEpC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBACpB,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACzC,EAAE,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YACxE,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;YAE3B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEtB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;YAEzC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAEjE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,QAAQ,GAAG,EAAE;iBAChB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;iBACtB,iBAAiB,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;YAErC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/B,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YAC1B,KAAK,EAAE,CAAC;YAER,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,CAAC,CAAiB,CAAC,IAAc,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;YACrC,MAAM,CAAC,MAAM,GAAG;gBACd,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;aACe,CAAC;YAE3C,EAAE,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,EACJ,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,UAAU,GAClB,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YAEhC,MAAM,QAAQ,GAAG,EAAE;iBAChB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;iBACtB,iBAAiB,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;YAErC,SAAS,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YACpC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAE7B,iCAAiC;YACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAExC,UAAU,EAAE,CAAC;YAEb,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,CAAC,CAAiB,CAAC,IAAc,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEvC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;YACrC,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;YAC3D,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAEpD,oDAAoD;YACpD,MAAM,CAAC,MAAM,GAAG;gBACd,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;gBACzB,SAAS,EAAE;oBACT,UAAU,EAAE,aAAa;iBAC1B;aACuC,CAAC;YAC3C,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;YAExB,EAAE,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,EACJ,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,UAAU,GAClB,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YAEhC,SAAS,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YACpC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC7B,UAAU,EAAE,CAAC;YAEb,kDAAkD;YAClD,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,qCAAqC,EACrC,MAAM,CAAC,gBAAgB,CAAC;gBACtB,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC5B,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;aACzB,CAAC,CACH,CAAC;YAEF,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC;YAC/B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;YACrC,MAAM,CAAC,MAAM,GAAG,EAAE,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE,EACxB,CAAC;YAEpB,EAAE,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YAExD,SAAS,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAEtE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CACzD,cAAc,EACd,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CACrB,CAAC;YAEF,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/core/client.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Core constants and configuration defaults
3
+ */
4
+ import type { EventType } from "@interfere/schemas/envelope";
5
+ export declare const BACKGROUND_EVENT_TYPES: EventType[];
6
+ export declare const MAX_QUEUE_SIZE = 10;
7
+ export declare const DEFAULT_FLUSH_INTERVAL = 10000;
8
+ export declare const API_PATHS: {
9
+ readonly INGEST_V0: "/ingest/v0";
10
+ readonly RELEASES: "/internal/releases";
11
+ };
12
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAG7D,eAAO,MAAM,sBAAsB,EAAE,SAAS,EAG7C,CAAC;AAGF,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAG7C,eAAO,MAAM,SAAS;;;CAGZ,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Core constants and configuration defaults
3
+ */
4
+ // Background event types that don't count as user activity for session timeout
5
+ export const BACKGROUND_EVENT_TYPES = [
6
+ "replay_chunk",
7
+ "session_summary",
8
+ ];
9
+ // Queue thresholds
10
+ export const MAX_QUEUE_SIZE = 10;
11
+ export const DEFAULT_FLUSH_INTERVAL = 10_000; // 10 seconds
12
+ // API paths
13
+ export const API_PATHS = {
14
+ INGEST_V0: "/ingest/v0",
15
+ RELEASES: "/internal/releases",
16
+ };
17
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,sBAAsB,GAAgB;IACjD,cAAc;IACd,iBAAiB;CAClB,CAAC;AAEF,mBAAmB;AACnB,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,CAAC,aAAa;AAE3D,YAAY;AACZ,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,oBAAoB;CACtB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Debug utilities for development
3
+ */
4
+ import type { Config } from "@interfere/schemas/config";
5
+ import type { InterferePersistence } from "../session/persistence";
6
+ import type { SessionIdManager } from "../session/session-manager";
7
+ import type { Runtime } from "./runtime";
8
+ export type DebugInfo = {
9
+ sessionId: string | null;
10
+ windowId: string | null;
11
+ sessionStartTimestamp: number | null;
12
+ lastActivityTimestamp: number | null;
13
+ sessionTimeoutMs: number;
14
+ sessionAge: number;
15
+ timeSinceLastActivity: number;
16
+ isSessionActive: boolean;
17
+ config: Config;
18
+ storageInfo: StorageInfo;
19
+ queueLength: number;
20
+ surface: string;
21
+ runtime: Runtime;
22
+ buildId: string;
23
+ releaseId: string;
24
+ };
25
+ export type StorageInfo = {
26
+ canUseLocalStorage: boolean;
27
+ canUseSessionStorage: boolean;
28
+ storageKeys: string[];
29
+ };
30
+ export declare class DebugUtils {
31
+ private readonly config;
32
+ private readonly sessionManager;
33
+ private readonly persistence;
34
+ private readonly surface;
35
+ private readonly runtime;
36
+ constructor(params: {
37
+ config: Config;
38
+ sessionManager: SessionIdManager;
39
+ persistence: InterferePersistence;
40
+ surface: string;
41
+ runtime: Runtime;
42
+ });
43
+ getDebugInfo(queueLength: number): DebugInfo;
44
+ private getStorageInfo;
45
+ private getStorageKeys;
46
+ }
47
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/core/debug.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,MAAM,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,gBAAgB,CAAC;QACjC,WAAW,EAAE,oBAAoB,CAAC;QAClC,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;KAClB;IAQD,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS;IAkC5C,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,cAAc;CAcvB"}