@agentuity/frontend 0.0.110 → 0.0.112
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/dist/analytics/beacon.d.ts +15 -0
- package/dist/analytics/beacon.d.ts.map +1 -0
- package/dist/analytics/beacon.js +177 -0
- package/dist/analytics/beacon.js.map +1 -0
- package/dist/analytics/collectors/clicks.d.ts +10 -0
- package/dist/analytics/collectors/clicks.d.ts.map +1 -0
- package/dist/analytics/collectors/clicks.js +84 -0
- package/dist/analytics/collectors/clicks.js.map +1 -0
- package/dist/analytics/collectors/errors.d.ts +5 -0
- package/dist/analytics/collectors/errors.d.ts.map +1 -0
- package/dist/analytics/collectors/errors.js +43 -0
- package/dist/analytics/collectors/errors.js.map +1 -0
- package/dist/analytics/collectors/forms.d.ts +5 -0
- package/dist/analytics/collectors/forms.d.ts.map +1 -0
- package/dist/analytics/collectors/forms.js +55 -0
- package/dist/analytics/collectors/forms.js.map +1 -0
- package/dist/analytics/collectors/pageview.d.ts +15 -0
- package/dist/analytics/collectors/pageview.d.ts.map +1 -0
- package/dist/analytics/collectors/pageview.js +64 -0
- package/dist/analytics/collectors/pageview.js.map +1 -0
- package/dist/analytics/collectors/scroll.d.ts +17 -0
- package/dist/analytics/collectors/scroll.d.ts.map +1 -0
- package/dist/analytics/collectors/scroll.js +93 -0
- package/dist/analytics/collectors/scroll.js.map +1 -0
- package/dist/analytics/collectors/spa.d.ts +10 -0
- package/dist/analytics/collectors/spa.d.ts.map +1 -0
- package/dist/analytics/collectors/spa.js +53 -0
- package/dist/analytics/collectors/spa.js.map +1 -0
- package/dist/analytics/collectors/visibility.d.ts +18 -0
- package/dist/analytics/collectors/visibility.d.ts.map +1 -0
- package/dist/analytics/collectors/visibility.js +81 -0
- package/dist/analytics/collectors/visibility.js.map +1 -0
- package/dist/analytics/collectors/webvitals.d.ts +6 -0
- package/dist/analytics/collectors/webvitals.d.ts.map +1 -0
- package/dist/analytics/collectors/webvitals.js +111 -0
- package/dist/analytics/collectors/webvitals.js.map +1 -0
- package/dist/analytics/events.d.ts +18 -0
- package/dist/analytics/events.d.ts.map +1 -0
- package/dist/analytics/events.js +126 -0
- package/dist/analytics/events.js.map +1 -0
- package/dist/analytics/index.d.ts +12 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js +12 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/analytics/offline.d.ts +19 -0
- package/dist/analytics/offline.d.ts.map +1 -0
- package/dist/analytics/offline.js +145 -0
- package/dist/analytics/offline.js.map +1 -0
- package/dist/analytics/types.d.ts +113 -0
- package/dist/analytics/types.d.ts.map +1 -0
- package/dist/analytics/types.js +2 -0
- package/dist/analytics/types.js.map +1 -0
- package/dist/analytics/utils/storage.d.ts +13 -0
- package/dist/analytics/utils/storage.d.ts.map +1 -0
- package/dist/analytics/utils/storage.js +63 -0
- package/dist/analytics/utils/storage.js.map +1 -0
- package/dist/analytics/utils/utm.d.ts +12 -0
- package/dist/analytics/utils/utm.d.ts.map +1 -0
- package/dist/analytics/utils/utm.js +27 -0
- package/dist/analytics/utils/utm.js.map +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +93 -15
- package/dist/client/index.js.map +1 -1
- package/dist/client/types.d.ts +51 -5
- package/dist/client/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/analytics/beacon.ts +203 -0
- package/src/analytics/collectors/clicks.ts +100 -0
- package/src/analytics/collectors/errors.ts +49 -0
- package/src/analytics/collectors/forms.ts +64 -0
- package/src/analytics/collectors/pageview.ts +76 -0
- package/src/analytics/collectors/scroll.ts +112 -0
- package/src/analytics/collectors/spa.ts +60 -0
- package/src/analytics/collectors/visibility.ts +94 -0
- package/src/analytics/collectors/webvitals.ts +129 -0
- package/src/analytics/events.ts +144 -0
- package/src/analytics/index.ts +21 -0
- package/src/analytics/offline.ts +163 -0
- package/src/analytics/types.ts +139 -0
- package/src/analytics/utils/storage.ts +64 -0
- package/src/analytics/utils/utm.ts +36 -0
- package/src/client/index.ts +109 -15
- package/src/client/types.ts +104 -17
- package/src/index.ts +18 -0
package/src/client/types.ts
CHANGED
|
@@ -99,27 +99,95 @@ export interface StreamClient {
|
|
|
99
99
|
cancel(): Promise<void>;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
+
/**
|
|
103
|
+
* Options object for endpoints without path params (optional query support).
|
|
104
|
+
*/
|
|
105
|
+
export interface EndpointOptionsWithQuery<Input = unknown, Query = Record<string, string>> {
|
|
106
|
+
input?: Input;
|
|
107
|
+
query?: Query;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Additional options that can be passed after positional path params.
|
|
112
|
+
*/
|
|
113
|
+
export interface EndpointExtraOptions<Input = unknown, Query = Record<string, string>> {
|
|
114
|
+
input?: Input;
|
|
115
|
+
query?: Query;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Convert a path params object to a tuple of its value types.
|
|
120
|
+
* Used for positional argument typing.
|
|
121
|
+
* Note: For proper ordering, we rely on the generated PathParamsTuple type.
|
|
122
|
+
*/
|
|
123
|
+
export type PathParamsToTuple<P> = P extends readonly [infer First, ...infer Rest]
|
|
124
|
+
? [First, ...PathParamsToTuple<Rest>]
|
|
125
|
+
: P extends readonly []
|
|
126
|
+
? []
|
|
127
|
+
: string[];
|
|
128
|
+
|
|
102
129
|
/**
|
|
103
130
|
* API endpoint - callable function for regular HTTP calls.
|
|
131
|
+
* - Without path params: accepts input directly OR options object with query
|
|
132
|
+
* - With path params: accepts positional arguments followed by optional options object
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* // No path params
|
|
136
|
+
* client.hello.post({ name: 'World' })
|
|
137
|
+
*
|
|
138
|
+
* // Single path param
|
|
139
|
+
* client.users.userId.get('123')
|
|
140
|
+
*
|
|
141
|
+
* // Multiple path params
|
|
142
|
+
* client.orgs.orgId.members.memberId.get('org-1', 'user-2')
|
|
143
|
+
*
|
|
144
|
+
* // With additional options
|
|
145
|
+
* client.users.userId.get('123', { query: { include: 'posts' } })
|
|
104
146
|
*/
|
|
105
|
-
export type APIEndpoint<
|
|
147
|
+
export type APIEndpoint<
|
|
148
|
+
Input = unknown,
|
|
149
|
+
Output = unknown,
|
|
150
|
+
PathParams = never,
|
|
151
|
+
PathParamsTuple extends unknown[] = string[],
|
|
152
|
+
> = [PathParams] extends [never]
|
|
153
|
+
? (inputOrOptions?: Input | EndpointOptionsWithQuery<Input>) => Promise<Output>
|
|
154
|
+
: (...args: [...PathParamsTuple, options?: EndpointExtraOptions<Input>]) => Promise<Output>;
|
|
106
155
|
|
|
107
156
|
/**
|
|
108
157
|
* WebSocket endpoint - callable function that returns WebSocket client.
|
|
109
158
|
*/
|
|
110
|
-
export type WebSocketEndpoint<
|
|
111
|
-
|
|
112
|
-
|
|
159
|
+
export type WebSocketEndpoint<
|
|
160
|
+
Input = unknown,
|
|
161
|
+
_Output = unknown,
|
|
162
|
+
PathParams = never,
|
|
163
|
+
PathParamsTuple extends unknown[] = string[],
|
|
164
|
+
> = [PathParams] extends [never]
|
|
165
|
+
? (inputOrOptions?: Input | EndpointOptionsWithQuery<Input>) => WebSocketClient
|
|
166
|
+
: (...args: [...PathParamsTuple, options?: EndpointExtraOptions<Input>]) => WebSocketClient;
|
|
113
167
|
|
|
114
168
|
/**
|
|
115
169
|
* Server-Sent Events endpoint - callable function that returns EventStream client.
|
|
116
170
|
*/
|
|
117
|
-
export type SSEEndpoint<
|
|
171
|
+
export type SSEEndpoint<
|
|
172
|
+
Input = unknown,
|
|
173
|
+
_Output = unknown,
|
|
174
|
+
PathParams = never,
|
|
175
|
+
PathParamsTuple extends unknown[] = string[],
|
|
176
|
+
> = [PathParams] extends [never]
|
|
177
|
+
? (inputOrOptions?: Input | EndpointOptionsWithQuery<Input>) => EventStreamClient
|
|
178
|
+
: (...args: [...PathParamsTuple, options?: EndpointExtraOptions<Input>]) => EventStreamClient;
|
|
118
179
|
|
|
119
180
|
/**
|
|
120
181
|
* Streaming endpoint - callable function that returns Stream client.
|
|
121
182
|
*/
|
|
122
|
-
export type StreamEndpoint<
|
|
183
|
+
export type StreamEndpoint<
|
|
184
|
+
Input = unknown,
|
|
185
|
+
_Output = unknown,
|
|
186
|
+
PathParams = never,
|
|
187
|
+
PathParamsTuple extends unknown[] = string[],
|
|
188
|
+
> = [PathParams] extends [never]
|
|
189
|
+
? (inputOrOptions?: Input | EndpointOptionsWithQuery<Input>) => StreamClient
|
|
190
|
+
: (...args: [...PathParamsTuple, options?: EndpointExtraOptions<Input>]) => StreamClient;
|
|
123
191
|
|
|
124
192
|
/**
|
|
125
193
|
* Route endpoint - discriminated union based on route type.
|
|
@@ -128,23 +196,42 @@ export type RouteEndpoint<
|
|
|
128
196
|
Input = unknown,
|
|
129
197
|
Output = unknown,
|
|
130
198
|
Type extends string = 'api',
|
|
199
|
+
PathParams = never,
|
|
200
|
+
PathParamsTuple extends unknown[] = [],
|
|
131
201
|
> = Type extends 'websocket'
|
|
132
|
-
? WebSocketEndpoint<Input, Output>
|
|
202
|
+
? WebSocketEndpoint<Input, Output, PathParams, PathParamsTuple>
|
|
133
203
|
: Type extends 'sse'
|
|
134
|
-
? SSEEndpoint<Input, Output>
|
|
204
|
+
? SSEEndpoint<Input, Output, PathParams, PathParamsTuple>
|
|
135
205
|
: Type extends 'stream'
|
|
136
|
-
? StreamEndpoint<Input, Output>
|
|
137
|
-
: APIEndpoint<Input, Output>;
|
|
206
|
+
? StreamEndpoint<Input, Output, PathParams, PathParamsTuple>
|
|
207
|
+
: APIEndpoint<Input, Output, PathParams, PathParamsTuple>;
|
|
138
208
|
|
|
139
209
|
/**
|
|
140
210
|
* Recursively build the client proxy type from a RouteRegistry.
|
|
141
211
|
*/
|
|
142
212
|
export type Client<R> = {
|
|
143
|
-
[K in keyof R]: R[K] extends {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
213
|
+
[K in keyof R]: R[K] extends {
|
|
214
|
+
input: infer I;
|
|
215
|
+
output: infer O;
|
|
216
|
+
type: infer T;
|
|
217
|
+
params: infer P;
|
|
218
|
+
paramsTuple: infer PT;
|
|
219
|
+
}
|
|
220
|
+
? PT extends unknown[]
|
|
221
|
+
? RouteEndpoint<I, O, T extends string ? T : 'api', P, PT>
|
|
222
|
+
: RouteEndpoint<I, O, T extends string ? T : 'api', P>
|
|
223
|
+
: R[K] extends {
|
|
224
|
+
input: infer I;
|
|
225
|
+
output: infer O;
|
|
226
|
+
type: infer T;
|
|
227
|
+
params: infer P;
|
|
228
|
+
}
|
|
229
|
+
? RouteEndpoint<I, O, T extends string ? T : 'api', P>
|
|
230
|
+
: R[K] extends { input: infer I; output: infer O; type: infer T }
|
|
231
|
+
? RouteEndpoint<I, O, T extends string ? T : 'api'>
|
|
232
|
+
: R[K] extends { input: infer I; output: infer O }
|
|
233
|
+
? RouteEndpoint<I, O, 'api'>
|
|
234
|
+
: R[K] extends object
|
|
235
|
+
? Client<R[K]>
|
|
236
|
+
: never;
|
|
150
237
|
};
|
package/src/index.ts
CHANGED
|
@@ -30,3 +30,21 @@ export type {
|
|
|
30
30
|
StreamClient,
|
|
31
31
|
EventHandler,
|
|
32
32
|
} from './client/types';
|
|
33
|
+
|
|
34
|
+
// Export analytics
|
|
35
|
+
export {
|
|
36
|
+
getAnalytics,
|
|
37
|
+
track,
|
|
38
|
+
initBeacon,
|
|
39
|
+
trackPageview,
|
|
40
|
+
createBaseEvent,
|
|
41
|
+
getVisitorId,
|
|
42
|
+
isOptedOut,
|
|
43
|
+
setOptOut,
|
|
44
|
+
getUTMParams,
|
|
45
|
+
type AnalyticsClient,
|
|
46
|
+
type AnalyticsEvent,
|
|
47
|
+
type AnalyticsEventType,
|
|
48
|
+
type AnalyticsBatchPayload,
|
|
49
|
+
type AnalyticsPageConfig,
|
|
50
|
+
} from './analytics';
|