@grainql/analytics-web 1.0.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.
- package/README.md +228 -0
- package/dist/cjs/index.d.ts +86 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/esm/index.d.ts +86 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/index.d.ts +86 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.global.dev.js +292 -0
- package/dist/index.global.dev.js.map +7 -0
- package/dist/index.global.js +3 -0
- package/dist/index.global.js.map +7 -0
- package/dist/index.js +294 -0
- package/dist/index.mjs +289 -0
- package/package.json +48 -0
package/README.md
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# @grain-analytics/web
|
|
2
|
+
|
|
3
|
+
A lightweight, dependency-free TypeScript SDK for sending analytics events to Grain's REST API with automatic batching, retry logic, and reliable event delivery.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- 🚀 **Zero dependencies** - Tiny bundle size
|
|
8
|
+
- 📦 **Automatic batching** - Efficient event queueing and bulk sending
|
|
9
|
+
- 🔄 **Retry logic** - Exponential backoff for failed requests
|
|
10
|
+
- 📡 **Beacon API** - Reliable event delivery on page exit
|
|
11
|
+
- 🔐 **Multiple auth strategies** - NONE, server-side, and JWT support
|
|
12
|
+
- 📱 **Cross-platform** - Works in browsers, Node.js, and React Native
|
|
13
|
+
- 🎯 **TypeScript first** - Full type safety out of the box
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install @grain-analytics/web
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Quick Start
|
|
22
|
+
|
|
23
|
+
### Basic Usage (No Authentication)
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
import { createGrainAnalytics } from '@grain-analytics/web';
|
|
27
|
+
|
|
28
|
+
const grain = createGrainAnalytics({
|
|
29
|
+
tenantId: 'your-tenant-id',
|
|
30
|
+
authStrategy: 'NONE'
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// Track an event
|
|
34
|
+
grain.track('page_view', {
|
|
35
|
+
page: '/home',
|
|
36
|
+
referrer: document.referrer
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
// Track with user ID
|
|
40
|
+
grain.track('button_click', {
|
|
41
|
+
button: 'signup',
|
|
42
|
+
userId: 'user123'
|
|
43
|
+
});
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Server-Side Authentication
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
const grain = createGrainAnalytics({
|
|
50
|
+
tenantId: 'your-tenant-id',
|
|
51
|
+
authStrategy: 'SERVER_SIDE',
|
|
52
|
+
secretKey: 'your-secret-key'
|
|
53
|
+
});
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### JWT Authentication
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
const grain = createGrainAnalytics({
|
|
60
|
+
tenantId: 'your-tenant-id',
|
|
61
|
+
authStrategy: 'JWT',
|
|
62
|
+
authProvider: {
|
|
63
|
+
async getToken() {
|
|
64
|
+
// Return your JWT token from Auth0, next-auth, etc.
|
|
65
|
+
return await getAccessToken();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## API Reference
|
|
72
|
+
|
|
73
|
+
### Configuration Options
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
interface GrainConfig {
|
|
77
|
+
tenantId: string; // Required: Your Grain tenant ID
|
|
78
|
+
apiUrl?: string; // API base URL (default: 'https://api.grainql.com')
|
|
79
|
+
authStrategy?: AuthStrategy; // 'NONE' | 'SERVER_SIDE' | 'JWT' (default: 'NONE')
|
|
80
|
+
secretKey?: string; // Required for SERVER_SIDE auth
|
|
81
|
+
authProvider?: AuthProvider; // Required for JWT auth
|
|
82
|
+
batchSize?: number; // Events per batch (default: 50)
|
|
83
|
+
flushInterval?: number; // Auto-flush interval in ms (default: 5000)
|
|
84
|
+
retryAttempts?: number; // Retry attempts for failed requests (default: 3)
|
|
85
|
+
retryDelay?: number; // Base retry delay in ms (default: 1000)
|
|
86
|
+
debug?: boolean; // Enable debug logging (default: false)
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Methods
|
|
91
|
+
|
|
92
|
+
#### `track(eventName, properties?, options?)`
|
|
93
|
+
|
|
94
|
+
Track a single event:
|
|
95
|
+
|
|
96
|
+
```typescript
|
|
97
|
+
grain.track('purchase', {
|
|
98
|
+
product_id: 'abc123',
|
|
99
|
+
price: 29.99,
|
|
100
|
+
currency: 'USD'
|
|
101
|
+
});
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
#### `track(event, options?)`
|
|
105
|
+
|
|
106
|
+
Track with a full event object:
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
grain.track({
|
|
110
|
+
eventName: 'purchase',
|
|
111
|
+
userId: 'user123',
|
|
112
|
+
properties: {
|
|
113
|
+
product_id: 'abc123',
|
|
114
|
+
price: 29.99
|
|
115
|
+
},
|
|
116
|
+
timestamp: new Date()
|
|
117
|
+
});
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
#### `flush()`
|
|
121
|
+
|
|
122
|
+
Manually flush all queued events:
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
await grain.flush();
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
#### `identify(userId)`
|
|
129
|
+
|
|
130
|
+
Set user ID for subsequent events:
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
grain.identify('user123');
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
#### `destroy()`
|
|
137
|
+
|
|
138
|
+
Clean up resources and send remaining events:
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
grain.destroy();
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Authentication Strategies
|
|
145
|
+
|
|
146
|
+
### NONE
|
|
147
|
+
No authentication required. Events are sent directly to the API.
|
|
148
|
+
|
|
149
|
+
### SERVER_SIDE
|
|
150
|
+
Use a secret key for server-side authentication:
|
|
151
|
+
- Obtain your secret key from the Grain dashboard
|
|
152
|
+
- Include it in your configuration
|
|
153
|
+
- Events are sent with `Authorization: Chase {SECRET}` header
|
|
154
|
+
|
|
155
|
+
### JWT
|
|
156
|
+
Use JWT tokens for client-side authentication:
|
|
157
|
+
- Configure JWT settings in your Grain tenant
|
|
158
|
+
- Provide an auth provider that returns valid tokens
|
|
159
|
+
- Supports Auth0, next-auth, and other JWT providers
|
|
160
|
+
|
|
161
|
+
## Build Outputs
|
|
162
|
+
|
|
163
|
+
The package provides multiple build formats:
|
|
164
|
+
|
|
165
|
+
- **ESM**: `dist/index.mjs` - Modern ES modules
|
|
166
|
+
- **CommonJS**: `dist/index.js` - Node.js compatible
|
|
167
|
+
- **IIFE**: `dist/index.global.js` - Browser global (`window.Grain`)
|
|
168
|
+
- **Types**: `dist/index.d.ts` - TypeScript definitions
|
|
169
|
+
|
|
170
|
+
### Browser Usage (Script Tag)
|
|
171
|
+
|
|
172
|
+
```html
|
|
173
|
+
<script src="https://unpkg.com/@grain-analytics/web/dist/index.global.js"></script>
|
|
174
|
+
<script>
|
|
175
|
+
const grain = Grain.createGrainAnalytics({
|
|
176
|
+
tenantId: 'your-tenant-id'
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
grain.track('page_view');
|
|
180
|
+
</script>
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Advanced Usage
|
|
184
|
+
|
|
185
|
+
### Custom Auth Provider
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
class Auth0Provider {
|
|
189
|
+
constructor(private auth0Client) {}
|
|
190
|
+
|
|
191
|
+
async getToken() {
|
|
192
|
+
return await this.auth0Client.getTokenSilently();
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
const grain = createGrainAnalytics({
|
|
197
|
+
tenantId: 'your-tenant-id',
|
|
198
|
+
authStrategy: 'JWT',
|
|
199
|
+
authProvider: new Auth0Provider(auth0Client)
|
|
200
|
+
});
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Error Handling
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
try {
|
|
207
|
+
await grain.track('event', { data: 'value' }, { flush: true });
|
|
208
|
+
} catch (error) {
|
|
209
|
+
console.error('Failed to send event:', error);
|
|
210
|
+
}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Debug Mode
|
|
214
|
+
|
|
215
|
+
```typescript
|
|
216
|
+
const grain = createGrainAnalytics({
|
|
217
|
+
tenantId: 'your-tenant-id',
|
|
218
|
+
debug: true // Enables console logging
|
|
219
|
+
});
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## License
|
|
223
|
+
|
|
224
|
+
MIT
|
|
225
|
+
|
|
226
|
+
## Support
|
|
227
|
+
|
|
228
|
+
For questions and support, please visit [grainql.com](https://grainql.com) or contact our support team.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grain Analytics Web SDK
|
|
3
|
+
* A lightweight, dependency-free TypeScript SDK for sending analytics events to Grain's REST API
|
|
4
|
+
*/
|
|
5
|
+
export interface GrainEvent {
|
|
6
|
+
eventName: string;
|
|
7
|
+
userId?: string;
|
|
8
|
+
properties?: Record<string, unknown>;
|
|
9
|
+
timestamp?: Date;
|
|
10
|
+
}
|
|
11
|
+
export interface EventRow {
|
|
12
|
+
eventName: string;
|
|
13
|
+
eventTs: string;
|
|
14
|
+
userId: string;
|
|
15
|
+
properties: Record<string, unknown>;
|
|
16
|
+
eventDate: string;
|
|
17
|
+
insertId: string;
|
|
18
|
+
}
|
|
19
|
+
export type AuthStrategy = 'NONE' | 'SERVER_SIDE' | 'JWT';
|
|
20
|
+
export interface AuthProvider {
|
|
21
|
+
getToken(): Promise<string> | string;
|
|
22
|
+
}
|
|
23
|
+
export interface GrainConfig {
|
|
24
|
+
tenantId: string;
|
|
25
|
+
apiUrl?: string;
|
|
26
|
+
authStrategy?: AuthStrategy;
|
|
27
|
+
secretKey?: string;
|
|
28
|
+
authProvider?: AuthProvider;
|
|
29
|
+
batchSize?: number;
|
|
30
|
+
flushInterval?: number;
|
|
31
|
+
retryAttempts?: number;
|
|
32
|
+
retryDelay?: number;
|
|
33
|
+
debug?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface SendEventOptions {
|
|
36
|
+
flush?: boolean;
|
|
37
|
+
}
|
|
38
|
+
export declare class GrainAnalytics {
|
|
39
|
+
private config;
|
|
40
|
+
private eventQueue;
|
|
41
|
+
private flushTimer;
|
|
42
|
+
private isDestroyed;
|
|
43
|
+
constructor(config: GrainConfig);
|
|
44
|
+
private validateConfig;
|
|
45
|
+
private log;
|
|
46
|
+
private generateInsertId;
|
|
47
|
+
private formatEvent;
|
|
48
|
+
private getAuthHeaders;
|
|
49
|
+
private delay;
|
|
50
|
+
private isRetriableError;
|
|
51
|
+
private sendEvents;
|
|
52
|
+
private sendEventsWithBeacon;
|
|
53
|
+
private startFlushTimer;
|
|
54
|
+
private setupBeforeUnload;
|
|
55
|
+
/**
|
|
56
|
+
* Track an analytics event
|
|
57
|
+
*/
|
|
58
|
+
track(eventName: string, properties?: Record<string, unknown>, options?: SendEventOptions): Promise<void>;
|
|
59
|
+
track(event: GrainEvent, options?: SendEventOptions): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Identify a user (sets userId for subsequent events)
|
|
62
|
+
*/
|
|
63
|
+
identify(userId: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* Manually flush all queued events
|
|
66
|
+
*/
|
|
67
|
+
flush(): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Destroy the client and clean up resources
|
|
70
|
+
*/
|
|
71
|
+
destroy(): void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create a new Grain Analytics client
|
|
75
|
+
*/
|
|
76
|
+
export declare function createGrainAnalytics(config: GrainConfig): GrainAnalytics;
|
|
77
|
+
export default GrainAnalytics;
|
|
78
|
+
declare global {
|
|
79
|
+
interface Window {
|
|
80
|
+
Grain?: {
|
|
81
|
+
GrainAnalytics: typeof GrainAnalytics;
|
|
82
|
+
createGrainAnalytics: typeof createGrainAnalytics;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAUD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,WAAW;IAkB/B,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;YAeL,cAAc;YAsBd,KAAK;IAInB,OAAO,CAAC,gBAAgB;YAgBV,UAAU;YA+DV,oBAAoB;IAkClC,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,iBAAiB;IA4BzB;;OAEG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IACzG,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCzE;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM9B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;IACH,OAAO,IAAI,IAAI;CAgBhB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAExE;AAGD,eAAe,cAAc,CAAC;AAG9B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,CAAC,EAAE;YACN,cAAc,EAAE,OAAO,cAAc,CAAC;YACtC,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;SACnD,CAAC;KACH;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grain Analytics Web SDK
|
|
3
|
+
* A lightweight, dependency-free TypeScript SDK for sending analytics events to Grain's REST API
|
|
4
|
+
*/
|
|
5
|
+
export interface GrainEvent {
|
|
6
|
+
eventName: string;
|
|
7
|
+
userId?: string;
|
|
8
|
+
properties?: Record<string, unknown>;
|
|
9
|
+
timestamp?: Date;
|
|
10
|
+
}
|
|
11
|
+
export interface EventRow {
|
|
12
|
+
eventName: string;
|
|
13
|
+
eventTs: string;
|
|
14
|
+
userId: string;
|
|
15
|
+
properties: Record<string, unknown>;
|
|
16
|
+
eventDate: string;
|
|
17
|
+
insertId: string;
|
|
18
|
+
}
|
|
19
|
+
export type AuthStrategy = 'NONE' | 'SERVER_SIDE' | 'JWT';
|
|
20
|
+
export interface AuthProvider {
|
|
21
|
+
getToken(): Promise<string> | string;
|
|
22
|
+
}
|
|
23
|
+
export interface GrainConfig {
|
|
24
|
+
tenantId: string;
|
|
25
|
+
apiUrl?: string;
|
|
26
|
+
authStrategy?: AuthStrategy;
|
|
27
|
+
secretKey?: string;
|
|
28
|
+
authProvider?: AuthProvider;
|
|
29
|
+
batchSize?: number;
|
|
30
|
+
flushInterval?: number;
|
|
31
|
+
retryAttempts?: number;
|
|
32
|
+
retryDelay?: number;
|
|
33
|
+
debug?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface SendEventOptions {
|
|
36
|
+
flush?: boolean;
|
|
37
|
+
}
|
|
38
|
+
export declare class GrainAnalytics {
|
|
39
|
+
private config;
|
|
40
|
+
private eventQueue;
|
|
41
|
+
private flushTimer;
|
|
42
|
+
private isDestroyed;
|
|
43
|
+
constructor(config: GrainConfig);
|
|
44
|
+
private validateConfig;
|
|
45
|
+
private log;
|
|
46
|
+
private generateInsertId;
|
|
47
|
+
private formatEvent;
|
|
48
|
+
private getAuthHeaders;
|
|
49
|
+
private delay;
|
|
50
|
+
private isRetriableError;
|
|
51
|
+
private sendEvents;
|
|
52
|
+
private sendEventsWithBeacon;
|
|
53
|
+
private startFlushTimer;
|
|
54
|
+
private setupBeforeUnload;
|
|
55
|
+
/**
|
|
56
|
+
* Track an analytics event
|
|
57
|
+
*/
|
|
58
|
+
track(eventName: string, properties?: Record<string, unknown>, options?: SendEventOptions): Promise<void>;
|
|
59
|
+
track(event: GrainEvent, options?: SendEventOptions): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Identify a user (sets userId for subsequent events)
|
|
62
|
+
*/
|
|
63
|
+
identify(userId: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* Manually flush all queued events
|
|
66
|
+
*/
|
|
67
|
+
flush(): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Destroy the client and clean up resources
|
|
70
|
+
*/
|
|
71
|
+
destroy(): void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create a new Grain Analytics client
|
|
75
|
+
*/
|
|
76
|
+
export declare function createGrainAnalytics(config: GrainConfig): GrainAnalytics;
|
|
77
|
+
export default GrainAnalytics;
|
|
78
|
+
declare global {
|
|
79
|
+
interface Window {
|
|
80
|
+
Grain?: {
|
|
81
|
+
GrainAnalytics: typeof GrainAnalytics;
|
|
82
|
+
createGrainAnalytics: typeof createGrainAnalytics;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAUD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,WAAW;IAkB/B,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;YAeL,cAAc;YAsBd,KAAK;IAInB,OAAO,CAAC,gBAAgB;YAgBV,UAAU;YA+DV,oBAAoB;IAkClC,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,iBAAiB;IA4BzB;;OAEG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IACzG,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCzE;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM9B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;IACH,OAAO,IAAI,IAAI;CAgBhB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAExE;AAGD,eAAe,cAAc,CAAC;AAG9B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,CAAC,EAAE;YACN,cAAc,EAAE,OAAO,cAAc,CAAC;YACtC,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;SACnD,CAAC;KACH;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grain Analytics Web SDK
|
|
3
|
+
* A lightweight, dependency-free TypeScript SDK for sending analytics events to Grain's REST API
|
|
4
|
+
*/
|
|
5
|
+
export interface GrainEvent {
|
|
6
|
+
eventName: string;
|
|
7
|
+
userId?: string;
|
|
8
|
+
properties?: Record<string, unknown>;
|
|
9
|
+
timestamp?: Date;
|
|
10
|
+
}
|
|
11
|
+
export interface EventRow {
|
|
12
|
+
eventName: string;
|
|
13
|
+
eventTs: string;
|
|
14
|
+
userId: string;
|
|
15
|
+
properties: Record<string, unknown>;
|
|
16
|
+
eventDate: string;
|
|
17
|
+
insertId: string;
|
|
18
|
+
}
|
|
19
|
+
export type AuthStrategy = 'NONE' | 'SERVER_SIDE' | 'JWT';
|
|
20
|
+
export interface AuthProvider {
|
|
21
|
+
getToken(): Promise<string> | string;
|
|
22
|
+
}
|
|
23
|
+
export interface GrainConfig {
|
|
24
|
+
tenantId: string;
|
|
25
|
+
apiUrl?: string;
|
|
26
|
+
authStrategy?: AuthStrategy;
|
|
27
|
+
secretKey?: string;
|
|
28
|
+
authProvider?: AuthProvider;
|
|
29
|
+
batchSize?: number;
|
|
30
|
+
flushInterval?: number;
|
|
31
|
+
retryAttempts?: number;
|
|
32
|
+
retryDelay?: number;
|
|
33
|
+
debug?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface SendEventOptions {
|
|
36
|
+
flush?: boolean;
|
|
37
|
+
}
|
|
38
|
+
export declare class GrainAnalytics {
|
|
39
|
+
private config;
|
|
40
|
+
private eventQueue;
|
|
41
|
+
private flushTimer;
|
|
42
|
+
private isDestroyed;
|
|
43
|
+
constructor(config: GrainConfig);
|
|
44
|
+
private validateConfig;
|
|
45
|
+
private log;
|
|
46
|
+
private generateInsertId;
|
|
47
|
+
private formatEvent;
|
|
48
|
+
private getAuthHeaders;
|
|
49
|
+
private delay;
|
|
50
|
+
private isRetriableError;
|
|
51
|
+
private sendEvents;
|
|
52
|
+
private sendEventsWithBeacon;
|
|
53
|
+
private startFlushTimer;
|
|
54
|
+
private setupBeforeUnload;
|
|
55
|
+
/**
|
|
56
|
+
* Track an analytics event
|
|
57
|
+
*/
|
|
58
|
+
track(eventName: string, properties?: Record<string, unknown>, options?: SendEventOptions): Promise<void>;
|
|
59
|
+
track(event: GrainEvent, options?: SendEventOptions): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Identify a user (sets userId for subsequent events)
|
|
62
|
+
*/
|
|
63
|
+
identify(userId: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* Manually flush all queued events
|
|
66
|
+
*/
|
|
67
|
+
flush(): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Destroy the client and clean up resources
|
|
70
|
+
*/
|
|
71
|
+
destroy(): void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create a new Grain Analytics client
|
|
75
|
+
*/
|
|
76
|
+
export declare function createGrainAnalytics(config: GrainConfig): GrainAnalytics;
|
|
77
|
+
export default GrainAnalytics;
|
|
78
|
+
declare global {
|
|
79
|
+
interface Window {
|
|
80
|
+
Grain?: {
|
|
81
|
+
GrainAnalytics: typeof GrainAnalytics;
|
|
82
|
+
createGrainAnalytics: typeof createGrainAnalytics;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAUD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,WAAW;IAkB/B,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;YAeL,cAAc;YAsBd,KAAK;IAInB,OAAO,CAAC,gBAAgB;YAgBV,UAAU;YA+DV,oBAAoB;IAkClC,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,iBAAiB;IA4BzB;;OAEG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IACzG,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCzE;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM9B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;IACH,OAAO,IAAI,IAAI;CAgBhB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAExE;AAGD,eAAe,cAAc,CAAC;AAG9B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,CAAC,EAAE;YACN,cAAc,EAAE,OAAO,cAAc,CAAC;YACtC,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;SACnD,CAAC;KACH;CACF"}
|