@interfere/react 0.0.1 → 0.0.2-alpha.1

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 (198) hide show
  1. package/dist/client.d.mts +15 -0
  2. package/dist/client.d.mts.map +1 -0
  3. package/dist/client.mjs +75 -0
  4. package/dist/client.mjs.map +1 -0
  5. package/dist/core/events/event-registry.d.mts +23 -0
  6. package/dist/core/events/event-registry.d.mts.map +1 -0
  7. package/dist/core/events/event-registry.mjs +32 -0
  8. package/dist/core/events/event-registry.mjs.map +1 -0
  9. package/dist/core/events/plugin-event-types.d.mts +92 -0
  10. package/dist/core/events/plugin-event-types.d.mts.map +1 -0
  11. package/dist/core/events/plugin-event-types.mjs +25 -0
  12. package/dist/core/events/plugin-event-types.mjs.map +1 -0
  13. package/dist/core/plugins/dom-utils.d.mts +9 -0
  14. package/dist/core/plugins/dom-utils.d.mts.map +1 -0
  15. package/dist/core/plugins/dom-utils.mjs +25 -0
  16. package/dist/core/plugins/dom-utils.mjs.map +1 -0
  17. package/dist/core/plugins/impl/ai-summary.d.mts +6 -0
  18. package/dist/core/plugins/impl/ai-summary.d.mts.map +1 -0
  19. package/dist/core/plugins/impl/ai-summary.mjs +122 -0
  20. package/dist/core/plugins/impl/ai-summary.mjs.map +1 -0
  21. package/dist/core/plugins/impl/errors.d.mts +9 -0
  22. package/dist/core/plugins/impl/errors.d.mts.map +1 -0
  23. package/dist/core/plugins/impl/errors.mjs +153 -0
  24. package/dist/core/plugins/impl/errors.mjs.map +1 -0
  25. package/dist/core/plugins/impl/page-events.d.mts +15 -0
  26. package/dist/core/plugins/impl/page-events.d.mts.map +1 -0
  27. package/dist/core/plugins/impl/page-events.mjs +131 -0
  28. package/dist/core/plugins/impl/page-events.mjs.map +1 -0
  29. package/dist/core/plugins/impl/rage-click.d.mts +6 -0
  30. package/dist/core/plugins/impl/rage-click.d.mts.map +1 -0
  31. package/dist/core/plugins/impl/rage-click.mjs +53 -0
  32. package/dist/core/plugins/impl/rage-click.mjs.map +1 -0
  33. package/dist/core/plugins/impl/replay.d.mts +9 -0
  34. package/dist/core/plugins/impl/replay.d.mts.map +1 -0
  35. package/dist/core/plugins/impl/replay.mjs +144 -0
  36. package/dist/core/plugins/impl/replay.mjs.map +1 -0
  37. package/dist/core/plugins/impl/server-tracing.d.mts +7 -0
  38. package/dist/core/plugins/impl/server-tracing.d.mts.map +1 -0
  39. package/dist/core/plugins/impl/server-tracing.mjs +160 -0
  40. package/dist/core/plugins/impl/server-tracing.mjs.map +1 -0
  41. package/dist/core/plugins/plugin-event-system.d.mts +47 -0
  42. package/dist/core/plugins/plugin-event-system.d.mts.map +1 -0
  43. package/dist/core/plugins/plugin-event-system.mjs +75 -0
  44. package/dist/core/plugins/plugin-event-system.mjs.map +1 -0
  45. package/dist/core/plugins/plugin-loader.d.mts +22 -0
  46. package/dist/core/plugins/plugin-loader.d.mts.map +1 -0
  47. package/dist/core/plugins/plugin-loader.mjs +142 -0
  48. package/dist/core/plugins/plugin-loader.mjs.map +1 -0
  49. package/dist/core/runtime/config.d.mts +14 -0
  50. package/dist/core/runtime/config.d.mts.map +1 -0
  51. package/dist/core/runtime/config.mjs +39 -0
  52. package/dist/core/runtime/config.mjs.map +1 -0
  53. package/dist/core/runtime/context.d.mts +25 -0
  54. package/dist/core/runtime/context.d.mts.map +1 -0
  55. package/dist/core/runtime/context.mjs +48 -0
  56. package/dist/core/runtime/context.mjs.map +1 -0
  57. package/dist/core/runtime/ingest-target.d.mts +10 -0
  58. package/dist/core/runtime/ingest-target.d.mts.map +1 -0
  59. package/dist/core/runtime/ingest-target.mjs +15 -0
  60. package/dist/core/runtime/ingest-target.mjs.map +1 -0
  61. package/dist/core/schemas.d.mts +85 -0
  62. package/dist/core/schemas.d.mts.map +1 -0
  63. package/dist/core/schemas.mjs +1 -0
  64. package/dist/effect/build-envelope.d.mts +9 -0
  65. package/dist/effect/build-envelope.d.mts.map +1 -0
  66. package/dist/effect/build-envelope.mjs +29 -0
  67. package/dist/effect/build-envelope.mjs.map +1 -0
  68. package/dist/effect/errors.d.mts +36 -0
  69. package/dist/effect/errors.d.mts.map +1 -0
  70. package/dist/effect/errors.mjs +10 -0
  71. package/dist/effect/errors.mjs.map +1 -0
  72. package/dist/effect/layers/config.layer.d.mts +13 -0
  73. package/dist/effect/layers/config.layer.d.mts.map +1 -0
  74. package/dist/effect/layers/config.layer.mjs +21 -0
  75. package/dist/effect/layers/config.layer.mjs.map +1 -0
  76. package/dist/effect/layers/context.layer.d.mts +12 -0
  77. package/dist/effect/layers/context.layer.d.mts.map +1 -0
  78. package/dist/effect/layers/context.layer.mjs +14 -0
  79. package/dist/effect/layers/context.layer.mjs.map +1 -0
  80. package/dist/effect/layers/http.layer.d.mts +21 -0
  81. package/dist/effect/layers/http.layer.d.mts.map +1 -0
  82. package/dist/effect/layers/http.layer.mjs +113 -0
  83. package/dist/effect/layers/http.layer.mjs.map +1 -0
  84. package/dist/effect/layers/queue.layer.d.mts +30 -0
  85. package/dist/effect/layers/queue.layer.d.mts.map +1 -0
  86. package/dist/effect/layers/queue.layer.mjs +232 -0
  87. package/dist/effect/layers/queue.layer.mjs.map +1 -0
  88. package/dist/effect/layers/session.layer.d.mts +26 -0
  89. package/dist/effect/layers/session.layer.d.mts.map +1 -0
  90. package/dist/effect/layers/session.layer.mjs +126 -0
  91. package/dist/effect/layers/session.layer.mjs.map +1 -0
  92. package/dist/effect/layers/storage.layer.d.mts +19 -0
  93. package/dist/effect/layers/storage.layer.d.mts.map +1 -0
  94. package/dist/effect/layers/storage.layer.mjs +200 -0
  95. package/dist/effect/layers/storage.layer.mjs.map +1 -0
  96. package/dist/effect/layers/tracer.layer.d.mts +9 -0
  97. package/dist/effect/layers/tracer.layer.d.mts.map +1 -0
  98. package/dist/effect/layers/tracer.layer.mjs +11 -0
  99. package/dist/effect/layers/tracer.layer.mjs.map +1 -0
  100. package/dist/effect/runtime-services.d.mts +22 -0
  101. package/dist/effect/runtime-services.d.mts.map +1 -0
  102. package/dist/effect/runtime-services.mjs +76 -0
  103. package/dist/effect/runtime-services.mjs.map +1 -0
  104. package/dist/effect/tags.d.mts +50 -0
  105. package/dist/effect/tags.d.mts.map +1 -0
  106. package/dist/effect/tags.mjs +7 -0
  107. package/dist/effect/tags.mjs.map +1 -0
  108. package/dist/hooks/use-runtime-and-plugins.d.mts +7 -0
  109. package/dist/hooks/use-runtime-and-plugins.d.mts.map +1 -0
  110. package/dist/hooks/use-runtime-and-plugins.mjs +153 -0
  111. package/dist/hooks/use-runtime-and-plugins.mjs.map +1 -0
  112. package/dist/hooks/use-session.d.mts +40 -0
  113. package/dist/hooks/use-session.d.mts.map +1 -0
  114. package/dist/hooks/use-session.mjs +96 -0
  115. package/dist/hooks/use-session.mjs.map +1 -0
  116. package/dist/package.mjs +100 -0
  117. package/dist/package.mjs.map +1 -0
  118. package/dist/provider.d.mts +17 -0
  119. package/dist/provider.d.mts.map +1 -0
  120. package/dist/provider.mjs +26 -0
  121. package/dist/provider.mjs.map +1 -0
  122. package/dist/server/auth.d.mts +11 -0
  123. package/dist/server/auth.d.mts.map +1 -0
  124. package/dist/server/auth.mjs +36 -0
  125. package/dist/server/auth.mjs.map +1 -0
  126. package/dist/server/capture.d.mts +18 -0
  127. package/dist/server/capture.d.mts.map +1 -0
  128. package/dist/server/capture.mjs +105 -0
  129. package/dist/server/capture.mjs.map +1 -0
  130. package/package.json +60 -27
  131. package/dist/__tests__/client.test.d.ts +0 -2
  132. package/dist/__tests__/client.test.d.ts.map +0 -1
  133. package/dist/__tests__/client.test.js +0 -447
  134. package/dist/__tests__/client.test.js.map +0 -1
  135. package/dist/__tests__/lib/core/error-handlers.test.d.ts +0 -2
  136. package/dist/__tests__/lib/core/error-handlers.test.d.ts.map +0 -1
  137. package/dist/__tests__/lib/core/error-handlers.test.js +0 -596
  138. package/dist/__tests__/lib/core/error-handlers.test.js.map +0 -1
  139. package/dist/__tests__/lib/core/event-queue.test.d.ts +0 -2
  140. package/dist/__tests__/lib/core/event-queue.test.d.ts.map +0 -1
  141. package/dist/__tests__/lib/core/event-queue.test.js +0 -290
  142. package/dist/__tests__/lib/core/event-queue.test.js.map +0 -1
  143. package/dist/__tests__/lib/core/runtime.test.d.ts +0 -2
  144. package/dist/__tests__/lib/core/runtime.test.d.ts.map +0 -1
  145. package/dist/__tests__/lib/core/runtime.test.js +0 -133
  146. package/dist/__tests__/lib/core/runtime.test.js.map +0 -1
  147. package/dist/__tests__/lib/core/session-manager.test.d.ts +0 -2
  148. package/dist/__tests__/lib/core/session-manager.test.d.ts.map +0 -1
  149. package/dist/__tests__/lib/core/session-manager.test.js +0 -356
  150. package/dist/__tests__/lib/core/session-manager.test.js.map +0 -1
  151. package/dist/__tests__/provider.test.d.ts +0 -2
  152. package/dist/__tests__/provider.test.d.ts.map +0 -1
  153. package/dist/__tests__/provider.test.js +0 -143
  154. package/dist/__tests__/provider.test.js.map +0 -1
  155. package/dist/client.d.ts +0 -78
  156. package/dist/client.d.ts.map +0 -1
  157. package/dist/client.js +0 -219
  158. package/dist/client.js.map +0 -1
  159. package/dist/index.d.ts +0 -6
  160. package/dist/index.d.ts.map +0 -1
  161. package/dist/index.js +0 -5
  162. package/dist/index.js.map +0 -1
  163. package/dist/lib/core/error-handlers.d.ts +0 -14
  164. package/dist/lib/core/error-handlers.d.ts.map +0 -1
  165. package/dist/lib/core/error-handlers.js +0 -191
  166. package/dist/lib/core/error-handlers.js.map +0 -1
  167. package/dist/lib/core/event-queue.d.ts +0 -90
  168. package/dist/lib/core/event-queue.d.ts.map +0 -1
  169. package/dist/lib/core/event-queue.js +0 -286
  170. package/dist/lib/core/event-queue.js.map +0 -1
  171. package/dist/lib/core/runtime.d.ts +0 -7
  172. package/dist/lib/core/runtime.d.ts.map +0 -1
  173. package/dist/lib/core/runtime.js +0 -16
  174. package/dist/lib/core/runtime.js.map +0 -1
  175. package/dist/lib/core/session-manager.d.ts +0 -96
  176. package/dist/lib/core/session-manager.d.ts.map +0 -1
  177. package/dist/lib/core/session-manager.js +0 -431
  178. package/dist/lib/core/session-manager.js.map +0 -1
  179. package/dist/lib/persistence/storage.d.ts +0 -5
  180. package/dist/lib/persistence/storage.d.ts.map +0 -1
  181. package/dist/lib/persistence/storage.js +0 -67
  182. package/dist/lib/persistence/storage.js.map +0 -1
  183. package/dist/lib/session/rage-click.d.ts +0 -2
  184. package/dist/lib/session/rage-click.d.ts.map +0 -1
  185. package/dist/lib/session/rage-click.js +0 -51
  186. package/dist/lib/session/rage-click.js.map +0 -1
  187. package/dist/lib/session/replay.d.ts +0 -3
  188. package/dist/lib/session/replay.d.ts.map +0 -1
  189. package/dist/lib/session/replay.js +0 -106
  190. package/dist/lib/session/replay.js.map +0 -1
  191. package/dist/lib/session/session-summary.d.ts +0 -3
  192. package/dist/lib/session/session-summary.d.ts.map +0 -1
  193. package/dist/lib/session/session-summary.js +0 -79
  194. package/dist/lib/session/session-summary.js.map +0 -1
  195. package/dist/provider.d.ts +0 -76
  196. package/dist/provider.d.ts.map +0 -1
  197. package/dist/provider.js +0 -138
  198. package/dist/provider.js.map +0 -1
@@ -1,286 +0,0 @@
1
- /**
2
- * Enhanced event queue with offline support, retry logic, and compression
3
- */
4
- /** biome-ignore-all lint/suspicious/noConsole: Customer deliverable */
5
- import { BACKOFF_BASE_MS, BACKOFF_MULTIPLIER, QUEUE_REDUCTION_FACTOR, RADIX_36, RANDOM_ID_LENGTH_SHORT, RANDOM_SUBSTRING_START, } from "@interfere/constants";
6
- const DEFAULT_CONFIG = {
7
- maxRetries: 3,
8
- batchSize: 10,
9
- batchTimeout: 1000,
10
- maxQueueSize: 1000,
11
- enableCompression: true,
12
- enableOfflineQueue: true,
13
- storageKey: "interfere_event_queue",
14
- };
15
- export class EventQueue {
16
- queue = [];
17
- config;
18
- flushTimer = null;
19
- retryTimers = new Map();
20
- isOnline = true;
21
- onFlush;
22
- windowId = null;
23
- isDestroyed = false;
24
- constructor(onFlush, config = {}) {
25
- this.config = { ...DEFAULT_CONFIG, ...config };
26
- this.onFlush = onFlush;
27
- this.isOnline = typeof navigator !== "undefined" ? navigator.onLine : true;
28
- // Set up online/offline listeners
29
- if (typeof window !== "undefined") {
30
- window.addEventListener("online", this.handleOnline);
31
- window.addEventListener("offline", this.handleOffline);
32
- // Load any persisted events
33
- if (this.config.enableOfflineQueue) {
34
- this.loadFromStorage();
35
- }
36
- }
37
- }
38
- /**
39
- * Set window ID for all events
40
- */
41
- setWindowId(id) {
42
- this.windowId = id;
43
- }
44
- /**
45
- * Add an event to the queue
46
- */
47
- add(type, payload) {
48
- // Check queue size limit
49
- if (this.queue.length >= this.config.maxQueueSize) {
50
- // Remove oldest events if queue is full
51
- this.queue = this.queue.slice(-Math.floor(this.config.maxQueueSize * QUEUE_REDUCTION_FACTOR));
52
- }
53
- const event = {
54
- id: this.generateId(),
55
- type,
56
- payload,
57
- timestamp: Date.now(),
58
- retryCount: 0,
59
- windowId: this.windowId,
60
- };
61
- this.queue.push(event);
62
- // Persist to storage if offline
63
- if (!this.isOnline && this.config.enableOfflineQueue) {
64
- this.saveToStorage();
65
- }
66
- // Schedule flush
67
- this.scheduleFlush();
68
- }
69
- /**
70
- * Flush events immediately
71
- */
72
- async flush() {
73
- if (this.flushTimer) {
74
- clearTimeout(this.flushTimer);
75
- this.flushTimer = null;
76
- }
77
- if (this.queue.length === 0) {
78
- return;
79
- }
80
- // Don't try to flush if offline
81
- if (!this.isOnline) {
82
- return;
83
- }
84
- // Take batch of events
85
- const batch = this.queue.splice(0, this.config.batchSize);
86
- try {
87
- // Compress events if enabled
88
- const eventsToSend = this.config.enableCompression
89
- ? this.compressEvents(batch)
90
- : batch;
91
- await this.onFlush(eventsToSend);
92
- // Clear from storage if successful
93
- if (this.config.enableOfflineQueue) {
94
- this.saveToStorage();
95
- }
96
- }
97
- catch (error) {
98
- // Put events back in queue for retry
99
- this.handleFailedBatch(batch, error);
100
- }
101
- // Schedule next flush if more events
102
- if (this.queue.length > 0) {
103
- this.scheduleFlush();
104
- }
105
- }
106
- /**
107
- * Handle failed batch with retry logic
108
- */
109
- handleFailedBatch(batch, error) {
110
- if (this.isDestroyed) {
111
- return;
112
- }
113
- for (const event of batch) {
114
- event.retryCount++;
115
- if (event.retryCount >= this.config.maxRetries) {
116
- // Drop event after max retries
117
- // Event dropped after max retries - silently continue
118
- // In production, this could be logged to a monitoring service
119
- console.warn("[Interfere] Dropping event after max retries:", event, error);
120
- continue;
121
- }
122
- // Add back to queue with exponential backoff
123
- const delay = BACKOFF_BASE_MS * BACKOFF_MULTIPLIER ** (event.retryCount - 1);
124
- const timerId = setTimeout(() => {
125
- this.queue.unshift(event);
126
- this.retryTimers.delete(event.id);
127
- this.scheduleFlush();
128
- }, delay);
129
- this.retryTimers.set(event.id, timerId);
130
- }
131
- if (!this.isOnline && this.config.enableOfflineQueue) {
132
- // Persist failed events if offline
133
- this.saveToStorage();
134
- }
135
- }
136
- /**
137
- * Schedule a flush
138
- */
139
- scheduleFlush() {
140
- if (this.flushTimer) {
141
- clearTimeout(this.flushTimer);
142
- }
143
- // Flush immediately if batch size reached
144
- if (this.queue.length >= this.config.batchSize) {
145
- this.flush();
146
- return;
147
- }
148
- // Otherwise schedule delayed flush
149
- this.flushTimer = setTimeout(() => {
150
- this.flush();
151
- }, this.config.batchTimeout);
152
- }
153
- /**
154
- * Compress events (basic implementation - can be enhanced)
155
- */
156
- compressEvents(events) {
157
- // Group similar events together
158
- const grouped = new Map();
159
- for (const event of events) {
160
- const key = `${event.type}:${event.windowId}`;
161
- if (!grouped.has(key)) {
162
- grouped.set(key, []);
163
- }
164
- const group = grouped.get(key);
165
- if (group) {
166
- group.push(event);
167
- }
168
- }
169
- // For now, just return original events
170
- // In production, could use pako or similar for actual compression
171
- return events;
172
- }
173
- /**
174
- * Handle coming online
175
- */
176
- handleOnline = () => {
177
- this.isOnline = true;
178
- // Load any persisted events and flush
179
- if (this.config.enableOfflineQueue) {
180
- this.loadFromStorage();
181
- }
182
- this.scheduleFlush();
183
- };
184
- /**
185
- * Handle going offline
186
- */
187
- handleOffline = () => {
188
- this.isOnline = false;
189
- // Cancel pending flush
190
- if (this.flushTimer) {
191
- clearTimeout(this.flushTimer);
192
- this.flushTimer = null;
193
- }
194
- // Save current queue
195
- if (this.config.enableOfflineQueue) {
196
- this.saveToStorage();
197
- }
198
- };
199
- /**
200
- * Save queue to storage
201
- */
202
- saveToStorage() {
203
- if (typeof localStorage === "undefined") {
204
- return;
205
- }
206
- try {
207
- const data = JSON.stringify(this.queue);
208
- localStorage.setItem(this.config.storageKey, data);
209
- }
210
- catch {
211
- // Storage might be full or disabled - silently continue
212
- // In production, this could be logged to a monitoring service
213
- }
214
- }
215
- /**
216
- * Load queue from storage
217
- */
218
- loadFromStorage() {
219
- if (typeof localStorage === "undefined") {
220
- return;
221
- }
222
- try {
223
- const data = localStorage.getItem(this.config.storageKey);
224
- if (data) {
225
- const events = JSON.parse(data);
226
- // Merge with existing queue, removing duplicates
227
- const existingIds = new Set(this.queue.map((e) => e.id));
228
- const newEvents = events.filter((e) => !existingIds.has(e.id));
229
- this.queue = [...this.queue, ...newEvents].slice(0, this.config.maxQueueSize);
230
- // Clear storage after loading
231
- localStorage.removeItem(this.config.storageKey);
232
- }
233
- }
234
- catch {
235
- // Failed to load persisted events - clear corrupted data
236
- // In production, this could be logged to a monitoring service
237
- localStorage.removeItem(this.config.storageKey);
238
- }
239
- }
240
- /**
241
- * Generate unique event ID
242
- */
243
- generateId() {
244
- return `${Date.now()}_${Math.random()
245
- .toString(RADIX_36)
246
- .substring(RANDOM_SUBSTRING_START, RANDOM_SUBSTRING_START + RANDOM_ID_LENGTH_SHORT)}`;
247
- }
248
- /**
249
- * Clean up resources
250
- */
251
- destroy() {
252
- this.isDestroyed = true;
253
- // Clear timers
254
- if (this.flushTimer) {
255
- clearTimeout(this.flushTimer);
256
- }
257
- for (const timer of this.retryTimers.values()) {
258
- clearTimeout(timer);
259
- }
260
- this.retryTimers.clear();
261
- // Remove event listeners
262
- if (typeof window !== "undefined") {
263
- window.removeEventListener("online", this.handleOnline);
264
- window.removeEventListener("offline", this.handleOffline);
265
- }
266
- // Save any remaining events
267
- if (this.config.enableOfflineQueue && this.queue.length > 0) {
268
- this.saveToStorage();
269
- }
270
- // Clear queue
271
- this.queue = [];
272
- }
273
- /**
274
- * Get current queue size
275
- */
276
- getQueueSize() {
277
- return this.queue.length;
278
- }
279
- /**
280
- * Check if online
281
- */
282
- isOnlineStatus() {
283
- return this.isOnline;
284
- }
285
- }
286
- //# sourceMappingURL=event-queue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-queue.js","sourceRoot":"","sources":["../../../src/lib/core/event-queue.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Runtime detection utilities
3
- */
4
- export type Runtime = "client" | "server" | "edge";
5
- export declare function detectRuntime(): Runtime;
6
- export declare function isClient(): boolean;
7
- //# sourceMappingURL=runtime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/lib/core/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEnD,wBAAgB,aAAa,IAAI,OAAO,CAUvC;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Runtime detection utilities
3
- */
4
- export function detectRuntime() {
5
- if (typeof window !== "undefined") {
6
- return "client";
7
- }
8
- if (typeof globalThis !== "undefined" && "EdgeRuntime" in globalThis) {
9
- return "edge";
10
- }
11
- return "server";
12
- }
13
- export function isClient() {
14
- return typeof window !== "undefined";
15
- }
16
- //# sourceMappingURL=runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/lib/core/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,UAAU,aAAa;IAC3B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,aAAa,IAAI,UAAU,EAAE,CAAC;QACrE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC;AACvC,CAAC"}
@@ -1,96 +0,0 @@
1
- /**
2
- * Enhanced session management with multiple persistence strategies
3
- */
4
- export type SessionData = {
5
- sessionId: string;
6
- startTimestamp: number;
7
- lastActivityTimestamp: number;
8
- expiresAt?: number;
9
- };
10
- export declare class SessionManager {
11
- private sessionData;
12
- private persistenceStrategy;
13
- private readonly onSessionChange?;
14
- constructor(onSessionChange?: (sessionId: string) => void);
15
- /**
16
- * Initialize session from storage or create new
17
- */
18
- private initializeSession;
19
- /**
20
- * Get current session ID
21
- */
22
- getSessionId(): string | null;
23
- /**
24
- * Get full session data
25
- */
26
- getSessionData(): SessionData | null;
27
- /**
28
- * Update session activity
29
- */
30
- updateActivity(): void;
31
- /**
32
- * Reset session
33
- */
34
- resetSession(): void;
35
- /**
36
- * Create new session
37
- */
38
- private createNewSession;
39
- /**
40
- * Generate unique session ID
41
- */
42
- private generateSessionId;
43
- /**
44
- * Persist session to available storage
45
- */
46
- private persistSession;
47
- /**
48
- * Try to restore session from cookie
49
- */
50
- private restoreFromCookie;
51
- /**
52
- * Save session to cookie
53
- */
54
- private saveToCookie;
55
- /**
56
- * Try to restore session from localStorage
57
- */
58
- private restoreFromLocalStorage;
59
- /**
60
- * Save session to localStorage
61
- */
62
- private saveToLocalStorage;
63
- /**
64
- * Try to restore session from sessionStorage
65
- */
66
- private restoreFromSessionStorage;
67
- /**
68
- * Save session to sessionStorage
69
- */
70
- private saveToSessionStorage;
71
- /**
72
- * Check if session data is valid
73
- */
74
- private isValidSession;
75
- /**
76
- * Clear all storage
77
- */
78
- private clearAllStorage;
79
- /**
80
- * Get debug info
81
- */
82
- getDebugInfo(): Record<string, unknown>;
83
- /**
84
- * Get storage keys
85
- */
86
- private getStorageKeys;
87
- /**
88
- * Test localStorage availability
89
- */
90
- private testLocalStorage;
91
- /**
92
- * Test sessionStorage availability
93
- */
94
- private testSessionStorage;
95
- }
96
- //# sourceMappingURL=session-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/session-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8DH,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,mBAAmB,CAAkD;IAC7E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAA8B;gBAEnD,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI;IAKzD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkCzB;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAc7B;;OAEG;IACH,cAAc,IAAI,WAAW,GAAG,IAAI;IAIpC;;OAEG;IACH,cAAc,IAAI,IAAI;IAqBtB;;OAEG;IACH,YAAY,IAAI,IAAI;IAapB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmCtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAqBjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAkCtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA6BvC;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAU3B"}