userpath-js 0.0.0 → 0.0.2
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 +609 -0
- package/dist/index.js +1 -0
- package/dist/server/index.js +1 -0
- package/dist/types/client/src/base/api.d.ts +12 -0
- package/dist/types/client/src/base/api.d.ts.map +1 -0
- package/dist/types/client/src/base/events.d.ts +184 -0
- package/dist/types/client/src/base/events.d.ts.map +1 -0
- package/dist/types/client/src/base/session.d.ts +68 -0
- package/dist/types/client/src/base/session.d.ts.map +1 -0
- package/dist/types/client/src/index.d.ts +57 -0
- package/dist/types/client/src/index.d.ts.map +1 -0
- package/dist/types/client/src/pixel.d.ts +2 -0
- package/dist/types/client/src/pixel.d.ts.map +1 -0
- package/dist/types/client/src/schemas/config.d.ts +32 -0
- package/dist/types/client/src/schemas/config.d.ts.map +1 -0
- package/dist/types/client/src/schemas/events.d.ts +58 -0
- package/dist/types/client/src/schemas/events.d.ts.map +1 -0
- package/dist/types/client/src/schemas/identity.d.ts +7 -0
- package/dist/types/client/src/schemas/identity.d.ts.map +1 -0
- package/dist/types/client/src/server/index.d.ts +42 -0
- package/dist/types/client/src/server/index.d.ts.map +1 -0
- package/dist/types/core/src/browser/index.d.ts +4 -0
- package/dist/types/core/src/browser/index.d.ts.map +1 -0
- package/dist/types/core/src/browser/libs/LocalStorage.d.ts +11 -0
- package/dist/types/core/src/browser/libs/LocalStorage.d.ts.map +1 -0
- package/dist/types/core/src/browser/libs/cookie.d.ts +27 -0
- package/dist/types/core/src/browser/libs/cookie.d.ts.map +1 -0
- package/dist/types/core/src/browser/libs/memory.d.ts +4 -0
- package/dist/types/core/src/browser/libs/memory.d.ts.map +1 -0
- package/dist/types/src/base/api.d.ts +12 -0
- package/dist/types/src/base/api.d.ts.map +1 -0
- package/dist/types/src/base/events.d.ts +184 -0
- package/dist/types/src/base/events.d.ts.map +1 -0
- package/dist/types/src/base/session.d.ts +64 -0
- package/dist/types/src/base/session.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +57 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/pixel.d.ts +2 -0
- package/dist/types/src/pixel.d.ts.map +1 -0
- package/dist/types/src/schemas/config.d.ts +32 -0
- package/dist/types/src/schemas/config.d.ts.map +1 -0
- package/dist/types/src/schemas/events.d.ts +58 -0
- package/dist/types/src/schemas/events.d.ts.map +1 -0
- package/dist/types/src/schemas/identity.d.ts +7 -0
- package/dist/types/src/schemas/identity.d.ts.map +1 -0
- package/dist/types/src/server/index.d.ts +42 -0
- package/dist/types/src/server/index.d.ts.map +1 -0
- package/package.json +25 -4
- package/dist/pixel.js +0 -1
- package/examples/usage.ts +0 -83
- package/src/clients/api.ts +0 -92
- package/src/clients/events.ts +0 -55
- package/src/clients/identity.ts +0 -54
- package/src/clients/session.ts +0 -47
- package/src/index.ts +0 -72
- package/src/pixel.ts +0 -28
- package/src/schemas/config.ts +0 -4
- package/src/schemas/events.ts +0 -31
- package/src/schemas/identity.ts +0 -6
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { Config } from '../schemas/config';
|
|
2
|
+
import { SessionClient } from './session';
|
|
3
|
+
/**
|
|
4
|
+
* Session client for managing user sessions and automatic tracking
|
|
5
|
+
*/
|
|
6
|
+
export declare class EventsClient {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(session: SessionClient, config?: Config);
|
|
9
|
+
destroy(): void;
|
|
10
|
+
/**
|
|
11
|
+
* Set up automatic click event tracking
|
|
12
|
+
*/
|
|
13
|
+
private setupClickTracking;
|
|
14
|
+
/**
|
|
15
|
+
* Handle click events
|
|
16
|
+
*/
|
|
17
|
+
private handleClick;
|
|
18
|
+
/**
|
|
19
|
+
* Handle scroll and resize events
|
|
20
|
+
*/
|
|
21
|
+
private handleScroll;
|
|
22
|
+
/**
|
|
23
|
+
* Set up automatic scroll event tracking
|
|
24
|
+
*/
|
|
25
|
+
private setupScrollTracking;
|
|
26
|
+
/**
|
|
27
|
+
* Calculate the current scroll depth as a percentage
|
|
28
|
+
*/
|
|
29
|
+
private calculateScrollDepth;
|
|
30
|
+
/**
|
|
31
|
+
* Check and track scroll depth milestones
|
|
32
|
+
*/
|
|
33
|
+
private checkAndTrackScrollDepth;
|
|
34
|
+
/**
|
|
35
|
+
* Extract a meaningful label from a clicked element
|
|
36
|
+
*/
|
|
37
|
+
private extractClickLabel;
|
|
38
|
+
/**
|
|
39
|
+
* Find the label text for an input element
|
|
40
|
+
*/
|
|
41
|
+
private findInputLabel;
|
|
42
|
+
/**
|
|
43
|
+
* Track a page view event
|
|
44
|
+
*/
|
|
45
|
+
trackPageView(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Track a custom event
|
|
48
|
+
*/
|
|
49
|
+
trackCustomEvent(name: string, properties?: Record<string, any>, options?: {
|
|
50
|
+
immediate: boolean;
|
|
51
|
+
}): void;
|
|
52
|
+
/**
|
|
53
|
+
* Track a purchase event
|
|
54
|
+
*/
|
|
55
|
+
trackPurchase(params: {
|
|
56
|
+
productId: string;
|
|
57
|
+
price: number;
|
|
58
|
+
currency: string;
|
|
59
|
+
properties?: Record<string, any>;
|
|
60
|
+
}): void;
|
|
61
|
+
/**
|
|
62
|
+
* Set up automatic form input tracking
|
|
63
|
+
*/
|
|
64
|
+
private setupFormTracking;
|
|
65
|
+
/**
|
|
66
|
+
* Handle input focus events
|
|
67
|
+
*/
|
|
68
|
+
private handleInputFocus;
|
|
69
|
+
/**
|
|
70
|
+
* Get the current value of an input element
|
|
71
|
+
*/
|
|
72
|
+
private getElementValue;
|
|
73
|
+
/**
|
|
74
|
+
* Handle input blur events
|
|
75
|
+
*/
|
|
76
|
+
private handleInputBlur;
|
|
77
|
+
/**
|
|
78
|
+
* Get a meaningful identifier for the form if available
|
|
79
|
+
*/
|
|
80
|
+
private getFormName;
|
|
81
|
+
/**
|
|
82
|
+
* Get an identifier for an input when no label is found
|
|
83
|
+
*/
|
|
84
|
+
private getInputIdentifier;
|
|
85
|
+
/**
|
|
86
|
+
* Find the label text for a form element
|
|
87
|
+
*/
|
|
88
|
+
private findFormElementLabel;
|
|
89
|
+
/**
|
|
90
|
+
* Handle form change events (select, radio, checkbox)
|
|
91
|
+
*/
|
|
92
|
+
private handleFormChange;
|
|
93
|
+
/**
|
|
94
|
+
* Track select element changes
|
|
95
|
+
*/
|
|
96
|
+
private trackSelectChange;
|
|
97
|
+
/**
|
|
98
|
+
* Track radio button changes
|
|
99
|
+
*/
|
|
100
|
+
private trackRadioChange;
|
|
101
|
+
/**
|
|
102
|
+
* Track checkbox changes
|
|
103
|
+
*/
|
|
104
|
+
private trackCheckboxChange;
|
|
105
|
+
/**
|
|
106
|
+
* Track range input changes
|
|
107
|
+
*/
|
|
108
|
+
private trackRangeChange;
|
|
109
|
+
/**
|
|
110
|
+
* Handle form submission events
|
|
111
|
+
*/
|
|
112
|
+
private handleFormSubmit;
|
|
113
|
+
/**
|
|
114
|
+
* Set up automatic video tracking
|
|
115
|
+
*/
|
|
116
|
+
private setupVideoTracking;
|
|
117
|
+
/**
|
|
118
|
+
* Get video metadata for tracking
|
|
119
|
+
*/
|
|
120
|
+
private getVideoMetadata;
|
|
121
|
+
/**
|
|
122
|
+
* Handle video play events
|
|
123
|
+
*/
|
|
124
|
+
private handleVideoPlay;
|
|
125
|
+
/**
|
|
126
|
+
* Handle video pause events
|
|
127
|
+
*/
|
|
128
|
+
private handleVideoPause;
|
|
129
|
+
/**
|
|
130
|
+
* Handle video end events
|
|
131
|
+
*/
|
|
132
|
+
private handleVideoEnd;
|
|
133
|
+
/**
|
|
134
|
+
* Set up page time tracking
|
|
135
|
+
*/
|
|
136
|
+
private setupPageTimeTracking;
|
|
137
|
+
/**
|
|
138
|
+
* Handle visibility change events (tab switch, minimize)
|
|
139
|
+
*/
|
|
140
|
+
private handleVisibilityChange;
|
|
141
|
+
/**
|
|
142
|
+
* Handle page unload events
|
|
143
|
+
*/
|
|
144
|
+
private handleBeforeUnload;
|
|
145
|
+
/**
|
|
146
|
+
* Set up inactivity tracking
|
|
147
|
+
*/
|
|
148
|
+
private setupInactivityTracking;
|
|
149
|
+
/**
|
|
150
|
+
* Handle user activity events
|
|
151
|
+
*/
|
|
152
|
+
private handleUserActivity;
|
|
153
|
+
/**
|
|
154
|
+
* Check for user inactivity
|
|
155
|
+
*/
|
|
156
|
+
private checkInactivity;
|
|
157
|
+
/**
|
|
158
|
+
* Install global error handlers
|
|
159
|
+
*/
|
|
160
|
+
installErrorHandler(): void;
|
|
161
|
+
/**
|
|
162
|
+
* Remove global error handlers
|
|
163
|
+
*/
|
|
164
|
+
uninstallErrorHandler(): void;
|
|
165
|
+
/**
|
|
166
|
+
* Get error handler installation state
|
|
167
|
+
*/
|
|
168
|
+
isErrorHandlerInstalled(): boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Handle uncaught errors
|
|
171
|
+
*/
|
|
172
|
+
private handleError;
|
|
173
|
+
/**
|
|
174
|
+
* Handle unhandled promise rejections
|
|
175
|
+
*/
|
|
176
|
+
private handleRejection;
|
|
177
|
+
/**
|
|
178
|
+
* Track an error event
|
|
179
|
+
*/
|
|
180
|
+
trackError(error: Error, properties?: Record<string, any>, options?: {
|
|
181
|
+
immediate: boolean;
|
|
182
|
+
}): void;
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../src/base/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAO3D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AA6D1C;;GAEG;AAEH,qBAAa,YAAY;;gBAoCZ,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,MAAuB;IAkE5D,OAAO,IAAI,IAAI;IAiCtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqCzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAsBtB;;OAEG;IACI,aAAa,IAAI,IAAI;IAY5B;;OAEG;IACI,gBAAgB,CACtB,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACpC,OAAO,GAAE;QACR,SAAS,EAAE,OAAO,CAAC;KAGnB,GACC,IAAI;IAiBP;;OAEG;IACI,aAAa,CAAC,MAAM,EAAE;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACjC,GAAG,IAAI;IAkBR;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,eAAe;IA0CvB;;OAEG;IACH,OAAO,CAAC,WAAW;IAYnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4B5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoB9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACI,mBAAmB,IAAI,IAAI;IAclC;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAWpC;;OAEG;IACI,uBAAuB,IAAI,OAAO;IAIzC;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACI,UAAU,CAChB,KAAK,EAAE,KAAK,EACZ,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACpC,OAAO,GAAE;QACR,SAAS,EAAE,OAAO,CAAC;KAGnB,GACC,IAAI;CAoCP"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Config } from '../schemas/config';
|
|
2
|
+
import { Event } from '../schemas/events';
|
|
3
|
+
import { UserIdentity } from '../schemas/identity';
|
|
4
|
+
import { ApiClient } from './api';
|
|
5
|
+
import { EventsClient } from './events';
|
|
6
|
+
/**
|
|
7
|
+
* Session client for managing user sessions and automatic tracking
|
|
8
|
+
*/
|
|
9
|
+
export declare class SessionClient {
|
|
10
|
+
#private;
|
|
11
|
+
constructor(api: ApiClient, config?: Config);
|
|
12
|
+
init(events: EventsClient): void;
|
|
13
|
+
destroy(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Setup session tracking
|
|
16
|
+
*/
|
|
17
|
+
private setup;
|
|
18
|
+
/**
|
|
19
|
+
* Set up tracking for history/navigation changes
|
|
20
|
+
*/
|
|
21
|
+
private setupHistoryChange;
|
|
22
|
+
/**
|
|
23
|
+
* Track page view only if URL has changed
|
|
24
|
+
*/
|
|
25
|
+
private trackPageViewIfUrlChanged;
|
|
26
|
+
/**
|
|
27
|
+
* Get the current user ID if available
|
|
28
|
+
*/
|
|
29
|
+
getUserId(): string | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Set the user ID
|
|
32
|
+
*/
|
|
33
|
+
setUserId(userId: string): void;
|
|
34
|
+
/**
|
|
35
|
+
* Get the current app ID
|
|
36
|
+
*/
|
|
37
|
+
getAppId(): string;
|
|
38
|
+
/**
|
|
39
|
+
* Set the app ID
|
|
40
|
+
*/
|
|
41
|
+
setAppId(appId: string): void;
|
|
42
|
+
/**
|
|
43
|
+
* Add an event to the queue and schedule flush if needed
|
|
44
|
+
*/
|
|
45
|
+
track(event: Event): void;
|
|
46
|
+
/**
|
|
47
|
+
* Identify a user so that we can show in the User Journey
|
|
48
|
+
*/
|
|
49
|
+
identify(identity: UserIdentity): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Deduplicate events by name and timestamp
|
|
52
|
+
*/
|
|
53
|
+
private deduplicateEvents;
|
|
54
|
+
/**
|
|
55
|
+
* Flush queued events to the server
|
|
56
|
+
*/
|
|
57
|
+
protected flush(): void;
|
|
58
|
+
publish(events: any[]): Promise<Response>;
|
|
59
|
+
/**
|
|
60
|
+
* Get or generate a session ID
|
|
61
|
+
*/
|
|
62
|
+
getSessionId(): string;
|
|
63
|
+
/**
|
|
64
|
+
* Generate a UUID v4
|
|
65
|
+
*/
|
|
66
|
+
generateId(): string;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../../src/base/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,qBAAa,aAAa;;gBAWb,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM;IASpC,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAKhC,OAAO,IAAI,IAAI;IAYtB;;OAEG;IACH,OAAO,CAAC,KAAK;IAoBb;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;OAEG;IACI,SAAS,IAAI,MAAM,GAAG,SAAS;IAItC;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;OAEG;IACI,QAAQ,IAAI,MAAM;IAIzB;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACI,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAkBhC;;OAEG;IACU,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB5D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,SAAS,CAAC,KAAK,IAAI,IAAI;IAsBV,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;IAiClC;;OAEG;IACI,YAAY,IAAI,MAAM;IAS7B;;OAEG;IACI,UAAU,IAAI,MAAM;CAU3B"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Config } from './schemas/config';
|
|
2
|
+
import { UserIdentity } from './schemas/identity';
|
|
3
|
+
declare class UserPath {
|
|
4
|
+
#private;
|
|
5
|
+
constructor(config: Config);
|
|
6
|
+
/**
|
|
7
|
+
* Get the current app ID
|
|
8
|
+
*/
|
|
9
|
+
getAppId(): string;
|
|
10
|
+
/**
|
|
11
|
+
* Set the app ID directly
|
|
12
|
+
*/
|
|
13
|
+
setAppId(appId: string): void;
|
|
14
|
+
/**
|
|
15
|
+
* Install global error handlers
|
|
16
|
+
*/
|
|
17
|
+
installErrorHandler(): void;
|
|
18
|
+
/**
|
|
19
|
+
* Remove global error handlers
|
|
20
|
+
*/
|
|
21
|
+
uninstallErrorHandler(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Track an error
|
|
24
|
+
*/
|
|
25
|
+
trackError(error: Error, properties?: Record<string, any>): void;
|
|
26
|
+
/**
|
|
27
|
+
* Set the user ID directly
|
|
28
|
+
*/
|
|
29
|
+
setUserId(userId: string): void;
|
|
30
|
+
/**
|
|
31
|
+
* Get the current user ID
|
|
32
|
+
*/
|
|
33
|
+
getUserId(): string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Identify a user and associate them with their anonymous ID
|
|
36
|
+
*/
|
|
37
|
+
identify(identity: UserIdentity): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Track an event
|
|
40
|
+
*/
|
|
41
|
+
track(eventType: 'page_view'): void;
|
|
42
|
+
track(eventType: 'event', params: {
|
|
43
|
+
name: string;
|
|
44
|
+
properties?: Record<string, any>;
|
|
45
|
+
}): void;
|
|
46
|
+
track(eventType: 'purchase', params: {
|
|
47
|
+
price: number;
|
|
48
|
+
amount?: number;
|
|
49
|
+
currency: string;
|
|
50
|
+
properties?: Record<string, any>;
|
|
51
|
+
}): void;
|
|
52
|
+
}
|
|
53
|
+
export * from './schemas/events';
|
|
54
|
+
export * from './schemas/config';
|
|
55
|
+
export * from './schemas/identity';
|
|
56
|
+
export { UserPath };
|
|
57
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAkB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,cAAM,QAAQ;;gBAMD,MAAM,EAAE,MAAM;IAuB1B;;OAEG;IACI,QAAQ,IAAI,MAAM;IAIzB;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACI,mBAAmB,IAAI,IAAI;IAIlC;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAIpC;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,IAAI;IAY3E;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;OAEG;IACI,SAAS,IAAI,MAAM,GAAG,SAAS;IAItC;;OAEG;IACU,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;OAEG;IACI,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IACnC,KAAK,CACX,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GACxD,IAAI;IACA,KAAK,CACX,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACjC,GACC,IAAI;CAkBP;AAGD,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pixel.d.ts","sourceRoot":"","sources":["../../../../src/pixel.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface Config {
|
|
2
|
+
appId: string;
|
|
3
|
+
serverUrl?: string;
|
|
4
|
+
version?: number;
|
|
5
|
+
userId?: string;
|
|
6
|
+
flushIntervalMs?: number;
|
|
7
|
+
autoTrack?: {
|
|
8
|
+
errors?: boolean;
|
|
9
|
+
clicks?: boolean;
|
|
10
|
+
scrolling?: boolean;
|
|
11
|
+
forms?: boolean;
|
|
12
|
+
videos?: boolean;
|
|
13
|
+
pageVisibility?: boolean;
|
|
14
|
+
pageInactivity?: boolean;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export declare const DEFAULT_CONFIG: {
|
|
18
|
+
readonly appId: "";
|
|
19
|
+
readonly serverUrl: "https://api.userpath.co";
|
|
20
|
+
readonly version: 1;
|
|
21
|
+
readonly flushIntervalMs: 5000;
|
|
22
|
+
readonly autoTrack: {
|
|
23
|
+
readonly errors: true;
|
|
24
|
+
readonly clicks: true;
|
|
25
|
+
readonly scrolling: true;
|
|
26
|
+
readonly forms: true;
|
|
27
|
+
readonly videos: true;
|
|
28
|
+
readonly pageVisibility: true;
|
|
29
|
+
readonly pageInactivity: true;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/schemas/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACF;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;CAcjB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export interface PageViewEvent {
|
|
2
|
+
name: 'page_view';
|
|
3
|
+
url: string;
|
|
4
|
+
referrer: string;
|
|
5
|
+
title: string;
|
|
6
|
+
user_id?: string;
|
|
7
|
+
timestamp: string;
|
|
8
|
+
}
|
|
9
|
+
export interface CustomEvent {
|
|
10
|
+
name: string;
|
|
11
|
+
url: string;
|
|
12
|
+
referrer: string;
|
|
13
|
+
title: string;
|
|
14
|
+
properties: Record<string, any>;
|
|
15
|
+
user_id?: string;
|
|
16
|
+
timestamp: string;
|
|
17
|
+
}
|
|
18
|
+
export interface PurchaseEvent {
|
|
19
|
+
name: 'purchase';
|
|
20
|
+
productId: string;
|
|
21
|
+
price: number;
|
|
22
|
+
currency: string;
|
|
23
|
+
properties?: Record<string, any>;
|
|
24
|
+
user_id?: string;
|
|
25
|
+
timestamp: string;
|
|
26
|
+
url: string;
|
|
27
|
+
referrer: string;
|
|
28
|
+
title: string;
|
|
29
|
+
}
|
|
30
|
+
export interface IdentifyEvent {
|
|
31
|
+
name: 'identify';
|
|
32
|
+
anonymousId: string;
|
|
33
|
+
userId: string;
|
|
34
|
+
email?: string;
|
|
35
|
+
properties?: Record<string, any>;
|
|
36
|
+
user_id?: string;
|
|
37
|
+
timestamp: string;
|
|
38
|
+
url?: string;
|
|
39
|
+
referrer?: string;
|
|
40
|
+
title?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface ErrorEvent {
|
|
43
|
+
name: 'error';
|
|
44
|
+
message: string;
|
|
45
|
+
stack?: string;
|
|
46
|
+
source?: string;
|
|
47
|
+
lineno?: number;
|
|
48
|
+
colno?: number;
|
|
49
|
+
filename?: string;
|
|
50
|
+
properties?: Record<string, any>;
|
|
51
|
+
user_id?: string;
|
|
52
|
+
timestamp: string;
|
|
53
|
+
url?: string;
|
|
54
|
+
referrer?: string;
|
|
55
|
+
title?: string;
|
|
56
|
+
}
|
|
57
|
+
export type Event = PageViewEvent | CustomEvent | PurchaseEvent | IdentifyEvent | ErrorEvent;
|
|
58
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../src/schemas/events.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,KAAK,GACd,aAAa,GACb,WAAW,GACX,aAAa,GACb,aAAa,GACb,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../../../src/schemas/identity.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* First party server integration for UserPath
|
|
3
|
+
* UserPath is compliant with WinterCG
|
|
4
|
+
* meaning you can extend it with any framework that supports the native Fetch API
|
|
5
|
+
* including cloudflare workers.
|
|
6
|
+
*/
|
|
7
|
+
export declare const userpath: {
|
|
8
|
+
/**
|
|
9
|
+
* Fetch Handler for First Party Server Integration
|
|
10
|
+
* @param request - The request object
|
|
11
|
+
* @returns The response object
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { userpath } from 'userpath-js/server';
|
|
15
|
+
*
|
|
16
|
+
* // Using Node.js
|
|
17
|
+
* http
|
|
18
|
+
* .createServer(function (req, res) {
|
|
19
|
+
* return userpath.fetch(req);
|
|
20
|
+
* })
|
|
21
|
+
* .listen(3000);
|
|
22
|
+
*
|
|
23
|
+
* // Using Bun
|
|
24
|
+
* Bun.serve({
|
|
25
|
+
* fetch(req) {
|
|
26
|
+
* return userpath.fetch(req);
|
|
27
|
+
* },
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* // Using Elysia
|
|
31
|
+
* const app = new Elysia({ name: 'my-userpath' });
|
|
32
|
+
*
|
|
33
|
+
* app.get('/', () => 'Hello World from Elysia');
|
|
34
|
+
*
|
|
35
|
+
* app.mount('/events', userpath.fetch); // Mount the UserPath server
|
|
36
|
+
*
|
|
37
|
+
* app.listen(3000);
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
fetch(request: Request): Promise<any>;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;mBACkB,OAAO;CAqD5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../core/src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare class LocalStorage {
|
|
2
|
+
namespace: string;
|
|
3
|
+
constructor({ namespace }: {
|
|
4
|
+
namespace: string;
|
|
5
|
+
});
|
|
6
|
+
getItem<T>(key: string): T | null;
|
|
7
|
+
setItem<T>(key: string, value: T): void;
|
|
8
|
+
removeItem(key: string): void;
|
|
9
|
+
}
|
|
10
|
+
export { LocalStorage };
|
|
11
|
+
//# sourceMappingURL=LocalStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalStorage.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/browser/libs/LocalStorage.ts"],"names":[],"mappings":"AAAA,cAAM,YAAY;IACjB,SAAS,EAAE,MAAM,CAAC;gBACN,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE;IAIhD,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAajC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAIhC,UAAU,CAAC,GAAG,EAAE,MAAM;CAGtB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Set a cookie with the specified name, value, and options
|
|
3
|
+
*/
|
|
4
|
+
export declare function setCookie(name: string, value: string, options?: {
|
|
5
|
+
days?: number;
|
|
6
|
+
path?: string;
|
|
7
|
+
domain?: string;
|
|
8
|
+
secure?: boolean;
|
|
9
|
+
sameSite?: 'strict' | 'lax' | 'none';
|
|
10
|
+
}): void;
|
|
11
|
+
/**
|
|
12
|
+
* Get a cookie value by name
|
|
13
|
+
*/
|
|
14
|
+
export declare function getCookie(name: string): string | null;
|
|
15
|
+
/**
|
|
16
|
+
* Delete a cookie by name
|
|
17
|
+
*/
|
|
18
|
+
export declare function deleteCookie(name: string, path?: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Check if a cookie exists
|
|
21
|
+
*/
|
|
22
|
+
export declare function hasCookie(name: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Parse a cookie string into an object
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseCookies(): Record<string, string>;
|
|
27
|
+
//# sourceMappingURL=cookie.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/browser/libs/cookie.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,SAAS,CACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CAChC,GACJ,IAAI,CAgBN;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAerD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,IAAI,CAG3D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../../../../core/src/browser/libs/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,QAAA,MAAM,MAAM,cAA8C,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Config } from '../schemas/config';
|
|
2
|
+
/**
|
|
3
|
+
* Base API client for UserPath SDK
|
|
4
|
+
*/
|
|
5
|
+
export declare class ApiClient {
|
|
6
|
+
serverUrl: string;
|
|
7
|
+
appId: string;
|
|
8
|
+
version: number;
|
|
9
|
+
constructor(config: Config);
|
|
10
|
+
buildUrl(path: string): string;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/base/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAE3D;;GAEG;AACH,qBAAa,SAAS;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;gBAEX,MAAM,EAAE,MAAM;IAM1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAG9B"}
|