crexperium-sdk 1.1.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 (49) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +482 -0
  3. package/dist/browser.js +2 -0
  4. package/dist/browser.js.map +1 -0
  5. package/dist/client.d.ts +55 -0
  6. package/dist/client.d.ts.map +1 -0
  7. package/dist/config.d.ts +30 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/errors.d.ts +47 -0
  10. package/dist/errors.d.ts.map +1 -0
  11. package/dist/index.d.ts +18 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +13850 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/index.mjs +13823 -0
  16. package/dist/index.mjs.map +1 -0
  17. package/dist/plugins/auto-page-view.d.ts +21 -0
  18. package/dist/plugins/auto-page-view.d.ts.map +1 -0
  19. package/dist/plugins/device-info.d.ts +30 -0
  20. package/dist/plugins/device-info.d.ts.map +1 -0
  21. package/dist/plugins/session-replay.d.ts +106 -0
  22. package/dist/plugins/visitor-id.d.ts +29 -0
  23. package/dist/plugins/visitor-id.d.ts.map +1 -0
  24. package/dist/resources/base.d.ts +20 -0
  25. package/dist/resources/base.d.ts.map +1 -0
  26. package/dist/resources/contacts.d.ts +31 -0
  27. package/dist/resources/contacts.d.ts.map +1 -0
  28. package/dist/resources/deals.d.ts +31 -0
  29. package/dist/resources/deals.d.ts.map +1 -0
  30. package/dist/resources/events.d.ts +27 -0
  31. package/dist/resources/events.d.ts.map +1 -0
  32. package/dist/types/common.d.ts +20 -0
  33. package/dist/types/common.d.ts.map +1 -0
  34. package/dist/types/contacts.d.ts +78 -0
  35. package/dist/types/contacts.d.ts.map +1 -0
  36. package/dist/types/deals.d.ts +71 -0
  37. package/dist/types/deals.d.ts.map +1 -0
  38. package/dist/types/events.d.ts +76 -0
  39. package/dist/types/events.d.ts.map +1 -0
  40. package/dist/types/index.d.ts +8 -0
  41. package/dist/types/index.d.ts.map +1 -0
  42. package/dist/types/session-replay.d.ts +213 -0
  43. package/dist/utils/device.d.ts +25 -0
  44. package/dist/utils/device.d.ts.map +1 -0
  45. package/dist/utils/http.d.ts +53 -0
  46. package/dist/utils/http.d.ts.map +1 -0
  47. package/dist/utils/storage.d.ts +23 -0
  48. package/dist/utils/storage.d.ts.map +1 -0
  49. package/package.json +73 -0
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Auto Page View Plugin - Automatically tracks page views including SPA navigation
3
+ */
4
+ import { Plugin } from './visitor-id';
5
+ export declare class AutoPageViewPlugin implements Plugin {
6
+ private client;
7
+ private previousUrl;
8
+ private originalPushState;
9
+ private originalReplaceState;
10
+ private popStateHandler;
11
+ constructor(client: any);
12
+ /**
13
+ * Track a page view
14
+ */
15
+ private trackPageView;
16
+ /**
17
+ * Initialize history tracking for SPAs
18
+ */
19
+ private initHistoryTracking;
20
+ destroy(): void;
21
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-page-view.d.ts","sourceRoot":"","sources":["../../src/plugins/auto-page-view.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,qBAAa,kBAAmB,YAAW,MAAM;IAC/C,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,oBAAoB,CAAM;IAClC,OAAO,CAAC,eAAe,CAAM;gBAEjB,MAAM,EAAE,GAAG;IAWvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAsCrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B,OAAO,IAAI,IAAI;CAmBhB"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Device Info Plugin - Provides device information
3
+ */
4
+ import { DeviceInfo } from '../utils/device';
5
+ import { Plugin } from './visitor-id';
6
+ export declare class DeviceInfoPlugin implements Plugin {
7
+ private deviceInfo;
8
+ constructor();
9
+ /**
10
+ * Get device information
11
+ */
12
+ getDeviceInfo(): DeviceInfo;
13
+ /**
14
+ * Get device type
15
+ */
16
+ getDeviceType(): string;
17
+ /**
18
+ * Get browser name
19
+ */
20
+ getBrowser(): string;
21
+ /**
22
+ * Get operating system
23
+ */
24
+ getOS(): string;
25
+ /**
26
+ * Get user agent
27
+ */
28
+ getUserAgent(): string;
29
+ destroy(): void;
30
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-info.d.ts","sourceRoot":"","sources":["../../src/plugins/device-info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAiB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,OAAO,CAAC,UAAU,CAAa;;IAM/B;;OAEG;IACH,aAAa,IAAI,UAAU;IAI3B;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Session Replay Plugin
3
+ * Integrates rrweb for DOM recording and captures comprehensive telemetry
4
+ */
5
+ import type { CRMClient } from '../client';
6
+ import { SessionReplayConfig, SessionReplaySession, CustomEventOptions } from '../types/session-replay';
7
+ export declare class SessionReplayPlugin {
8
+ private client;
9
+ private config;
10
+ private session;
11
+ private eventBuffer;
12
+ private telemetryBuffer;
13
+ private stopRecording?;
14
+ private flushIntervalId?;
15
+ private sessionStartTime?;
16
+ private originalConsoleMethods;
17
+ private originalFetch?;
18
+ private originalXHROpen?;
19
+ private originalXHRSend?;
20
+ private isRecording;
21
+ constructor(client: CRMClient, config?: SessionReplayConfig);
22
+ /**
23
+ * Apply default configuration
24
+ */
25
+ private applyDefaults;
26
+ /**
27
+ * Determine if this session should be recorded based on sample rate
28
+ */
29
+ private shouldRecordSession;
30
+ /**
31
+ * Initialize the session replay plugin
32
+ */
33
+ private init;
34
+ /**
35
+ * Start a new session on the backend
36
+ */
37
+ private startSession;
38
+ /**
39
+ * Start rrweb recording
40
+ */
41
+ private startRrwebRecording;
42
+ /**
43
+ * Intercept console methods
44
+ */
45
+ private interceptConsole;
46
+ /**
47
+ * Intercept network requests
48
+ */
49
+ private interceptNetwork;
50
+ /**
51
+ * Capture JavaScript errors
52
+ */
53
+ private captureErrors;
54
+ /**
55
+ * Capture performance metrics
56
+ */
57
+ private capturePerformance;
58
+ /**
59
+ * Get performance rating
60
+ */
61
+ private getRating;
62
+ /**
63
+ * Add telemetry event to buffer
64
+ */
65
+ private addTelemetryEvent;
66
+ /**
67
+ * Get offset in milliseconds from session start
68
+ */
69
+ private getOffsetMs;
70
+ /**
71
+ * Serialize a value for logging
72
+ */
73
+ private serializeValue;
74
+ /**
75
+ * Mask PII in text
76
+ */
77
+ private maskPII;
78
+ /**
79
+ * Start periodic flushing
80
+ */
81
+ private startFlushInterval;
82
+ /**
83
+ * Flush buffered events to backend
84
+ */
85
+ flush(): Promise<void>;
86
+ /**
87
+ * Set up unload handler
88
+ */
89
+ private setupUnloadHandler;
90
+ /**
91
+ * Stop recording and end session
92
+ */
93
+ stop(): Promise<void>;
94
+ /**
95
+ * Log a custom event
96
+ */
97
+ logCustomEvent(options: CustomEventOptions): void;
98
+ /**
99
+ * Get current session
100
+ */
101
+ getSession(): SessionReplaySession | null;
102
+ /**
103
+ * Destroy plugin and restore original methods
104
+ */
105
+ destroy(): void;
106
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Visitor ID Plugin - Manages persistent visitor identification
3
+ */
4
+ import { Config } from '../config';
5
+ export interface Plugin {
6
+ destroy?(): void;
7
+ }
8
+ export declare class VisitorIdPlugin implements Plugin {
9
+ private config;
10
+ private visitorId;
11
+ constructor(config: Config);
12
+ /**
13
+ * Get or create a visitor ID
14
+ */
15
+ private getOrCreateVisitorId;
16
+ /**
17
+ * Get the current visitor ID
18
+ */
19
+ getVisitorId(): string;
20
+ /**
21
+ * Set a new visitor ID
22
+ */
23
+ setVisitorId(id: string): void;
24
+ /**
25
+ * Reset the visitor ID (generate a new one)
26
+ */
27
+ resetVisitorId(): string;
28
+ destroy(): void;
29
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visitor-id.d.ts","sourceRoot":"","sources":["../../src/plugins/visitor-id.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,MAAM,WAAW,MAAM;IACrB,OAAO,CAAC,IAAI,IAAI,CAAC;CAClB;AAED,qBAAa,eAAgB,YAAW,MAAM;IAC5C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,MAAM;IAK1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,cAAc,IAAI,MAAM;IAMxB,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Base resource class that all API resources extend
3
+ */
4
+ import { HTTPClient } from '../utils/http';
5
+ export declare abstract class BaseResource {
6
+ protected http: HTTPClient;
7
+ constructor(http: HTTPClient);
8
+ /**
9
+ * Remove null and undefined values from an object
10
+ */
11
+ protected cleanObject(obj: Record<string, any>): Record<string, any>;
12
+ /**
13
+ * Convert camelCase keys to snake_case for API requests
14
+ */
15
+ protected toSnakeCase(obj: Record<string, any>): Record<string, any>;
16
+ /**
17
+ * Convert snake_case keys to camelCase for SDK responses
18
+ */
19
+ protected toCamelCase(obj: Record<string, any>): Record<string, any>;
20
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/resources/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,8BAAsB,YAAY;IAChC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC;gBAEf,IAAI,EAAE,UAAU;IAI5B;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAiBpE;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAWpE;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAUrE"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Contacts resource for managing contacts/leads
3
+ */
4
+ import { BaseResource } from './base';
5
+ import { Contact, IdentifyOptions, IdentifyResponse, ContactFilters, CreateContactInput, PaginatedResponse } from '../types';
6
+ export declare class ContactsResource extends BaseResource {
7
+ /**
8
+ * Identify a contact (create or update)
9
+ */
10
+ identify(options: IdentifyOptions): Promise<IdentifyResponse>;
11
+ /**
12
+ * Create a new contact
13
+ */
14
+ create(data: CreateContactInput): Promise<Contact>;
15
+ /**
16
+ * Get a single contact by ID
17
+ */
18
+ get(contactId: string): Promise<Contact>;
19
+ /**
20
+ * Update a contact
21
+ */
22
+ update(contactId: string, data: Partial<CreateContactInput>): Promise<Contact>;
23
+ /**
24
+ * List contacts with optional filters
25
+ */
26
+ list(filters?: ContactFilters): Promise<PaginatedResponse<Contact>>;
27
+ /**
28
+ * Delete a contact
29
+ */
30
+ delete(contactId: string): Promise<void>;
31
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/resources/contacts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EACL,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAElB,qBAAa,gBAAiB,SAAQ,YAAY;IAChD;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IASnE;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IASxD;;OAEG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ9C;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IASpF;;OAEG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAKzE;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAO/C"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Deals resource for managing sales pipeline deals
3
+ */
4
+ import { BaseResource } from './base';
5
+ import { Deal, CreateDealOptions, UpdateDealInput, DealFilters, MoveStageResponse, PaginatedResponse } from '../types';
6
+ export declare class DealsResource extends BaseResource {
7
+ /**
8
+ * Create a new deal
9
+ */
10
+ create(options: CreateDealOptions): Promise<Deal>;
11
+ /**
12
+ * Get a single deal by ID
13
+ */
14
+ get(dealId: string): Promise<Deal>;
15
+ /**
16
+ * Update a deal
17
+ */
18
+ update(dealId: string, data: UpdateDealInput): Promise<Deal>;
19
+ /**
20
+ * Move a deal to a different pipeline stage
21
+ */
22
+ moveStage(dealId: string, stageId: string): Promise<MoveStageResponse>;
23
+ /**
24
+ * List deals with optional filters
25
+ */
26
+ list(filters?: DealFilters): Promise<PaginatedResponse<Deal>>;
27
+ /**
28
+ * Delete a deal
29
+ */
30
+ delete(dealId: string): Promise<void>;
31
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deals.d.ts","sourceRoot":"","sources":["../../src/resources/deals.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EACL,IAAI,EACJ,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAElB,qBAAa,aAAc,SAAQ,YAAY;IAC7C;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IASvD;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxC;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IASlE;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAc5E;;OAEG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAKnE;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAO5C"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Events resource for tracking and managing events
3
+ */
4
+ import { BaseResource } from './base';
5
+ import { Event, TrackEventOptions, EventFilters, BatchTrackResult, EventStats, PaginatedResponse } from '../types';
6
+ export declare class EventsResource extends BaseResource {
7
+ /**
8
+ * Track a single event
9
+ */
10
+ track(options: TrackEventOptions): Promise<Event>;
11
+ /**
12
+ * Track multiple events in a batch
13
+ */
14
+ trackBatch(events: TrackEventOptions[]): Promise<BatchTrackResult>;
15
+ /**
16
+ * Get a single event by ID
17
+ */
18
+ get(eventId: string): Promise<Event>;
19
+ /**
20
+ * List events with optional filters
21
+ */
22
+ list(filters?: EventFilters): Promise<PaginatedResponse<Event>>;
23
+ /**
24
+ * Get event statistics
25
+ */
26
+ stats(days?: number): Promise<EventStats>;
27
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/resources/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EACL,KAAK,EACL,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAElB,qBAAa,cAAe,SAAQ,YAAY;IAC9C;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IAYvD;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiBxE;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAQ1C;;OAEG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAKrE;;OAEG;IACG,KAAK,CAAC,IAAI,GAAE,MAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAOpD"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Common types used across the SDK
3
+ */
4
+ export interface PaginatedResponse<T> {
5
+ count: number;
6
+ next: string | null;
7
+ previous: string | null;
8
+ results: T[];
9
+ }
10
+ export interface ApiResponse<T> {
11
+ data: T;
12
+ }
13
+ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
14
+ export interface RequestOptions {
15
+ method?: HttpMethod;
16
+ headers?: Record<string, string>;
17
+ params?: Record<string, any>;
18
+ data?: any;
19
+ timeout?: number;
20
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,CAAC,EAAE,CAAC;CACd;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC;CACT;AAED,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Contact-related types
3
+ */
4
+ export interface Contact {
5
+ id: string;
6
+ organization: string;
7
+ external_id?: string;
8
+ email?: string;
9
+ first_name?: string;
10
+ last_name?: string;
11
+ phone?: string;
12
+ title?: string;
13
+ company?: string;
14
+ website?: string;
15
+ address?: string;
16
+ city?: string;
17
+ state?: string;
18
+ country?: string;
19
+ postal_code?: string;
20
+ lead_score?: number;
21
+ lifecycle_stage?: string;
22
+ tags?: string[];
23
+ custom_fields?: Record<string, any>;
24
+ created_at: string;
25
+ updated_at: string;
26
+ last_activity_at?: string;
27
+ }
28
+ export interface IdentifyOptions {
29
+ externalId: string;
30
+ email?: string;
31
+ firstName?: string;
32
+ lastName?: string;
33
+ phone?: string;
34
+ title?: string;
35
+ company?: string;
36
+ website?: string;
37
+ address?: string;
38
+ city?: string;
39
+ state?: string;
40
+ country?: string;
41
+ postalCode?: string;
42
+ leadScore?: number;
43
+ lifecycleStage?: string;
44
+ tags?: string[];
45
+ customFields?: Record<string, any>;
46
+ }
47
+ export interface IdentifyResponse {
48
+ contact: Contact;
49
+ created: boolean;
50
+ }
51
+ export interface ContactFilters {
52
+ external_id?: string;
53
+ email?: string;
54
+ lifecycle_stage?: string;
55
+ tags?: string[];
56
+ search?: string;
57
+ limit?: number;
58
+ offset?: number;
59
+ }
60
+ export interface CreateContactInput {
61
+ external_id?: string;
62
+ email?: string;
63
+ first_name?: string;
64
+ last_name?: string;
65
+ phone?: string;
66
+ title?: string;
67
+ company?: string;
68
+ website?: string;
69
+ address?: string;
70
+ city?: string;
71
+ state?: string;
72
+ country?: string;
73
+ postal_code?: string;
74
+ lead_score?: number;
75
+ lifecycle_stage?: string;
76
+ tags?: string[];
77
+ custom_fields?: Record<string, any>;
78
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/types/contacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Deal-related types
3
+ */
4
+ export type DealPriority = 'LOW' | 'MEDIUM' | 'HIGH';
5
+ export type DealStatus = 'OPEN' | 'WON' | 'LOST';
6
+ export interface Deal {
7
+ id: string;
8
+ organization: string;
9
+ name: string;
10
+ amount?: number;
11
+ currency?: string;
12
+ priority: DealPriority;
13
+ status: DealStatus;
14
+ contact?: string | null;
15
+ contact_name?: string;
16
+ pipeline?: string;
17
+ pipeline_stage?: string;
18
+ pipeline_stage_name?: string;
19
+ expected_close_date?: string;
20
+ closed_at?: string;
21
+ probability?: number;
22
+ description?: string;
23
+ custom_fields?: Record<string, any>;
24
+ created_at: string;
25
+ updated_at: string;
26
+ created_by?: string;
27
+ created_by_name?: string;
28
+ }
29
+ export interface CreateDealOptions {
30
+ name: string;
31
+ amount?: number;
32
+ currency?: string;
33
+ priority?: DealPriority;
34
+ contactId?: string;
35
+ contactEmail?: string;
36
+ contactExternalId?: string;
37
+ pipelineStage?: string;
38
+ expectedCloseDate?: Date | string;
39
+ probability?: number;
40
+ description?: string;
41
+ customFields?: Record<string, any>;
42
+ }
43
+ export interface UpdateDealInput {
44
+ name?: string;
45
+ amount?: number;
46
+ currency?: string;
47
+ priority?: DealPriority;
48
+ status?: DealStatus;
49
+ contact?: string;
50
+ pipeline_stage?: string;
51
+ expected_close_date?: string;
52
+ closed_at?: string;
53
+ probability?: number;
54
+ description?: string;
55
+ custom_fields?: Record<string, any>;
56
+ }
57
+ export interface DealFilters {
58
+ status?: DealStatus;
59
+ priority?: DealPriority;
60
+ contact?: string;
61
+ pipeline?: string;
62
+ pipeline_stage?: string;
63
+ search?: string;
64
+ limit?: number;
65
+ offset?: number;
66
+ }
67
+ export interface MoveStageResponse {
68
+ deal: Deal;
69
+ previous_stage: string;
70
+ new_stage: string;
71
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deals.d.ts","sourceRoot":"","sources":["../../src/types/deals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Event-related types
3
+ */
4
+ export interface Event {
5
+ id: string;
6
+ organization: string;
7
+ event_definition: string;
8
+ event_name?: string;
9
+ event_key: string;
10
+ visitor_id?: string;
11
+ contact?: string | null;
12
+ contact_name?: string;
13
+ event_data: Record<string, any>;
14
+ user_properties?: Record<string, any>;
15
+ page_url?: string;
16
+ page_title?: string;
17
+ referrer?: string;
18
+ ip_address?: string;
19
+ user_agent?: string;
20
+ device_type?: string;
21
+ browser?: string;
22
+ os?: string;
23
+ country?: string;
24
+ city?: string;
25
+ event_time: string;
26
+ created_at: string;
27
+ source?: 'web' | 'mobile' | 'server';
28
+ sdk_version?: string;
29
+ }
30
+ export interface TrackEventOptions {
31
+ eventKey: string;
32
+ visitorId?: string;
33
+ userProperties?: Record<string, any>;
34
+ eventData?: Record<string, any>;
35
+ pageUrl?: string;
36
+ pageTitle?: string;
37
+ referrer?: string;
38
+ userAgent?: string;
39
+ deviceType?: string;
40
+ browser?: string;
41
+ os?: string;
42
+ country?: string;
43
+ city?: string;
44
+ eventTime?: Date | string;
45
+ source?: 'web' | 'mobile' | 'server';
46
+ }
47
+ export interface EventFilters {
48
+ event_key?: string;
49
+ visitor_id?: string;
50
+ contact?: string;
51
+ start_date?: string;
52
+ end_date?: string;
53
+ source?: string;
54
+ limit?: number;
55
+ offset?: number;
56
+ }
57
+ export interface BatchTrackResult {
58
+ success: boolean;
59
+ created: number;
60
+ errors?: Array<{
61
+ index: number;
62
+ error: string;
63
+ }>;
64
+ }
65
+ export interface EventStats {
66
+ total_events: number;
67
+ unique_visitors: number;
68
+ events_by_day: Array<{
69
+ date: string;
70
+ count: number;
71
+ }>;
72
+ top_events: Array<{
73
+ event_key: string;
74
+ count: number;
75
+ }>;
76
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Type definitions for Crexperium SDK
3
+ */
4
+ export * from './common';
5
+ export * from './events';
6
+ export * from './contacts';
7
+ export * from './deals';
8
+ export * from './session-replay';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}