@aacigroup/aaci_shared 2.12.4 → 3.0.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.
package/README.md CHANGED
@@ -550,6 +550,234 @@ await tracker.trackLeadAndAddress({ lead_type: 'quote', email: 'user@example.com
550
550
  await tracker.trackLeadAndAddress(undefined, { full_address: '123 Main St', source: 'quote' });
551
551
  ```
552
552
 
553
+ ## Magic Links
554
+
555
+
556
+ The library includes Magic Link functionality for secure, token-based, login-free access to personalized pages. Magic links are created and validated centrally in your backend and tied to a user profile.
557
+
558
+ > **Note:** Magic Link is a separate hook from TrackingContext. It requires its own configuration.
559
+
560
+ ### Overview
561
+
562
+ Magic links provide:
563
+ - **Customer access tokens** - For public URLs to personalized content
564
+ - **Admin tokens** (optional) - For elevated access/override links
565
+ - **URL pattern binding** - Tokens are only valid within their expected URL structure
566
+ - **Automatic user resolution** - Links to user profile by email/phone
567
+
568
+ ### React Hook Usage
569
+
570
+ ```javascript
571
+ import { useMagicLink, MagicLinkConfig } from '@aacigroup/aaci_shared/react';
572
+
573
+ function MagicLinkExample() {
574
+ // Magic Link requires its own config (separate from TrackingConfig)
575
+ const magicLinkConfig: MagicLinkConfig = {
576
+ apiUrl: import.meta.env.VITE_LEAD_CAPTURE_API_URL,
577
+ apiKey: import.meta.env.VITE_LEAD_CAPTURE_API_KEY,
578
+ projectName: import.meta.env.VITE_PROJECT_NAME
579
+ };
580
+
581
+ const magicLink = useMagicLink(magicLinkConfig);
582
+
583
+ // Create a magic link for a customer
584
+ const handleCreateLink = async () => {
585
+ const result = await magicLink.createMagicLink({
586
+ email: 'customer@example.com',
587
+ url_pattern: 'https://myapp.com/session/{token}',
588
+ admin_url_pattern: 'https://myapp.com/session/{token}/admin/{admin_token}', // optional
589
+ expires_at: '2025-12-31T23:59:59.000Z' // optional
590
+ });
591
+
592
+ if (result.status === 'ok') {
593
+ console.log('Customer URL:', result.url);
594
+ console.log('Admin URL:', result.admin_url); // if admin_url_pattern was provided
595
+ console.log('Token ID:', result.magic_link_token_id);
596
+ }
597
+ };
598
+
599
+
600
+ // Validate a magic link token from URL (extract token from router params)
601
+ // Example: if your route is /session/:sessionId/:token
602
+ import { useParams } from 'react-router-dom';
603
+
604
+ function SessionPage() {
605
+ const { token } = useParams(); // token from route: /session/:sessionId/:token
606
+
607
+ const handleValidateLink = async () => {
608
+ const currentUrl = window.location.href;
609
+ const result = await magicLink.validateMagicLink({
610
+ token,
611
+ current_url: currentUrl,
612
+ mode: 'customer' // or 'admin' for admin access
613
+ });
614
+
615
+ if (result.valid) {
616
+ console.log('Valid! User ID:', result.user_profile_id);
617
+ console.log('Link data:', result.data); // Data stored in magic link data
618
+ // Render personalized content
619
+ } else {
620
+ console.log('Invalid:', result.reason); // 'expired', 'revoked', 'url_mismatch', 'not_found'
621
+ }
622
+ };
623
+
624
+ // Call handleValidateLink on mount or button click
625
+ // useEffect(() => { handleValidateLink(); }, []);
626
+ // or <button onClick={handleValidateLink}>Validate</button>
627
+ return null;
628
+ }
629
+
630
+ return <div>...</div>;
631
+ }
632
+ ```
633
+
634
+ ### Create Magic Link
635
+
636
+ ```javascript
637
+ interface CreateMagicLinkParams {
638
+ project_name?: string; // Optional – auto-populated from config
639
+ email?: string; // Optional – used to resolve user
640
+ phone?: string; // Optional – alternative user lookup
641
+
642
+ url_pattern: string; // Required – must contain "{token}"
643
+ admin_url_pattern?: string; // Optional – must contain "{admin_token}"
644
+
645
+ expires_at?: string; // Optional ISO timestamp
646
+ extra_data?: Record<string, any>; // Optional – stored in magic link data
647
+ session_data?: SessionData; // Optional – auto-populated if not provided
648
+ }
649
+ ```
650
+
651
+ **Rules:**
652
+ - At least **one** of: `email` or `phone` is required
653
+ - `url_pattern` is **required** and must contain `{token}`
654
+ - If `admin_url_pattern` is provided, it must contain `{admin_token}` (and may also include `{token}`)
655
+ - `session_data` is automatically collected from the browser if not explicitly provided
656
+
657
+ **Response:**
658
+ ```javascript
659
+ interface CreateMagicLinkResponse {
660
+ status: 'ok' | 'error';
661
+ project_name?: string; // Project identifier
662
+ magic_link_token_id?: string; // ID of the created magic link
663
+ url?: string; // Resolved customer URL
664
+ admin_url?: string; // Resolved admin URL (if admin_url_pattern provided)
665
+ expires_at?: string; // Expiration timestamp (if set)
666
+ message?: string;
667
+ errors?: Array<{ field: string; message: string }>;
668
+ }
669
+ ```
670
+
671
+ ### Validate Magic Link
672
+
673
+ ```javascript
674
+ interface ValidateMagicLinkParams {
675
+ project_name?: string; // Optional – auto-populated from config
676
+ token: string; // The token from URL
677
+ current_url: string; // Full URL being accessed
678
+ mode?: 'customer' | 'admin'; // Default: 'customer'
679
+ session_data?: SessionData; // Optional – auto-populated if not provided
680
+ }
681
+ ```
682
+
683
+ **Rules:**
684
+ - `mode = 'customer'` → validates against `token` + `url_pattern`
685
+ - `mode = 'admin'` → validates against `admin_token` + `admin_url_pattern`
686
+ - Link must: exist, not be expired, not be revoked, match the expected URL pattern
687
+ - `session_data` is automatically collected from the browser if not explicitly provided
688
+
689
+ **Response:**
690
+ ```javascript
691
+ interface ValidateMagicLinkResponse {
692
+ status: 'ok' | 'error';
693
+ valid: boolean;
694
+ project_name?: string; // Project identifier
695
+ magic_link_token_id?: string;
696
+ user_profile_id?: string;
697
+ data?: Record<string, any>; // Data stored in magic link data
698
+ message?: string;
699
+ reason?: 'expired' | 'revoked' | 'url_mismatch' | 'not_found'; // if invalid
700
+ }
701
+ ```
702
+
703
+ ### Full Page Access Example
704
+
705
+ ```javascript
706
+ import { useMagicLink } from '@aacigroup/aaci_shared/react';
707
+ import { useEffect, useState } from 'react';
708
+ import { useParams } from 'react-router-dom'; // or your router of choice
709
+
710
+ function ProtectedSessionPage() {
711
+ const magicLink = useMagicLink();
712
+ const { token, adminToken } = useParams(); // Get tokens from React Router
713
+ const [accessState, setAccessState] = useState<'loading' | 'valid' | 'invalid'>('loading');
714
+ const [personId, setPersonId] = useState<string | null>(null);
715
+ const [linkData, setLinkData] = useState<Record<string, any> | null>(null);
716
+ const [isAdmin, setIsAdmin] = useState(false);
717
+
718
+ useEffect(() => {
719
+ const validateAccess = async () => {
720
+ const currentUrl = window.location.href;
721
+
722
+ // Try admin token first if available
723
+ if (adminToken) {
724
+ const result = await magicLink.validateMagicLink({
725
+ token: adminToken,
726
+ current_url: currentUrl,
727
+ mode: 'admin'
728
+ });
729
+
730
+ if (result.valid) {
731
+ setAccessState('valid');
732
+ setPersonId(result.user_profile_id || null);
733
+ setLinkData(result.data || null);
734
+ setIsAdmin(true);
735
+ return;
736
+ }
737
+ }
738
+
739
+ // Fall back to customer token
740
+ if (token) {
741
+ const result = await magicLink.validateMagicLink({
742
+ token,
743
+ current_url: currentUrl,
744
+ mode: 'customer'
745
+ });
746
+
747
+ if (result.valid) {
748
+ setAccessState('valid');
749
+ setPersonId(result.user_profile_id || null);
750
+ setLinkData(result.data || null);
751
+ return;
752
+ }
753
+ }
754
+
755
+ setAccessState('invalid');
756
+ };
757
+
758
+ validateAccess();
759
+ }, [token, adminToken]);
760
+
761
+ if (accessState === 'loading') return <div>Validating access...</div>;
762
+ if (accessState === 'invalid') return <div>Access denied. Invalid or expired link.</div>;
763
+
764
+ return (
765
+ <div>
766
+ {isAdmin && <div className="admin-banner">Admin Mode</div>}
767
+ <h1>Welcome to your personalized session</h1>
768
+ {/* Render personalized content using personId and linkData */}
769
+ </div>
770
+ );
771
+ }
772
+ ```
773
+
774
+ ### Security Notes
775
+
776
+ - **Projects must NOT store tokens** - Only store `magic_link_token_id` in your database entities
777
+ - **Tokens are URL-bound** - A token is only valid when accessed via its designated URL pattern
778
+ - **Tokens are strong** - 32-64 character alphanumeric strings
779
+ - Your backend should be the single source of truth for token storage and validation
780
+
553
781
  ## Other Functions (Non-React)
554
782
 
555
783
  ### Direct Class Usage
@@ -658,6 +886,13 @@ import type {
658
886
  TrackLeadParams,
659
887
  Address,
660
888
  LeadTrackingResponse,
889
+ // Magic Link types (client-side)
890
+ CreateMagicLinkParams,
891
+ ValidateMagicLinkParams,
892
+ // Magic Link response types
893
+ CreateMagicLinkResponse,
894
+ ValidateMagicLinkResponse,
895
+ MagicLinkConfig,
661
896
  // Feature Flags types
662
897
  FeatureFlagsContextType,
663
898
  TrackingContextType
@@ -668,6 +903,14 @@ function processLead(lead: TrackLeadParams): Promise<LeadTrackingResponse> {
668
903
  return tracker.trackLeadAndAddress(lead);
669
904
  }
670
905
 
906
+ // Magic Link typing
907
+ async function createSessionLink(email: string): Promise<CreateMagicLinkResponse> {
908
+ return magicLink.createMagicLink({
909
+ email,
910
+ url_pattern: 'https://myapp.com/session/{token}'
911
+ });
912
+ }
913
+
671
914
  // Feature flags typing
672
915
  function useCustomFeatureFlag(): boolean {
673
916
  const { isFeatureFlagEnabled }: FeatureFlagsContextType = useFeatureFlags();
@@ -685,13 +928,27 @@ import type {
685
928
  AddressCapture,
686
929
  TrackLeadParams,
687
930
  Address,
688
- LeadTrackingResponse
931
+ LeadTrackingResponse,
932
+ // Magic Link types (client-side params - no project_name, no session_data)
933
+ CreateMagicLinkParams,
934
+ ValidateMagicLinkParams,
935
+ // Magic Link types (server-side request - required project_name, optional session_data)
936
+ CreateMagicLinkRequest,
937
+ ValidateMagicLinkRequest,
938
+ // Magic Link response types
939
+ CreateMagicLinkResponse,
940
+ ValidateMagicLinkResponse
689
941
  } from '@aacigroup/aaci_shared/server';
690
942
 
691
943
  import {
692
944
  validateTrackLeadParams,
693
945
  validateAddress,
694
- safeValidateTrackLeadAndAddress
946
+ safeValidateTrackLeadAndAddress,
947
+ // Magic Link server-side validation (validates project_name is required)
948
+ validateCreateMagicLinkRequest,
949
+ validateValidateMagicLinkRequest,
950
+ safeValidateCreateMagicLinkRequest,
951
+ safeValidateValidateMagicLinkRequest
695
952
  } from '@aacigroup/aaci_shared/server';
696
953
 
697
954
  // Validate data in API routes, edge functions, etc.
@@ -707,16 +964,44 @@ export function POST(request: Request) {
707
964
  }
708
965
  }
709
966
 
967
+ // Validate magic link request server-side (requires project_name)
968
+ export function createMagicLinkHandler(request: Request) {
969
+ const data = await request.json();
970
+
971
+ try {
972
+ const validRequest = validateCreateMagicLinkRequest(data);
973
+ // validRequest has required project_name and optional session_data
974
+ // Forward to AACI Backoffice...
975
+ } catch (error) {
976
+ return new Response('Invalid magic link request', { status: 400 });
977
+ }
978
+ }
979
+
710
980
  // Use types for TypeScript development
711
981
  function processServerLead(lead: TrackLeadParams): void {
712
982
  console.log(`Processing ${lead.lead_type} lead for ${lead.email}`);
713
983
  }
714
984
  ```
715
985
 
986
+ ### Server-Side Magic Link Types
987
+
988
+ The library provides separate types for client-side and server-side usage:
989
+
990
+ | Type | Usage | `project_name` | `session_data` |
991
+ |------|-------|----------------|----------------|
992
+ | `CreateMagicLinkParams` | Client (React apps) | Not included | Not included |
993
+ | `CreateMagicLinkRequest` | Server (API handlers) | **Required** | Optional |
994
+ | `ValidateMagicLinkParams` | Client (React apps) | Not included | Not included |
995
+ | `ValidateMagicLinkRequest` | Server (API handlers) | **Required** | Optional |
996
+
997
+ **Client-side**: Use `CreateMagicLinkParams` and `ValidateMagicLinkParams`. The `MagicLink` class automatically adds `project_name` from config and `session_data` from browser.
998
+
999
+ **Server-side**: Use `CreateMagicLinkRequest` and `ValidateMagicLinkRequest` to validate incoming API requests where `project_name` must be explicitly provided.
1000
+
716
1001
  **Server import includes:**
717
- - ✅ All TypeScript types
718
- - ✅ All validation functions and schemas
719
- - ❌ No browser dependencies (PostHog, LeadTracker, React Context)
1002
+ - ✅ All TypeScript types (including Magic Link client and server types)
1003
+ - ✅ All validation functions and schemas (client and server)
1004
+ - ❌ No browser dependencies (PostHog, LeadTracker, MagicLink, React Context)
720
1005
  - ❌ No DOM manipulation or localStorage
721
1006
 
722
1007
  ## Troubleshooting
@@ -12,12 +12,5 @@ export declare class LeadTracker {
12
12
  private saveLead;
13
13
  private saveAddress;
14
14
  getSessionData(): SessionData;
15
- private parseUserAgent;
16
- private getUrlParam;
17
- private getCookie;
18
- private getOrCreateSessionId;
19
- private getOrCreateDistinctId;
20
- private getStoredValue;
21
- private storeValue;
22
15
  }
23
16
  //# sourceMappingURL=LeadTracker.d.ts.map
@@ -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;IACjC,OAAO,CAAC,UAAU,CAAU;gBAEhB,MAAM,EAAE,iBAAiB;IAOrC,OAAO,CAAC,cAAc;IAqCf,YAAY,IAAI,OAAO;IAOjB,mBAAmB,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoHnG,YAAY,IAAI,eAAe,GAAG,IAAI;IAUtC,eAAe,IAAI,OAAO,GAAG,IAAI;IAUxC,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,WAAW;IAaZ,cAAc,IAAI,WAAW;IAiEpC,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":"AAEA,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;IACjC,OAAO,CAAC,UAAU,CAAU;gBAEhB,MAAM,EAAE,iBAAiB;IAOrC,OAAO,CAAC,cAAc;IAqCf,YAAY,IAAI,OAAO;IAOjB,mBAAmB,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoHnG,YAAY,IAAI,eAAe,GAAG,IAAI;IAUtC,eAAe,IAAI,OAAO,GAAG,IAAI;IAUxC,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,WAAW;IAaZ,cAAc,IAAI,WAAW;CAGrC"}
@@ -1,4 +1,5 @@
1
1
  import { Environment } from './Environment';
2
+ import { getSessionData } from './sessionData';
2
3
  export class LeadTracker {
3
4
  constructor(config) {
4
5
  this.config = config;
@@ -168,175 +169,7 @@ export class LeadTracker {
168
169
  }
169
170
  }
170
171
  getSessionData() {
171
- if (typeof window === 'undefined') {
172
- return {};
173
- }
174
- const ua = navigator.userAgent;
175
- const parsedUA = this.parseUserAgent(ua);
176
- const sessionData = {
177
- user_agent: ua,
178
- browser: parsedUA.browser,
179
- browser_version: parsedUA.browserVersion,
180
- os: parsedUA.os,
181
- device: parsedUA.device,
182
- landing_page: sessionStorage.getItem('landing_page') || window.location.href,
183
- current_page: window.location.href,
184
- session_id: this.getOrCreateSessionId(),
185
- timestamp: new Date().toISOString(),
186
- distinct_id: this.getOrCreateDistinctId(),
187
- };
188
- sessionData.is_internal = this.isInternal;
189
- const referrer = document.referrer;
190
- if (referrer)
191
- sessionData.referrer = referrer;
192
- const utmSource = this.getUrlParam('utm_source');
193
- if (utmSource)
194
- sessionData.utm_source = utmSource;
195
- const utmMedium = this.getUrlParam('utm_medium');
196
- if (utmMedium)
197
- sessionData.utm_medium = utmMedium;
198
- const utmCampaign = this.getUrlParam('utm_campaign');
199
- if (utmCampaign)
200
- sessionData.utm_campaign = utmCampaign;
201
- const gclid = this.getUrlParam('gclid') || this.getStoredValue('aaci_gclid');
202
- if (gclid) {
203
- sessionData.gclid = gclid;
204
- if (this.getUrlParam('gclid')) {
205
- this.storeValue('aaci_gclid', gclid);
206
- }
207
- }
208
- const fbclid = this.getUrlParam('fbclid') || this.getStoredValue('aaci_fbclid');
209
- if (fbclid) {
210
- sessionData.fbclid = fbclid;
211
- if (this.getUrlParam('fbclid')) {
212
- this.storeValue('aaci_fbclid', fbclid);
213
- }
214
- }
215
- const fbc = this.getCookie('_fbc');
216
- if (fbc)
217
- sessionData.fbc = fbc;
218
- const fbp = this.getCookie('_fbp');
219
- if (fbp)
220
- sessionData.fbp = fbp;
221
- return sessionData;
222
- }
223
- parseUserAgent(ua) {
224
- var _a, _b, _c, _d;
225
- try {
226
- let browser = 'Unknown';
227
- let browserVersion = '';
228
- if (ua.includes('Firefox/')) {
229
- browser = 'Firefox';
230
- browserVersion = ((_a = ua.match(/Firefox\/([0-9.]+)/)) === null || _a === void 0 ? void 0 : _a[1]) || '';
231
- }
232
- else if (ua.includes('Chrome/') && !ua.includes('Edg')) {
233
- browser = 'Chrome';
234
- browserVersion = ((_b = ua.match(/Chrome\/([0-9.]+)/)) === null || _b === void 0 ? void 0 : _b[1]) || '';
235
- }
236
- else if (ua.includes('Safari/') && !ua.includes('Chrome')) {
237
- browser = 'Safari';
238
- browserVersion = ((_c = ua.match(/Version\/([0-9.]+)/)) === null || _c === void 0 ? void 0 : _c[1]) || '';
239
- }
240
- else if (ua.includes('Edg/')) {
241
- browser = 'Edge';
242
- browserVersion = ((_d = ua.match(/Edg\/([0-9.]+)/)) === null || _d === void 0 ? void 0 : _d[1]) || '';
243
- }
244
- let os = 'Unknown';
245
- if (ua.includes('Windows NT')) {
246
- os = 'Windows';
247
- }
248
- else if (ua.includes('Mac OS X')) {
249
- os = 'macOS';
250
- }
251
- else if (ua.includes('Linux')) {
252
- os = 'Linux';
253
- }
254
- else if (ua.includes('Android')) {
255
- os = 'Android';
256
- }
257
- else if (ua.includes('iPhone') || ua.includes('iPad')) {
258
- os = 'iOS';
259
- }
260
- let device = 'Desktop';
261
- if (ua.includes('Mobile') || ua.includes('Android')) {
262
- device = 'Mobile';
263
- }
264
- else if (ua.includes('Tablet') || ua.includes('iPad')) {
265
- device = 'Tablet';
266
- }
267
- return { browser, browserVersion, os, device };
268
- }
269
- catch (error) {
270
- return { browser: 'Unknown', browserVersion: '', os: 'Unknown', device: 'Unknown' };
271
- }
272
- }
273
- getUrlParam(param) {
274
- if (typeof window === 'undefined')
275
- return undefined;
276
- const urlParams = new URLSearchParams(window.location.search);
277
- return urlParams.get(param) || undefined;
278
- }
279
- getCookie(name) {
280
- var _a;
281
- if (typeof document === 'undefined')
282
- return undefined;
283
- const value = `; ${document.cookie}`;
284
- const parts = value.split(`; ${name}=`);
285
- if (parts.length === 2)
286
- return (_a = parts.pop()) === null || _a === void 0 ? void 0 : _a.split(';').shift();
287
- return undefined;
288
- }
289
- getOrCreateSessionId() {
290
- if (typeof sessionStorage === 'undefined')
291
- return '';
292
- let sessionId = sessionStorage.getItem('aaci_session_id');
293
- if (!sessionId) {
294
- sessionId = 'sess_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);
295
- sessionStorage.setItem('aaci_session_id', sessionId);
296
- }
297
- return sessionId;
298
- }
299
- getOrCreateDistinctId() {
300
- if (typeof localStorage === 'undefined')
301
- return '';
302
- if (typeof window !== 'undefined' && window.posthog) {
303
- try {
304
- const posthogDistinctId = window.posthog.get_distinct_id();
305
- if (posthogDistinctId) {
306
- localStorage.setItem('aaci_distinct_id', posthogDistinctId);
307
- return posthogDistinctId;
308
- }
309
- }
310
- catch (error) {
311
- console.warn('[Lead Tracker] Could not get PostHog distinct_id:', error);
312
- }
313
- }
314
- let distinctId = localStorage.getItem('aaci_distinct_id');
315
- if (!distinctId) {
316
- distinctId = 'user_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);
317
- localStorage.setItem('aaci_distinct_id', distinctId);
318
- }
319
- return distinctId;
320
- }
321
- getStoredValue(key) {
322
- if (typeof localStorage === 'undefined')
323
- return null;
324
- try {
325
- return localStorage.getItem(key);
326
- }
327
- catch {
328
- return null;
329
- }
330
- }
331
- storeValue(key, value) {
332
- if (typeof localStorage === 'undefined')
333
- return;
334
- try {
335
- localStorage.setItem(key, value);
336
- }
337
- catch (error) {
338
- console.warn(`[Lead Tracker] Failed to store ${key}:`, error);
339
- }
172
+ return getSessionData({ isInternal: this.isInternal });
340
173
  }
341
174
  }
342
175
  //# sourceMappingURL=LeadTracker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LeadTracker.js","sourceRoot":"","sources":["../src/LeadTracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LeadTracker.js","sourceRoot":"","sources":["../src/LeadTracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { MagicLinkConfig, CreateMagicLinkParams, ValidateMagicLinkParams, CreateMagicLinkResponse, ValidateMagicLinkResponse, SessionData } from './types';
2
+ export declare class MagicLink {
3
+ private config;
4
+ constructor(config: MagicLinkConfig);
5
+ private validateConfig;
6
+ getSessionData(): SessionData;
7
+ createMagicLink(params: CreateMagicLinkParams): Promise<CreateMagicLinkResponse>;
8
+ validateMagicLink(params: ValidateMagicLinkParams): Promise<ValidateMagicLinkResponse>;
9
+ }
10
+ //# sourceMappingURL=MagicLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MagicLink.d.ts","sourceRoot":"","sources":["../src/MagicLink.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,eAAe;IAKnC,OAAO,CAAC,cAAc;IAqBf,cAAc,IAAI,WAAW;IAUvB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA2EhF,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAyDpG"}