@aacigroup/aaci_shared 2.3.0 → 2.6.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.
package/README.md CHANGED
@@ -12,41 +12,141 @@ npm install @aacigroup/aaci_shared
12
12
 
13
13
  ## Quick Start
14
14
 
15
- ### Lead Tracking
16
15
  ```javascript
17
16
  import { LeadTracker } from '@aacigroup/aaci_shared';
18
17
 
19
- const leadTracker = new LeadTracker({
18
+ const tracker = new LeadTracker({
20
19
  apiUrl: 'https://your-api.com/leads',
21
20
  apiKey: 'your-api-key',
22
21
  projectName: 'MyProject',
23
22
  productionDomains: ['myproject.com']
24
23
  });
25
24
 
26
- // Track lead only (session data automatically added)
27
- await leadTracker.trackLeadAndAddress({
28
- lead_type: 'signup',
29
- email: 'user@example.com',
30
- first_name: 'John',
31
- last_name: 'Doe'
25
+ // Track lead only
26
+ await tracker.trackLeadAndAddress({
27
+ lead_type: 'contact',
28
+ email: 'user@example.com'
32
29
  });
33
30
 
34
- // Track address only (will merge with saved lead if exists)
35
- await leadTracker.trackLeadAndAddress(undefined, {
36
- full_address: '123 Main St, New York, NY 10001'
31
+ // Track address only
32
+ await tracker.trackLeadAndAddress(undefined, {
33
+ full_address: '123 Main St, New York, NY 10001',
34
+ source: 'address_check'
37
35
  });
38
36
 
39
- // Track both lead and address together
40
- await leadTracker.trackLeadAndAddress({
41
- lead_type: 'purchase',
42
- email: 'user@example.com',
43
- phone: '+1234567890'
37
+ // Track both together
38
+ await tracker.trackLeadAndAddress({
39
+ lead_type: 'policy_review',
40
+ email: 'user@example.com'
44
41
  }, {
45
42
  full_address: '123 Main St, New York, NY 10001',
46
- city: 'New York',
47
- state: 'NY',
48
- zip_code: '10001'
43
+ source: 'policy_review'
44
+ });
45
+ ```
46
+
47
+ ## Lead Types
48
+
49
+ Use these values for `lead_type` and `source`:
50
+ - `'policy_review'` - Insurance policy review
51
+ - `'address_check'` - Property address verification
52
+ - `'contact'` - General contact forms
53
+ - `'signup'` - User registration
54
+ - `'consultation'` - Service consultation
55
+ - `'quote'` - Price quote requests
56
+
57
+ ## Validation (Optional)
58
+
59
+ Install Zod for input validation:
60
+ ```bash
61
+ npm install zod
62
+ ```
63
+
64
+ ```javascript
65
+ import { validateTrackLeadParams, validateAddress } from '@aacigroup/aaci_shared';
66
+
67
+ // Validate before tracking
68
+ const validLead = validateTrackLeadParams({
69
+ lead_type: 'contact',
70
+ email: 'user@example.com'
71
+ });
72
+
73
+ const validAddress = validateAddress({
74
+ full_address: '123 Main St',
75
+ source: 'contact'
49
76
  });
77
+
78
+ await tracker.trackLeadAndAddress(validLead, validAddress);
79
+ ```
80
+
81
+ ## Other Components
82
+
83
+ ### React Context (Optional)
84
+
85
+ For React projects, you can use the provided context for easier integration:
86
+
87
+ ```bash
88
+ npm install react # Peer dependency
89
+ ```
90
+
91
+ ```javascript
92
+ // App.tsx
93
+ import { TrackingProvider, createTrackingConfigFromEnv } from '@aacigroup/aaci_shared/react';
94
+
95
+ // Option 1: Use environment variables (in Vite projects)
96
+ function App() {
97
+ return (
98
+ <TrackingProvider config={createTrackingConfigFromEnv()}>
99
+ <YourApp />
100
+ </TrackingProvider>
101
+ );
102
+ }
103
+
104
+ // Option 2: Manual configuration
105
+ function App() {
106
+ const trackingConfig = {
107
+ apiUrl: 'https://your-api.com/leads',
108
+ apiKey: 'your-api-key',
109
+ projectName: 'MyProject',
110
+ posthogKey: 'phc_your_key',
111
+ productionDomains: ['myproject.com']
112
+ };
113
+
114
+ return (
115
+ <TrackingProvider config={trackingConfig}>
116
+ <YourApp />
117
+ </TrackingProvider>
118
+ );
119
+ }
120
+
121
+ // Component.tsx - Use tracking in any component
122
+ import { useLeadTracker, usePostHog } from '@aacigroup/aaci_shared/react';
123
+
124
+ function ContactForm() {
125
+ const tracker = useLeadTracker();
126
+ const analytics = usePostHog();
127
+
128
+ const handleSubmit = async (formData) => {
129
+ // Track lead submission
130
+ await tracker.trackLeadAndAddress({
131
+ lead_type: 'contact',
132
+ email: formData.email
133
+ });
134
+
135
+ // Track analytics event
136
+ analytics.trackEvent('form_submitted', { form_type: 'contact' });
137
+ };
138
+
139
+ return <form onSubmit={handleSubmit}>...</form>;
140
+ }
141
+ ```
142
+
143
+ **Environment Variables (for createTrackingConfigFromEnv):**
144
+ ```env
145
+ VITE_LEAD_CAPTURE_API_URL=https://your-api.com/leads
146
+ VITE_LEAD_CAPTURE_API_KEY=your-api-key
147
+ VITE_PROJECT_NAME=MyProject
148
+ VITE_POSTHOG_KEY=phc_your_key
149
+ VITE_PRODUCTION_DOMAINS=myproject.com,www.myproject.com
50
150
  ```
51
151
 
52
152
  ### PostHog Analytics
@@ -61,7 +161,6 @@ const analytics = new PostHog({
61
161
 
62
162
  await analytics.init();
63
163
  analytics.trackEvent('user_signup', { plan: 'premium' });
64
- analytics.trackError(error, 'context'); // Built-in error tracking
65
164
  ```
66
165
 
67
166
  ### Google Tag Manager
@@ -75,79 +174,409 @@ const gtm = new GTM({
75
174
  gtm.trackEvent('purchase', { value: 100, currency: 'USD' });
76
175
  ```
77
176
 
78
- ### Environment Detection
177
+ ## TypeScript Types
178
+
79
179
  ```javascript
80
- import { Environment } from '@aacigroup/aaci_shared';
180
+ import type { Lead, AddressCapture, TrackLeadParams, Address } from '@aacigroup/aaci_shared';
81
181
 
82
- const env = new Environment({
83
- productionDomains: ['myproject.com']
84
- });
182
+ // Use types in your application
183
+ function processLead(lead: Lead): void {
184
+ console.log(`Processing ${lead.email}`);
185
+ }
186
+ ```
85
187
 
86
- console.log('Is production:', env.isProduction());
188
+ ## License
189
+
190
+ ISC
191
+
192
+ ## Core API Reference
193
+
194
+ ### LeadTracker
195
+
196
+ #### `trackLeadAndAddress(lead?, address?)`
197
+
198
+ **Primary tracking method that accepts lead data, address data, or both.**
199
+
200
+ **Parameters:**
201
+ - `lead` (optional): Lead information object
202
+ - `address` (optional): Address information object
203
+ - **At least one parameter is required**
204
+
205
+ **Returns:** `Promise<LeadTrackingResponse>`
206
+
207
+ #### Lead Capture Types
208
+
209
+ ```typescript
210
+ interface TrackLeadParams {
211
+ lead_type: string; // Required: Type of lead
212
+ first_name?: string; // Optional: First name
213
+ last_name?: string; // Optional: Last name
214
+ email?: string; // Optional: Email address
215
+ phone?: string; // Optional: Phone number
216
+ extra_data?: Record<string, any>; // Optional: Additional custom data
217
+ session_data?: SessionData; // Optional: Session tracking data (auto-populated)
218
+ }
87
219
  ```
88
220
 
89
- ## Features
221
+ **Common `lead_type` examples:**
222
+ - `'policy_review'` - Insurance policy review requests
223
+ - `'address_check'` - Property address verification
224
+ - `'contact'` - General contact form submissions
225
+ - `'signup'` - User registration/signup
226
+ - `'consultation'` - Service consultation requests
227
+ - `'quote'` - Price quote requests
228
+
229
+ **Lead Validation:**
230
+ - When tracking a lead, either `email` OR `phone` is required
231
+ - `lead_type` is always required
232
+
233
+ #### Address Capture Types
234
+
235
+ ```typescript
236
+ interface Address {
237
+ full_address: string; // Required: Complete address string
238
+ source: string; // Required: Lead type that generated this address
239
+ street_address?: string; // Optional: Street address component
240
+ city?: string; // Optional: City
241
+ state?: string; // Optional: State/Province
242
+ zip_code?: string; // Optional: ZIP/Postal code
243
+ county?: string; // Optional: County
244
+ country?: string; // Optional: Country
245
+ extra_data?: Record<string, any>; // Optional: Additional address data
246
+ }
247
+ ```
90
248
 
91
- - **Single Unified API** - One method handles all tracking scenarios
92
- - **Automatic Session Tracking** - Session data automatically included
93
- - **Smart Attribution Tracking** - Automatically captures and persists gclid/fbclid
94
- - **PostHog Integration** - Uses PostHog distinct_id when available
95
- - **TypeScript Support** - Full type definitions
96
- - **Framework Agnostic** - Works with any JS framework
97
- - **Lovable.dev Compatible** - No environment variables needed
249
+ **Address Validation:**
250
+ - `full_address` is always required
251
+ - `source` is always required (uses same values as `lead_type`)
98
252
 
99
- ## Important Notes
253
+ #### Usage Examples
100
254
 
101
- ### Attribution Tracking
102
- The library automatically captures and persists marketing attribution data:
255
+ ```javascript
256
+ // 1. Lead only - Basic contact form
257
+ await tracker.trackLeadAndAddress({
258
+ lead_type: 'contact',
259
+ email: 'user@example.com',
260
+ first_name: 'John'
261
+ });
103
262
 
104
- - **gclid** (Google Ads) - Captured from URL parameters and stored in localStorage
105
- - **fbclid** (Facebook Ads) - Captured from URL parameters and stored in localStorage
106
- - **fbc/fbp** (Facebook cookies) - Read from browser cookies
107
- - **UTM parameters** - Captured from URL parameters
263
+ // 2. Lead only - Policy review request
264
+ await tracker.trackLeadAndAddress({
265
+ lead_type: 'policy_review',
266
+ phone: '+1234567890',
267
+ extra_data: { policy_number: 'POL123456' }
268
+ });
108
269
 
109
- Once captured, gclid and fbclid are stored in localStorage and included in all future tracking calls until the user clears their browser data.
270
+ // 3. Address only - Address verification
271
+ await tracker.trackLeadAndAddress(undefined, {
272
+ full_address: '123 Main St, New York, NY 10001',
273
+ source: 'address_check',
274
+ city: 'New York',
275
+ state: 'NY',
276
+ zip_code: '10001'
277
+ });
110
278
 
111
- ### PostHog Integration
112
- If PostHog is initialized on your page, the library will automatically use PostHog's `distinct_id` for consistent user identification across both systems.
279
+ // 4. Both together - Address check with contact
280
+ await tracker.trackLeadAndAddress({
281
+ lead_type: 'address_check',
282
+ email: 'homeowner@example.com',
283
+ first_name: 'Jane'
284
+ }, {
285
+ full_address: '456 Oak Ave, Boston, MA 02101',
286
+ source: 'address_check',
287
+ city: 'Boston',
288
+ state: 'MA',
289
+ zip_code: '02101'
290
+ });
113
291
 
114
- ## API Reference
292
+ // 5. Multi-step forms - Step 1: Lead info
293
+ await tracker.trackLeadAndAddress({
294
+ lead_type: 'quote',
295
+ email: 'customer@example.com'
296
+ });
297
+ // Step 2: Address info (automatically merges with saved lead)
298
+ await tracker.trackLeadAndAddress(undefined, {
299
+ full_address: '789 Pine St, Chicago, IL 60601',
300
+ source: 'quote'
301
+ });
302
+ ```
303
+
304
+ ## Input Validation
305
+
306
+ The library provides Zod validation schemas to validate customer input before tracking.
307
+
308
+ **Note:** Validation functions require the `zod` package to be installed in your project:
309
+ ```bash
310
+ npm install zod
311
+ ```
115
312
 
116
- ### LeadTracker
117
313
  ```javascript
118
- // Track lead only
119
- await tracker.trackLeadAndAddress({ lead_type: 'contact', email: 'user@example.com' });
314
+ import {
315
+ validateTrackLeadParams,
316
+ validateAddress,
317
+ safeValidateTrackLeadAndAddress
318
+ } from '@aacigroup/aaci_shared';
319
+
320
+ // Validate lead data (throws on error)
321
+ try {
322
+ const validLead = validateTrackLeadParams({
323
+ lead_type: 'contact',
324
+ email: 'user@example.com'
325
+ });
326
+ await tracker.trackLeadAndAddress(validLead);
327
+ } catch (error) {
328
+ console.error('Invalid lead data:', error.errors);
329
+ }
120
330
 
121
- // Track address only
122
- await tracker.trackLeadAndAddress(undefined, { full_address: '123 Main St' });
331
+ // Validate address data (throws on error)
332
+ try {
333
+ const validAddress = validateAddress({
334
+ full_address: '123 Main St, New York, NY 10001',
335
+ source: 'address_check'
336
+ });
337
+ await tracker.trackLeadAndAddress(undefined, validAddress);
338
+ } catch (error) {
339
+ console.error('Invalid address data:', error.errors);
340
+ }
123
341
 
124
- // Track both together
125
- await tracker.trackLeadAndAddress(leadData, addressData);
342
+ // Safe validation (returns success/error object)
343
+ const result = safeValidateTrackLeadAndAddress(leadData, addressData);
344
+ if (result.success) {
345
+ await tracker.trackLeadAndAddress(result.data.lead, result.data.address);
346
+ } else {
347
+ console.error('Validation errors:', result.error.errors);
348
+ }
349
+
350
+ // Available validation functions:
351
+ // validateTrackLeadParams(data) - throws on error
352
+ // validateAddress(data) - throws on error
353
+ // validateTrackLeadAndAddress(lead, address) - throws on error
354
+ // safeValidateTrackLeadParams(data) - returns {success, data, error}
355
+ // safeValidateAddress(data) - returns {success, data, error}
356
+ // safeValidateTrackLeadAndAddress(lead, address) - returns {success, data, error}
357
+ ```
358
+
359
+ #### Response Type
360
+
361
+ ```typescript
362
+ interface LeadTrackingResponse {
363
+ status: 'ok' | 'error'; // Success or error status
364
+ lead_id?: string; // Generated lead ID (on success)
365
+ address_id?: string; // Generated address ID (if address provided)
366
+ is_first_submission?: boolean; // Whether this is user's first submission
367
+ message?: string; // Success/error message
368
+ errors?: Array<{ // Validation errors (if any)
369
+ field: string;
370
+ message: string;
371
+ }>;
372
+ }
373
+ ```
374
+
375
+ #### Other LeadTracker Methods
376
+
377
+ ```javascript
378
+ // Get current session data
379
+ const sessionData = tracker.getSessionData();
380
+
381
+ // Check if running in production
382
+ const isProduction = tracker.isProduction();
126
383
  ```
127
384
 
128
- ### PostHog
385
+ ### PostHog Analytics
386
+
129
387
  ```javascript
388
+ import { PostHog } from '@aacigroup/aaci_shared';
389
+
390
+ const analytics = new PostHog({
391
+ apiKey: 'phc_your_posthog_key',
392
+ projectName: 'MyProject',
393
+ productionDomains: ['myproject.com'],
394
+ apiHost: 'https://us.i.posthog.com', // Optional: Custom PostHog host
395
+ autocapture: true, // Optional: Enable autocapture (default: true)
396
+ capturePageview: true // Optional: Enable pageview tracking (default: true)
397
+ });
398
+
399
+ // Initialize PostHog
130
400
  await analytics.init();
131
- analytics.trackEvent('event_name', { property: 'value' });
132
- analytics.trackError(error, 'context');
401
+
402
+ // Track events
403
+ analytics.trackEvent('user_signup', { plan: 'premium', source: 'landing_page' });
404
+
405
+ // Identify users
406
+ analytics.identify('user_123', { email: 'user@example.com', plan: 'premium' });
407
+
408
+ // Track errors
409
+ analytics.trackError(new Error('Something went wrong'), 'checkout_process');
410
+ analytics.trackAPIError('https://api.example.com/users', 500, 'Internal Server Error');
411
+
412
+ // Reset user identity
413
+ analytics.reset();
133
414
  ```
134
415
 
135
- ### GTM
416
+ ### Google Tag Manager
417
+
136
418
  ```javascript
137
- gtm.trackEvent('event_name', { property: 'value' });
419
+ import { GTM } from '@aacigroup/aaci_shared';
420
+
421
+ const gtm = new GTM({
422
+ productionDomains: ['myproject.com']
423
+ });
424
+
425
+ // Track events
426
+ gtm.trackEvent('purchase', {
427
+ value: 99.99,
428
+ currency: 'USD',
429
+ item_id: 'product_123'
430
+ });
431
+
432
+ // Check if GTM is available
433
+ if (gtm.isAvailable()) {
434
+ gtm.trackEvent('page_view', { page: '/checkout' });
435
+ }
138
436
  ```
139
437
 
140
- ### Types Only
438
+ ### Environment Detection
439
+
141
440
  ```javascript
142
- // Import types for your own data structures
143
- import type { Lead, AddressCapture, SessionData } from '@aacigroup/aaci_shared';
441
+ import { Environment } from '@aacigroup/aaci_shared';
442
+
443
+ const env = new Environment({
444
+ productionDomains: ['myproject.com', 'www.myproject.com']
445
+ });
446
+
447
+ console.log('Is production:', env.isProduction());
448
+ console.log('Current domain:', env.getCurrentDomain());
449
+ ```
450
+
451
+ ## Data Types Reference
452
+
453
+ ### Input Types (for tracking methods)
454
+
455
+ ```typescript
456
+ // Lead data for tracking
457
+ interface TrackLeadParams {
458
+ lead_type: string; // Required: Type of lead
459
+ first_name?: string; // Optional: First name
460
+ last_name?: string; // Optional: Last name
461
+ email?: string; // Optional: Email address
462
+ phone?: string; // Optional: Phone number
463
+ extra_data?: Record<string, any>; // Optional: Additional custom data
464
+ session_data?: SessionData; // Optional: Session tracking data (auto-populated)
465
+ }
466
+
467
+ // Address data for tracking
468
+ interface Address {
469
+ full_address: string; // Required: Complete address string
470
+ source: string; // Required: Lead type that generated this address
471
+ street_address?: string; // Optional: Street address component
472
+ city?: string; // Optional: City
473
+ state?: string; // Optional: State/Province
474
+ zip_code?: string; // Optional: ZIP/Postal code
475
+ county?: string; // Optional: County
476
+ country?: string; // Optional: Country
477
+ extra_data?: Record<string, any>; // Optional: Additional address data
478
+ }
479
+ ```
480
+
481
+ ### Database Types (complete records)
482
+
483
+ ```typescript
484
+ // Complete lead record (from database)
485
+ interface Lead {
486
+ id: string;
487
+ project_name: string;
488
+ user_id: string | null;
489
+ first_name: string | null;
490
+ last_name: string | null;
491
+ email: string | null;
492
+ phone: string | null;
493
+ lead_type: string | null;
494
+ first_submission: boolean | null;
495
+ extra_data: Record<string, any>;
496
+ session_data: SessionData;
497
+ created_at: string;
498
+ updated_at: string;
499
+ }
500
+
501
+ // Complete address record (from database)
502
+ interface AddressCapture {
503
+ id: string;
504
+ project_name: string;
505
+ user_id: string | null;
506
+ lead_id: string | null;
507
+ address: string | null;
508
+ city: string | null;
509
+ state: string | null;
510
+ zip: string | null;
511
+ source: string | null; // Lead type source (same values as lead_type)
512
+ status: string | null; // Processing status (e.g., 'verified', 'pending', 'invalid')
513
+ extra_data: Record<string, any>;
514
+ session_data: SessionData;
515
+ created_at: string;
516
+ updated_at: string;
517
+ }
518
+ ```
519
+
520
+ **Common `lead_type` and `source` values:**
521
+ - `'policy_review'` - Insurance policy review requests
522
+ - `'address_check'` - Property address verification
523
+ - `'contact'` - General contact form submissions
524
+ - `'signup'` - User registration/signup
525
+ - `'consultation'` - Service consultation requests
526
+ - `'quote'` - Price quote requests
527
+
528
+ ### Session Data
529
+
530
+ ```typescript
531
+ // Session tracking data
532
+ interface SessionData {
533
+ ip?: string;
534
+ user_agent?: string;
535
+ browser?: string;
536
+ browser_version?: string;
537
+ os?: string;
538
+ device?: string;
539
+ referrer?: string;
540
+ utm_source?: string;
541
+ utm_medium?: string;
542
+ utm_campaign?: string;
543
+ landing_page?: string;
544
+ current_page?: string;
545
+ session_id?: string;
546
+ timestamp?: string;
547
+ distinct_id?: string;
548
+ gclid?: string; // Google Ads click ID
549
+ fbclid?: string; // Facebook click ID
550
+ fbc?: string; // Facebook browser cookie
551
+ fbp?: string; // Facebook pixel cookie
552
+ }
553
+ ```
554
+
555
+ ### Import Types Only
556
+
557
+ ```javascript
558
+ import type { Lead, AddressCapture, SessionData, TrackLeadParams, Address } from '@aacigroup/aaci_shared';
144
559
 
145
560
  // Use in your application
146
- function processLead(lead: Lead): void {
147
- console.log(`Processing ${lead.email}`);
561
+ function saveLead(lead: Lead): Promise<void> {
562
+ return database.leads.create(lead);
563
+ }
564
+
565
+ function saveAddress(address: AddressCapture): Promise<void> {
566
+ return database.addresses.create(address);
148
567
  }
149
568
  ```
150
569
 
570
+ ## Features
571
+
572
+ - **Flexible Tracking** - Track leads, addresses, or both in any combination
573
+ - **Smart Data Persistence** - Automatically saves and merges data across form steps
574
+ - **Attribution Tracking** - Captures and persists marketing attribution (gclid, fbclid, UTM)
575
+ - **Session Tracking** - Comprehensive browser and user session data
576
+ - **Production Detection** - Domain-based environment detection
577
+ - **TypeScript Support** - Full type definitions for all data structures
578
+ - **Framework Agnostic** - Works with React, Vue, vanilla JS, or any framework
579
+
151
580
  ## License
152
581
 
153
582
  ISC
@@ -1 +1 @@
1
- {"version":3,"file":"LeadTracker.d.ts","sourceRoot":"","sources":["../src/LeadTracker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,OAAO,EACP,WAAW,EACX,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,WAAW,CAAc;gBAErB,MAAM,EAAE,iBAAiB;IAMrC,OAAO,CAAC,cAAc;IAef,YAAY,IAAI,OAAO;IAOjB,mBAAmB,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAqG1G,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,WAAW;IAaZ,cAAc,IAAI,WAAW;IA8DpC,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,qBAAqB;IA0B7B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;CAQnB"}
1
+ {"version":3,"file":"LeadTracker.d.ts","sourceRoot":"","sources":["../src/LeadTracker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,OAAO,EACP,WAAW,EACX,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,WAAW,CAAc;gBAErB,MAAM,EAAE,iBAAiB;IAMrC,OAAO,CAAC,cAAc;IAef,YAAY,IAAI,OAAO;IAOjB,mBAAmB,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4G1G,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,WAAW;IAaZ,cAAc,IAAI,WAAW;IA8DpC,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,qBAAqB;IA0B7B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;CAQnB"}
@@ -28,6 +28,11 @@ class LeadTracker {
28
28
  console.warn('[Lead Tracker]', errorMessage);
29
29
  throw new Error(errorMessage);
30
30
  }
31
+ if (address && !address.source) {
32
+ const errorMessage = 'Address source is required when tracking address';
33
+ console.warn('[Lead Tracker]', errorMessage);
34
+ throw new Error(errorMessage);
35
+ }
31
36
  const savedLead = this.getSavedLead();
32
37
  const savedAddress = this.getSavedAddress();
33
38
  let finalLead = null;
@@ -1 +1 @@
1
- {"version":3,"file":"LeadTracker.js","sourceRoot":"","sources":["../src/LeadTracker.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAS5C,MAAa,WAAW;IAItB,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAKM,YAAY;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAKM,KAAK,CAAC,mBAAmB,CAAC,IAAsB,EAAE,OAAiB;QAExE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,oCAAoC,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAGD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAG5C,IAAI,SAAS,GAA2B,IAAI,CAAC;QAC7C,IAAI,YAAY,GAAmB,IAAI,CAAC;QAExC,IAAI,IAAI,EAAE,CAAC;YAET,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC/B,MAAM,YAAY,GAAG,+CAA+C,CAAC;gBACrE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;YAGD,SAAS,GAAG;gBACV,GAAG,IAAI;gBACP,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE;aACpC,CAAC;YAGF,YAAY,GAAG,OAAO,IAAI,YAAY,CAAC;QACzC,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YAEnB,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,GAAG;oBACV,GAAG,SAAS;oBACZ,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE;iBACpC,CAAC;YACJ,CAAC;YACD,YAAY,GAAG,OAAO,CAAC;QACzB,CAAC;QAGD,MAAM,OAAO,GAAQ;YACnB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACrC,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE;SACpC,CAAC;QAGF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACpC,CAAC;QAGD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC;QACjC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;YACtC,OAAO,EAAE,CAAC,CAAC,SAAS;YACpB,UAAU,EAAE,CAAC,CAAC,YAAY;YAC1B,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;iBACvC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAC9B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAGnC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACjE,OAAO,IAAI,CAAC;YACd,CAAC;YAGD,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC3B,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACjC,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAGO,YAAY;QAClB,IAAI,OAAO,YAAY,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACtD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,IAAI,OAAO,YAAY,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACzD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,QAAa;QAC5B,IAAI,OAAO,YAAY,KAAK,WAAW;YAAE,OAAO;QAChD,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,OAAgB;QAClC,IAAI,OAAO,YAAY,KAAK,WAAW;YAAE,OAAO;QAChD,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,wDAAwD,EAAE,KAAK,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAKM,cAAc;QACnB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAEzC,MAAM,WAAW,GAAgB;YAC/B,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,eAAe,EAAE,QAAQ,CAAC,cAAc;YACxC,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,YAAY,EAAE,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI;YAC5E,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YAClC,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE;YACvC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,WAAW,EAAE,IAAI,CAAC,qBAAqB,EAAE;SAC1C,CAAC;QAGF,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACnC,IAAI,QAAQ;YAAE,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,SAAS;YAAE,WAAW,CAAC,UAAU,GAAG,SAAS,CAAC;QAElD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,SAAS;YAAE,WAAW,CAAC,UAAU,GAAG,SAAS,CAAC;QAElD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,WAAW;YAAE,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC;QAExD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7E,IAAI,KAAK,EAAE,CAAC;YACV,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;YAE1B,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAChF,IAAI,MAAM,EAAE,CAAC;YACX,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;YAE5B,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,GAAG;YAAE,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC;QAE/B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,GAAG;YAAE,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC;QAE/B,OAAO,WAAW,CAAC;IACrB,CAAC;IAGO,cAAc,CAAC,EAAU;;QAC/B,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,SAAS,CAAC;YACxB,IAAI,cAAc,GAAG,EAAE,CAAC;YAExB,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,OAAO,GAAG,SAAS,CAAC;gBACpB,cAAc,GAAG,CAAA,MAAA,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAC;YAC7D,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,OAAO,GAAG,QAAQ,CAAC;gBACnB,cAAc,GAAG,CAAA,MAAA,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAC;YAC5D,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5D,OAAO,GAAG,QAAQ,CAAC;gBACnB,cAAc,GAAG,CAAA,MAAA,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAC;YAC7D,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,OAAO,GAAG,MAAM,CAAC;gBACjB,cAAc,GAAG,CAAA,MAAA,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAC;YACzD,CAAC;YAED,IAAI,EAAE,GAAG,SAAS,CAAC;YACnB,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9B,EAAE,GAAG,SAAS,CAAC;YACjB,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,EAAE,GAAG,OAAO,CAAC;YACf,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,EAAE,GAAG,OAAO,CAAC;YACf,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,EAAE,GAAG,SAAS,CAAC;YACjB,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxD,EAAE,GAAG,KAAK,CAAC;YACb,CAAC;YAED,IAAI,MAAM,GAAG,SAAS,CAAC;YACvB,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpD,MAAM,GAAG,QAAQ,CAAC;YACpB,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxD,MAAM,GAAG,QAAQ,CAAC;YACpB,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACtF,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,KAAa;QAC/B,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,SAAS,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9D,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;IAC3C,CAAC;IAEO,SAAS,CAAC,IAAY;;QAC5B,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO,SAAS,CAAC;QACtD,MAAM,KAAK,GAAG,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAA,KAAK,CAAC,GAAG,EAAE,0CAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;QAC/D,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,oBAAoB;QAC1B,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE,OAAO,EAAE,CAAC;QAErD,IAAI,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjF,cAAc,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,qBAAqB;QAC3B,IAAI,OAAO,YAAY,KAAK,WAAW;YAAE,OAAO,EAAE,CAAC;QAGnD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,OAAO,EAAE,CAAC;YAC7D,IAAI,CAAC;gBACH,MAAM,iBAAiB,GAAI,MAAc,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;gBACpE,IAAI,iBAAiB,EAAE,CAAC;oBAEtB,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;oBAC5D,OAAO,iBAAiB,CAAC;gBAC3B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAGD,IAAI,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClF,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,cAAc,CAAC,GAAW;QAChC,IAAI,OAAO,YAAY,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QACrD,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,GAAW,EAAE,KAAa;QAC3C,IAAI,OAAO,YAAY,KAAK,WAAW;YAAE,OAAO;QAChD,IAAI,CAAC;YACH,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,kCAAkC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF;AA/VD,kCA+VC"}
1
+ {"version":3,"file":"LeadTracker.js","sourceRoot":"","sources":["../src/LeadTracker.ts"],"names":[],"mappings":"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"}