@agentuity/react 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.
@@ -0,0 +1,94 @@
1
+ import React from 'react';
2
+ /**
3
+ * Result of the useAnalytics hook
4
+ */
5
+ export interface UseAnalyticsResult {
6
+ /**
7
+ * Track a custom event
8
+ */
9
+ track: (eventName: string, properties?: Record<string, unknown>) => void;
10
+ /**
11
+ * Get a click handler that tracks an event
12
+ */
13
+ trackClick: (eventName: string, properties?: Record<string, unknown>) => (event: React.MouseEvent) => void;
14
+ /**
15
+ * Whether analytics is enabled
16
+ */
17
+ enabled: boolean;
18
+ /**
19
+ * Flush pending events
20
+ */
21
+ flush: () => Promise<void>;
22
+ /**
23
+ * Opt out of analytics
24
+ */
25
+ optOut: () => void;
26
+ /**
27
+ * Opt in to analytics
28
+ */
29
+ optIn: () => void;
30
+ }
31
+ /**
32
+ * Hook for tracking analytics events in React components
33
+ *
34
+ * @example
35
+ * ```tsx
36
+ * function MyComponent() {
37
+ * const { track, trackClick } = useAnalytics();
38
+ *
39
+ * useEffect(() => {
40
+ * track('component_viewed', { name: 'MyComponent' });
41
+ * }, [track]);
42
+ *
43
+ * return (
44
+ * <button onClick={trackClick('button_clicked', { button: 'submit' })}>
45
+ * Submit
46
+ * </button>
47
+ * );
48
+ * }
49
+ * ```
50
+ */
51
+ export declare function useAnalytics(): UseAnalyticsResult;
52
+ /**
53
+ * Options for useTrackOnMount
54
+ */
55
+ export interface TrackOnMountOptions {
56
+ /**
57
+ * Event name to track
58
+ */
59
+ eventName: string;
60
+ /**
61
+ * Event properties
62
+ */
63
+ properties?: Record<string, unknown>;
64
+ /**
65
+ * Only track once (default: true)
66
+ */
67
+ once?: boolean;
68
+ }
69
+ /**
70
+ * Hook to track an event when a component mounts
71
+ *
72
+ * @example
73
+ * ```tsx
74
+ * function ProductPage({ productId }: { productId: string }) {
75
+ * useTrackOnMount({
76
+ * eventName: 'product_viewed',
77
+ * properties: { productId }
78
+ * });
79
+ *
80
+ * return <div>Product {productId}</div>;
81
+ * }
82
+ * ```
83
+ */
84
+ export declare function useTrackOnMount(options: TrackOnMountOptions): void;
85
+ /**
86
+ * Higher-order component for tracking page views
87
+ *
88
+ * @example
89
+ * ```tsx
90
+ * const TrackedHomePage = withPageTracking(HomePage, 'home');
91
+ * ```
92
+ */
93
+ export declare function withPageTracking<P extends object>(Component: React.ComponentType<P>, pageName?: string): React.ComponentType<P>;
94
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAaxE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC;;OAEG;IACH,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAEzE;;OAEG;IACH,UAAU,EAAE,CACX,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAChC,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,IAAI,kBAAkB,CAmDjD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAalE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAChD,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EACjC,QAAQ,CAAC,EAAE,MAAM,GACf,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAiBxB"}
@@ -0,0 +1,120 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useRef, useState } from 'react';
3
+ import { getAnalytics } from '@agentuity/frontend';
4
+ const noopClient = {
5
+ track: () => { },
6
+ identify: () => { },
7
+ pageview: () => { },
8
+ flush: async () => { },
9
+ optOut: () => { },
10
+ optIn: () => { },
11
+ isEnabled: () => false,
12
+ };
13
+ /**
14
+ * Hook for tracking analytics events in React components
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * function MyComponent() {
19
+ * const { track, trackClick } = useAnalytics();
20
+ *
21
+ * useEffect(() => {
22
+ * track('component_viewed', { name: 'MyComponent' });
23
+ * }, [track]);
24
+ *
25
+ * return (
26
+ * <button onClick={trackClick('button_clicked', { button: 'submit' })}>
27
+ * Submit
28
+ * </button>
29
+ * );
30
+ * }
31
+ * ```
32
+ */
33
+ export function useAnalytics() {
34
+ const clientRef = useRef(null);
35
+ const [isClient, setIsClient] = useState(false);
36
+ // SSR guard - only initialize on client
37
+ useEffect(() => {
38
+ setIsClient(true);
39
+ if (!clientRef.current) {
40
+ clientRef.current = getAnalytics();
41
+ }
42
+ }, []);
43
+ // Use no-op client during SSR, real client after hydration
44
+ const client = isClient && clientRef.current ? clientRef.current : noopClient;
45
+ const track = useCallback((eventName, properties) => {
46
+ client.track(eventName, properties);
47
+ }, [client]);
48
+ const trackClick = useCallback((eventName, properties) => {
49
+ return (_event) => {
50
+ client.track(eventName, properties);
51
+ };
52
+ }, [client]);
53
+ const flush = useCallback(() => {
54
+ return client.flush();
55
+ }, [client]);
56
+ const optOut = useCallback(() => {
57
+ client.optOut();
58
+ }, [client]);
59
+ const optIn = useCallback(() => {
60
+ client.optIn();
61
+ }, [client]);
62
+ return {
63
+ track,
64
+ trackClick,
65
+ enabled: client.isEnabled(),
66
+ flush,
67
+ optOut,
68
+ optIn,
69
+ };
70
+ }
71
+ /**
72
+ * Hook to track an event when a component mounts
73
+ *
74
+ * @example
75
+ * ```tsx
76
+ * function ProductPage({ productId }: { productId: string }) {
77
+ * useTrackOnMount({
78
+ * eventName: 'product_viewed',
79
+ * properties: { productId }
80
+ * });
81
+ *
82
+ * return <div>Product {productId}</div>;
83
+ * }
84
+ * ```
85
+ */
86
+ export function useTrackOnMount(options) {
87
+ const { eventName, properties, once = true } = options;
88
+ const trackedRef = useRef(false);
89
+ const { track } = useAnalytics();
90
+ useEffect(() => {
91
+ if (once && trackedRef.current) {
92
+ return;
93
+ }
94
+ track(eventName, properties);
95
+ trackedRef.current = true;
96
+ }, [eventName, once, properties, track]);
97
+ }
98
+ /**
99
+ * Higher-order component for tracking page views
100
+ *
101
+ * @example
102
+ * ```tsx
103
+ * const TrackedHomePage = withPageTracking(HomePage, 'home');
104
+ * ```
105
+ */
106
+ export function withPageTracking(Component, pageName) {
107
+ const displayName = Component.displayName || Component.name || 'Component';
108
+ function TrackedComponent(props) {
109
+ useTrackOnMount({
110
+ eventName: 'page_view',
111
+ properties: {
112
+ page: pageName || displayName,
113
+ },
114
+ });
115
+ return _jsx(Component, { ...props });
116
+ }
117
+ TrackedComponent.displayName = `withPageTracking(${displayName})`;
118
+ return TrackedComponent;
119
+ }
120
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../src/analytics.tsx"],"names":[],"mappings":"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"}
package/dist/api.d.ts CHANGED
@@ -37,6 +37,13 @@ export type RouteOutput<TRoute extends RouteKey> = TRoute extends keyof RouteReg
37
37
  type RouteChunkType<TRoute extends RouteKey> = TRoute extends keyof RouteRegistry ? RouteRegistry[TRoute] extends {
38
38
  outputSchema: infer TSchema;
39
39
  } ? TSchema extends undefined | never ? unknown : InferOutput<TSchema> : unknown : unknown;
40
+ /**
41
+ * Extract path params type for a specific route.
42
+ * Returns the typed params object if the route has path parameters, otherwise never.
43
+ */
44
+ export type RoutePathParams<TRoute extends RouteKey> = TRoute extends keyof RouteRegistry ? RouteRegistry[TRoute] extends {
45
+ params: infer P;
46
+ } ? P : never : never;
40
47
  /**
41
48
  * Common options shared by all UseAPI configurations
42
49
  */
@@ -66,6 +73,9 @@ type UseAPICommonOptions<TRoute extends RouteKey> = {
66
73
  } : {
67
74
  /** Input data for the request (required for POST/PUT/PATCH/DELETE) */
68
75
  input?: RouteInput<TRoute>;
76
+ }) & (RoutePathParams<TRoute> extends never ? {} : {
77
+ /** Path parameters for routes with dynamic segments (e.g., { id: '123' } for /users/:id) */
78
+ params: RoutePathParams<TRoute>;
69
79
  });
70
80
  /**
71
81
  * Options with route property (e.g., { route: 'GET /users' })
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js CHANGED
@@ -22,6 +22,20 @@ function toSearchParams(query) {
22
22
  return query;
23
23
  return new URLSearchParams(query);
24
24
  }
25
+ /**
26
+ * Substitute path parameters in a URL path template.
27
+ * E.g., '/users/:id' with { id: '123' } becomes '/users/123'
28
+ */
29
+ function substitutePathParams(pathTemplate, pathParams) {
30
+ if (!pathParams)
31
+ return pathTemplate;
32
+ let result = pathTemplate;
33
+ for (const [key, value] of Object.entries(pathParams)) {
34
+ result = result.replace(new RegExp(`:${key}\\??`, 'g'), encodeURIComponent(value));
35
+ result = result.replace(new RegExp(`\\*${key}`, 'g'), encodeURIComponent(value));
36
+ }
37
+ return result;
38
+ }
25
39
  /**
26
40
  * Process ReadableStream with delimiter-based parsing
27
41
  */
@@ -185,6 +199,8 @@ export function useAPI(routeOrOptions) {
185
199
  : routeOrOptions;
186
200
  const context = useContext(AgentuityContext);
187
201
  const { input, query, headers, enabled, staleTime = 0, refetchInterval, onSuccess, onError, } = options;
202
+ // Extract params safely
203
+ const pathParams = 'params' in options ? options.params : undefined;
188
204
  const delimiter = 'delimiter' in options ? (options.delimiter ?? '\n') : '\n';
189
205
  const onChunk = 'onChunk' in options ? options.onChunk : undefined;
190
206
  if (!context) {
@@ -192,19 +208,21 @@ export function useAPI(routeOrOptions) {
192
208
  }
193
209
  // Extract method and path from either route OR {method, path}
194
210
  let method;
195
- let path;
211
+ let basePath;
196
212
  if ('route' in options && options.route) {
197
213
  const parsed = parseRouteKey(options.route);
198
214
  method = parsed.method;
199
- path = parsed.path;
215
+ basePath = parsed.path;
200
216
  }
201
217
  else if ('method' in options && 'path' in options && options.method && options.path) {
202
218
  method = options.method;
203
- path = options.path;
219
+ basePath = options.path;
204
220
  }
205
221
  else {
206
222
  throw new Error('useAPI requires either route OR {method, path}');
207
223
  }
224
+ // Substitute path parameters
225
+ const path = substitutePathParams(basePath, pathParams);
208
226
  const [data, setData] = useState(undefined);
209
227
  const [error, setError] = useState(null);
210
228
  const [isLoading, setIsLoading] = useState(false);
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,8 +2,9 @@ export { AgentuityContext, AgentuityProvider, useAgentuity, useAuth, type Contex
2
2
  export { createClient, createAPIClient, setGlobalBaseUrl, getGlobalBaseUrl, setGlobalAuthHeader, getGlobalAuthHeader, type RPCRouteRegistry, } from './client';
3
3
  export { useWebsocket, type WebSocketRouteKey, type WebSocketRouteInput, type WebSocketRouteOutput, type WebsocketOptions, } from './websocket';
4
4
  export { useEventStream, type SSERouteKey, type SSERouteOutput, type EventStreamOptions, } from './eventstream';
5
- export { useAPI, type RouteKey, type ExtractMethod, type RouteIsStream, type RouteInput, type RouteOutput, type UseAPIOptions, type UseAPIResult, } from './api';
5
+ export { useAPI, type RouteKey, type ExtractMethod, type RouteIsStream, type RouteInput, type RouteOutput, type RoutePathParams, type UseAPIOptions, type UseAPIResult, } from './api';
6
6
  export { useJsonMemo } from './memo';
7
+ export { useAnalytics, useTrackOnMount, withPageTracking, type UseAnalyticsResult, type TrackOnMountOptions, } from './analytics.js';
7
8
  export type { RouteRegistry, WebSocketRouteRegistry, SSERouteRegistry } from './types';
8
9
  export { buildUrl, defaultBaseUrl, deserializeData, createReconnectManager, jsonEqual, getProcessEnv, WebSocketManager, EventStreamManager, type ReconnectOptions, type ReconnectManager, type WebSocketMessageHandler, type WebSocketCallbacks, type WebSocketManagerOptions, type WebSocketManagerState, type EventStreamMessageHandler, type EventStreamCallbacks, type EventStreamManagerOptions, type EventStreamManagerState, type Client, type ClientOptions, type RouteEndpoint, type WebSocketClient, type EventStreamClient, type StreamClient, type EventHandler, } from '@agentuity/frontend';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACP,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,gBAAgB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,MAAM,EACN,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,GACjB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAIrC,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGvF,OAAO,EACN,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAE5B,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,GACjB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACP,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,gBAAgB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,MAAM,EACN,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,GACjB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,EACN,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACxB,MAAM,gBAAgB,CAAC;AAIxB,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGvF,OAAO,EACN,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAE5B,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,GACjB,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,8 @@ export { useWebsocket, } from './websocket';
4
4
  export { useEventStream, } from './eventstream';
5
5
  export { useAPI, } from './api';
6
6
  export { useJsonMemo } from './memo';
7
+ // Analytics
8
+ export { useAnalytics, useTrackOnMount, withPageTracking, } from './analytics.js';
7
9
  // Re-export web utilities for convenience (excluding registry types which come from ./types)
8
10
  export { buildUrl, defaultBaseUrl, deserializeData, createReconnectManager, jsonEqual, getProcessEnv, WebSocketManager, EventStreamManager, } from '@agentuity/frontend';
9
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,OAAO,GAKP,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GAEnB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,YAAY,GAKZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,cAAc,GAId,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,MAAM,GAQN,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAMrC,6FAA6F;AAC7F,OAAO,EACN,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GAmBlB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,OAAO,GAKP,MAAM,WAAW,CAAC;AACnB,OAAO,EACN,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GAEnB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,YAAY,GAKZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,cAAc,GAId,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,MAAM,GASN,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,YAAY;AACZ,OAAO,EACN,YAAY,EACZ,eAAe,EACf,gBAAgB,GAGhB,MAAM,gBAAgB,CAAC;AAMxB,6FAA6F;AAC7F,OAAO,EACN,QAAQ,EACR,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GAmBlB,MAAM,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentuity/react",
3
- "version": "0.0.110",
3
+ "version": "0.0.112",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Agentuity employees and contributors",
6
6
  "type": "module",
@@ -26,12 +26,12 @@
26
26
  "prepublishOnly": "bun run clean && bun run build"
27
27
  },
28
28
  "dependencies": {
29
- "@agentuity/core": "0.0.110",
30
- "@agentuity/frontend": "0.0.110"
29
+ "@agentuity/core": "0.0.112",
30
+ "@agentuity/frontend": "0.0.112"
31
31
  },
32
32
  "devDependencies": {
33
- "@agentuity/schema": "0.0.110",
34
- "@agentuity/test-utils": "0.0.110",
33
+ "@agentuity/schema": "0.0.112",
34
+ "@agentuity/test-utils": "0.0.112",
35
35
  "@types/bun": "latest",
36
36
  "bun-types": "latest",
37
37
  "typescript": "^5.9.0"
@@ -0,0 +1,203 @@
1
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
2
+ import { getAnalytics, type AnalyticsClient } from '@agentuity/frontend';
3
+
4
+ const noopClient: AnalyticsClient = {
5
+ track: () => {},
6
+ identify: () => {},
7
+ pageview: () => {},
8
+ flush: async () => {},
9
+ optOut: () => {},
10
+ optIn: () => {},
11
+ isEnabled: () => false,
12
+ };
13
+
14
+ /**
15
+ * Result of the useAnalytics hook
16
+ */
17
+ export interface UseAnalyticsResult {
18
+ /**
19
+ * Track a custom event
20
+ */
21
+ track: (eventName: string, properties?: Record<string, unknown>) => void;
22
+
23
+ /**
24
+ * Get a click handler that tracks an event
25
+ */
26
+ trackClick: (
27
+ eventName: string,
28
+ properties?: Record<string, unknown>
29
+ ) => (event: React.MouseEvent) => void;
30
+
31
+ /**
32
+ * Whether analytics is enabled
33
+ */
34
+ enabled: boolean;
35
+
36
+ /**
37
+ * Flush pending events
38
+ */
39
+ flush: () => Promise<void>;
40
+
41
+ /**
42
+ * Opt out of analytics
43
+ */
44
+ optOut: () => void;
45
+
46
+ /**
47
+ * Opt in to analytics
48
+ */
49
+ optIn: () => void;
50
+ }
51
+
52
+ /**
53
+ * Hook for tracking analytics events in React components
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * function MyComponent() {
58
+ * const { track, trackClick } = useAnalytics();
59
+ *
60
+ * useEffect(() => {
61
+ * track('component_viewed', { name: 'MyComponent' });
62
+ * }, [track]);
63
+ *
64
+ * return (
65
+ * <button onClick={trackClick('button_clicked', { button: 'submit' })}>
66
+ * Submit
67
+ * </button>
68
+ * );
69
+ * }
70
+ * ```
71
+ */
72
+ export function useAnalytics(): UseAnalyticsResult {
73
+ const clientRef = useRef<AnalyticsClient | null>(null);
74
+ const [isClient, setIsClient] = useState(false);
75
+
76
+ // SSR guard - only initialize on client
77
+ useEffect(() => {
78
+ setIsClient(true);
79
+ if (!clientRef.current) {
80
+ clientRef.current = getAnalytics();
81
+ }
82
+ }, []);
83
+
84
+ // Use no-op client during SSR, real client after hydration
85
+ const client = isClient && clientRef.current ? clientRef.current : noopClient;
86
+
87
+ const track = useCallback(
88
+ (eventName: string, properties?: Record<string, unknown>) => {
89
+ client.track(eventName, properties);
90
+ },
91
+ [client]
92
+ );
93
+
94
+ const trackClick = useCallback(
95
+ (eventName: string, properties?: Record<string, unknown>) => {
96
+ return (_event: React.MouseEvent) => {
97
+ client.track(eventName, properties);
98
+ };
99
+ },
100
+ [client]
101
+ );
102
+
103
+ const flush = useCallback(() => {
104
+ return client.flush();
105
+ }, [client]);
106
+
107
+ const optOut = useCallback(() => {
108
+ client.optOut();
109
+ }, [client]);
110
+
111
+ const optIn = useCallback(() => {
112
+ client.optIn();
113
+ }, [client]);
114
+
115
+ return {
116
+ track,
117
+ trackClick,
118
+ enabled: client.isEnabled(),
119
+ flush,
120
+ optOut,
121
+ optIn,
122
+ };
123
+ }
124
+
125
+ /**
126
+ * Options for useTrackOnMount
127
+ */
128
+ export interface TrackOnMountOptions {
129
+ /**
130
+ * Event name to track
131
+ */
132
+ eventName: string;
133
+
134
+ /**
135
+ * Event properties
136
+ */
137
+ properties?: Record<string, unknown>;
138
+
139
+ /**
140
+ * Only track once (default: true)
141
+ */
142
+ once?: boolean;
143
+ }
144
+
145
+ /**
146
+ * Hook to track an event when a component mounts
147
+ *
148
+ * @example
149
+ * ```tsx
150
+ * function ProductPage({ productId }: { productId: string }) {
151
+ * useTrackOnMount({
152
+ * eventName: 'product_viewed',
153
+ * properties: { productId }
154
+ * });
155
+ *
156
+ * return <div>Product {productId}</div>;
157
+ * }
158
+ * ```
159
+ */
160
+ export function useTrackOnMount(options: TrackOnMountOptions): void {
161
+ const { eventName, properties, once = true } = options;
162
+ const trackedRef = useRef(false);
163
+ const { track } = useAnalytics();
164
+
165
+ useEffect(() => {
166
+ if (once && trackedRef.current) {
167
+ return;
168
+ }
169
+
170
+ track(eventName, properties);
171
+ trackedRef.current = true;
172
+ }, [eventName, once, properties, track]);
173
+ }
174
+
175
+ /**
176
+ * Higher-order component for tracking page views
177
+ *
178
+ * @example
179
+ * ```tsx
180
+ * const TrackedHomePage = withPageTracking(HomePage, 'home');
181
+ * ```
182
+ */
183
+ export function withPageTracking<P extends object>(
184
+ Component: React.ComponentType<P>,
185
+ pageName?: string
186
+ ): React.ComponentType<P> {
187
+ const displayName = Component.displayName || Component.name || 'Component';
188
+
189
+ function TrackedComponent(props: P) {
190
+ useTrackOnMount({
191
+ eventName: 'page_view',
192
+ properties: {
193
+ page: pageName || displayName,
194
+ },
195
+ });
196
+
197
+ return <Component {...props} />;
198
+ }
199
+
200
+ TrackedComponent.displayName = `withPageTracking(${displayName})`;
201
+
202
+ return TrackedComponent;
203
+ }
package/src/api.ts CHANGED
@@ -63,6 +63,16 @@ type RouteChunkType<TRoute extends RouteKey> = TRoute extends keyof RouteRegistr
63
63
  : unknown
64
64
  : unknown;
65
65
 
66
+ /**
67
+ * Extract path params type for a specific route.
68
+ * Returns the typed params object if the route has path parameters, otherwise never.
69
+ */
70
+ export type RoutePathParams<TRoute extends RouteKey> = TRoute extends keyof RouteRegistry
71
+ ? RouteRegistry[TRoute] extends { params: infer P }
72
+ ? P
73
+ : never
74
+ : never;
75
+
66
76
  /**
67
77
  * Common options shared by all UseAPI configurations
68
78
  */
@@ -100,6 +110,13 @@ type UseAPICommonOptions<TRoute extends RouteKey> = {
100
110
  : {
101
111
  /** Input data for the request (required for POST/PUT/PATCH/DELETE) */
102
112
  input?: RouteInput<TRoute>;
113
+ }) &
114
+ (RoutePathParams<TRoute> extends never
115
+ ? // eslint-disable-next-line @typescript-eslint/no-empty-object-type
116
+ {} // No params property - omit entirely for routes without path parameters
117
+ : {
118
+ /** Path parameters for routes with dynamic segments (e.g., { id: '123' } for /users/:id) */
119
+ params: RoutePathParams<TRoute>;
103
120
  });
104
121
 
105
122
  /**
@@ -222,6 +239,21 @@ function toSearchParams(
222
239
  return new URLSearchParams(query);
223
240
  }
224
241
 
242
+ /**
243
+ * Substitute path parameters in a URL path template.
244
+ * E.g., '/users/:id' with { id: '123' } becomes '/users/123'
245
+ */
246
+ function substitutePathParams(pathTemplate: string, pathParams?: Record<string, string>): string {
247
+ if (!pathParams) return pathTemplate;
248
+
249
+ let result = pathTemplate;
250
+ for (const [key, value] of Object.entries(pathParams)) {
251
+ result = result.replace(new RegExp(`:${key}\\??`, 'g'), encodeURIComponent(value));
252
+ result = result.replace(new RegExp(`\\*${key}`, 'g'), encodeURIComponent(value));
253
+ }
254
+ return result;
255
+ }
256
+
225
257
  /**
226
258
  * Process ReadableStream with delimiter-based parsing
227
259
  */
@@ -416,6 +448,9 @@ export function useAPI<TRoute extends RouteKey>(
416
448
  onError,
417
449
  } = options;
418
450
 
451
+ // Extract params safely
452
+ const pathParams = 'params' in options ? options.params : undefined;
453
+
419
454
  const delimiter = 'delimiter' in options ? (options.delimiter ?? '\n') : '\n';
420
455
  const onChunk = 'onChunk' in options ? options.onChunk : undefined;
421
456
 
@@ -425,19 +460,22 @@ export function useAPI<TRoute extends RouteKey>(
425
460
 
426
461
  // Extract method and path from either route OR {method, path}
427
462
  let method: string;
428
- let path: string;
463
+ let basePath: string;
429
464
 
430
465
  if ('route' in options && options.route) {
431
466
  const parsed = parseRouteKey(options.route as string);
432
467
  method = parsed.method;
433
- path = parsed.path;
468
+ basePath = parsed.path;
434
469
  } else if ('method' in options && 'path' in options && options.method && options.path) {
435
470
  method = options.method;
436
- path = options.path;
471
+ basePath = options.path;
437
472
  } else {
438
473
  throw new Error('useAPI requires either route OR {method, path}');
439
474
  }
440
475
 
476
+ // Substitute path parameters
477
+ const path = substitutePathParams(basePath, pathParams as Record<string, string> | undefined);
478
+
441
479
  const [data, setData] = useState<RouteOutput<TRoute> | undefined>(undefined);
442
480
  const [error, setError] = useState<Error | null>(null);
443
481
  const [isLoading, setIsLoading] = useState(false);
package/src/index.ts CHANGED
@@ -37,11 +37,21 @@ export {
37
37
  type RouteIsStream,
38
38
  type RouteInput,
39
39
  type RouteOutput,
40
+ type RoutePathParams,
40
41
  type UseAPIOptions,
41
42
  type UseAPIResult,
42
43
  } from './api';
43
44
  export { useJsonMemo } from './memo';
44
45
 
46
+ // Analytics
47
+ export {
48
+ useAnalytics,
49
+ useTrackOnMount,
50
+ withPageTracking,
51
+ type UseAnalyticsResult,
52
+ type TrackOnMountOptions,
53
+ } from './analytics.js';
54
+
45
55
  // Re-export route registry types from local types file
46
56
  // These are augmented by generated code via `declare module '@agentuity/react'`
47
57
  export type { RouteRegistry, WebSocketRouteRegistry, SSERouteRegistry } from './types';