@grainql/analytics-web 1.7.2 → 2.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.
Files changed (116) hide show
  1. package/README.md +71 -777
  2. package/dist/cjs/index.d.ts +35 -2
  3. package/dist/cjs/index.d.ts.map +1 -1
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/react/GrainProvider.d.ts +11 -0
  6. package/dist/cjs/react/GrainProvider.d.ts.map +1 -0
  7. package/dist/cjs/react/GrainProvider.js +79 -0
  8. package/dist/cjs/react/GrainProvider.js.map +1 -0
  9. package/dist/cjs/react/context.d.ts +11 -0
  10. package/dist/cjs/react/context.d.ts.map +1 -0
  11. package/dist/cjs/react/context.js +43 -0
  12. package/dist/cjs/react/context.js.map +1 -0
  13. package/dist/cjs/react/hooks/useAllConfigs.d.ts +8 -0
  14. package/dist/cjs/react/hooks/useAllConfigs.d.ts.map +1 -0
  15. package/dist/cjs/react/hooks/useAllConfigs.js +112 -0
  16. package/dist/cjs/react/hooks/useAllConfigs.js.map +1 -0
  17. package/dist/cjs/react/hooks/useConfig.d.ts +9 -0
  18. package/dist/cjs/react/hooks/useConfig.d.ts.map +1 -0
  19. package/dist/cjs/react/hooks/useConfig.js +116 -0
  20. package/dist/cjs/react/hooks/useConfig.js.map +1 -0
  21. package/dist/cjs/react/hooks/useGrainAnalytics.d.ts +6 -0
  22. package/dist/cjs/react/hooks/useGrainAnalytics.d.ts.map +1 -0
  23. package/dist/cjs/react/hooks/useGrainAnalytics.js +50 -0
  24. package/dist/cjs/react/hooks/useGrainAnalytics.js.map +1 -0
  25. package/dist/cjs/react/hooks/useTrack.d.ts +9 -0
  26. package/dist/cjs/react/hooks/useTrack.d.ts.map +1 -0
  27. package/dist/cjs/react/hooks/useTrack.js +53 -0
  28. package/dist/cjs/react/hooks/useTrack.js.map +1 -0
  29. package/dist/cjs/react/index.d.ts +36 -0
  30. package/dist/cjs/react/index.d.ts.map +1 -0
  31. package/dist/cjs/react/index.js +45 -0
  32. package/dist/cjs/react/index.js.map +1 -0
  33. package/dist/cjs/react/types.d.ts +33 -0
  34. package/dist/cjs/react/types.d.ts.map +1 -0
  35. package/dist/cjs/react/types.js +6 -0
  36. package/dist/cjs/react/types.js.map +1 -0
  37. package/dist/esm/index.d.ts +35 -2
  38. package/dist/esm/index.d.ts.map +1 -1
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/react/GrainProvider.d.ts +11 -0
  41. package/dist/esm/react/GrainProvider.d.ts.map +1 -0
  42. package/dist/esm/react/GrainProvider.js +43 -0
  43. package/dist/esm/react/GrainProvider.js.map +1 -0
  44. package/dist/esm/react/context.d.ts +11 -0
  45. package/dist/esm/react/context.d.ts.map +1 -0
  46. package/dist/esm/react/context.js +7 -0
  47. package/dist/esm/react/context.js.map +1 -0
  48. package/dist/esm/react/hooks/useAllConfigs.d.ts +8 -0
  49. package/dist/esm/react/hooks/useAllConfigs.d.ts.map +1 -0
  50. package/dist/esm/react/hooks/useAllConfigs.js +76 -0
  51. package/dist/esm/react/hooks/useAllConfigs.js.map +1 -0
  52. package/dist/esm/react/hooks/useConfig.d.ts +9 -0
  53. package/dist/esm/react/hooks/useConfig.d.ts.map +1 -0
  54. package/dist/esm/react/hooks/useConfig.js +80 -0
  55. package/dist/esm/react/hooks/useConfig.js.map +1 -0
  56. package/dist/esm/react/hooks/useGrainAnalytics.d.ts +6 -0
  57. package/dist/esm/react/hooks/useGrainAnalytics.d.ts.map +1 -0
  58. package/dist/esm/react/hooks/useGrainAnalytics.js +14 -0
  59. package/dist/esm/react/hooks/useGrainAnalytics.js.map +1 -0
  60. package/dist/esm/react/hooks/useTrack.d.ts +9 -0
  61. package/dist/esm/react/hooks/useTrack.d.ts.map +1 -0
  62. package/dist/esm/react/hooks/useTrack.js +17 -0
  63. package/dist/esm/react/hooks/useTrack.js.map +1 -0
  64. package/dist/esm/react/index.d.ts +36 -0
  65. package/dist/esm/react/index.d.ts.map +1 -0
  66. package/dist/esm/react/index.js +37 -0
  67. package/dist/esm/react/index.js.map +1 -0
  68. package/dist/esm/react/types.d.ts +33 -0
  69. package/dist/esm/react/types.d.ts.map +1 -0
  70. package/dist/esm/react/types.js +5 -0
  71. package/dist/esm/react/types.js.map +1 -0
  72. package/dist/index.d.ts +35 -2
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.global.dev.js +124 -14
  75. package/dist/index.global.dev.js.map +2 -2
  76. package/dist/index.global.js +2 -2
  77. package/dist/index.global.js.map +3 -3
  78. package/dist/index.js +147 -15
  79. package/dist/index.mjs +147 -15
  80. package/dist/react/index.d.ts +405 -0
  81. package/dist/react/index.d.ts.map +1 -0
  82. package/dist/react/index.js +1181 -0
  83. package/dist/react/index.mjs +1176 -0
  84. package/dist/react/react/GrainProvider.d.ts +11 -0
  85. package/dist/react/react/GrainProvider.d.ts.map +1 -0
  86. package/dist/react/react/GrainProvider.js +45 -0
  87. package/dist/react/react/GrainProvider.mjs +42 -0
  88. package/dist/react/react/context.d.ts +11 -0
  89. package/dist/react/react/context.d.ts.map +1 -0
  90. package/dist/react/react/context.js +9 -0
  91. package/dist/react/react/context.mjs +6 -0
  92. package/dist/react/react/hooks/useAllConfigs.d.ts +8 -0
  93. package/dist/react/react/hooks/useAllConfigs.d.ts.map +1 -0
  94. package/dist/react/react/hooks/useAllConfigs.js +78 -0
  95. package/dist/react/react/hooks/useAllConfigs.mjs +75 -0
  96. package/dist/react/react/hooks/useConfig.d.ts +9 -0
  97. package/dist/react/react/hooks/useConfig.d.ts.map +1 -0
  98. package/dist/react/react/hooks/useConfig.js +82 -0
  99. package/dist/react/react/hooks/useConfig.mjs +79 -0
  100. package/dist/react/react/hooks/useGrainAnalytics.d.ts +6 -0
  101. package/dist/react/react/hooks/useGrainAnalytics.d.ts.map +1 -0
  102. package/dist/react/react/hooks/useGrainAnalytics.js +16 -0
  103. package/dist/react/react/hooks/useGrainAnalytics.mjs +13 -0
  104. package/dist/react/react/hooks/useTrack.d.ts +9 -0
  105. package/dist/react/react/hooks/useTrack.d.ts.map +1 -0
  106. package/dist/react/react/hooks/useTrack.js +19 -0
  107. package/dist/react/react/hooks/useTrack.mjs +16 -0
  108. package/dist/react/react/index.d.ts +36 -0
  109. package/dist/react/react/index.d.ts.map +1 -0
  110. package/dist/react/react/index.js +44 -0
  111. package/dist/react/react/index.mjs +36 -0
  112. package/dist/react/react/types.d.ts +33 -0
  113. package/dist/react/react/types.d.ts.map +1 -0
  114. package/dist/react/react/types.js +5 -0
  115. package/dist/react/react/types.mjs +4 -0
  116. package/package.json +20 -2
@@ -0,0 +1,33 @@
1
+ /**
2
+ * React-specific types for Grain Analytics
3
+ */
4
+ import type { GrainAnalytics, GrainConfig, SendEventOptions } from '../index';
5
+ export interface GrainProviderProps {
6
+ children: React.ReactNode;
7
+ client?: GrainAnalytics;
8
+ config?: GrainConfig;
9
+ }
10
+ export interface UseConfigOptions {
11
+ forceRefresh?: boolean;
12
+ immediateKeys?: string[];
13
+ properties?: Record<string, string>;
14
+ }
15
+ export interface UseConfigResult {
16
+ value: string | undefined;
17
+ isRefreshing: boolean;
18
+ error: Error | null;
19
+ refresh: () => Promise<void>;
20
+ }
21
+ export interface UseAllConfigsOptions {
22
+ forceRefresh?: boolean;
23
+ immediateKeys?: string[];
24
+ properties?: Record<string, string>;
25
+ }
26
+ export interface UseAllConfigsResult {
27
+ configs: Record<string, string>;
28
+ isRefreshing: boolean;
29
+ error: Error | null;
30
+ refresh: () => Promise<void>;
31
+ }
32
+ export type TrackFunction = (eventName: string, properties?: Record<string, unknown>, options?: SendEventOptions) => Promise<void>;
33
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/react/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,MAAM,aAAa,GAAG,CAC1B,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,CAAC,EAAE,gBAAgB,KACvB,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * React-specific types for Grain Analytics
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/react/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/dist/index.d.ts CHANGED
@@ -41,6 +41,11 @@ export interface SendEventOptions {
41
41
  export interface SetPropertyOptions {
42
42
  userId?: string;
43
43
  }
44
+ export interface LoginOptions {
45
+ userId?: string;
46
+ authToken?: string;
47
+ authStrategy?: AuthStrategy;
48
+ }
44
49
  export interface PropertyPayload {
45
50
  userId: string;
46
51
  [key: string]: string;
@@ -190,9 +195,9 @@ export declare class GrainAnalytics {
190
195
  */
191
196
  private generateUUID;
192
197
  /**
193
- * Format UUID for anonymous user ID (remove dashes and prefix with 'temp:')
198
+ * Generate a proper UUIDv4 identifier for anonymous user ID
194
199
  */
195
- private formatAnonymousUserId;
200
+ private generateAnonymousUserId;
196
201
  /**
197
202
  * Initialize persistent anonymous user ID from localStorage or create new one
198
203
  */
@@ -247,6 +252,34 @@ export declare class GrainAnalytics {
247
252
  * Get current effective user ID (global userId or persistent anonymous ID)
248
253
  */
249
254
  getEffectiveUserIdPublic(): string;
255
+ /**
256
+ * Login with auth token or userId on the fly
257
+ *
258
+ * @example
259
+ * // Login with userId only
260
+ * client.login({ userId: 'user123' });
261
+ *
262
+ * // Login with auth token (automatically sets authStrategy to JWT)
263
+ * client.login({ authToken: 'jwt-token-here' });
264
+ *
265
+ * // Login with both userId and auth token
266
+ * client.login({ userId: 'user123', authToken: 'jwt-token-here' });
267
+ *
268
+ * // Override auth strategy
269
+ * client.login({ userId: 'user123', authStrategy: 'SERVER_SIDE' });
270
+ */
271
+ login(options: LoginOptions): void;
272
+ /**
273
+ * Logout and clear user session, fall back to UUIDv4 identifier
274
+ *
275
+ * @example
276
+ * // Logout user and return to anonymous mode
277
+ * client.logout();
278
+ *
279
+ * // After logout, events will use the persistent UUIDv4 identifier
280
+ * client.track('page_view', { page: 'home' });
281
+ */
282
+ logout(): void;
250
283
  /**
251
284
  * Set user properties
252
285
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /* Grain Analytics Web SDK v1.7.2 | MIT License | Development Build */
1
+ /* Grain Analytics Web SDK v2.0.0 | MIT License | Development Build */
2
2
  "use strict";
3
3
  var Grain = (() => {
4
4
  var __defProp = Object.defineProperty;
@@ -93,10 +93,10 @@ var Grain = (() => {
93
93
  });
94
94
  }
95
95
  /**
96
- * Format UUID for anonymous user ID (remove dashes and prefix with 'temp:')
96
+ * Generate a proper UUIDv4 identifier for anonymous user ID
97
97
  */
98
- formatAnonymousUserId(uuid) {
99
- return `temp:${uuid.replace(/-/g, "")}`;
98
+ generateAnonymousUserId() {
99
+ return this.generateUUID();
100
100
  }
101
101
  /**
102
102
  * Initialize persistent anonymous user ID from localStorage or create new one
@@ -111,22 +111,35 @@ var Grain = (() => {
111
111
  this.persistentAnonymousUserId = stored;
112
112
  this.log("Loaded persistent anonymous user ID:", this.persistentAnonymousUserId);
113
113
  } else {
114
- const uuid = this.generateUUID();
115
- this.persistentAnonymousUserId = this.formatAnonymousUserId(uuid);
114
+ this.persistentAnonymousUserId = this.generateAnonymousUserId();
116
115
  localStorage.setItem(storageKey, this.persistentAnonymousUserId);
117
116
  this.log("Generated new persistent anonymous user ID:", this.persistentAnonymousUserId);
118
117
  }
119
118
  } catch (error) {
120
119
  this.log("Failed to initialize persistent anonymous user ID:", error);
121
- const uuid = this.generateUUID();
122
- this.persistentAnonymousUserId = this.formatAnonymousUserId(uuid);
120
+ this.persistentAnonymousUserId = this.generateAnonymousUserId();
123
121
  }
124
122
  }
125
123
  /**
126
124
  * Get the effective user ID (global userId or persistent anonymous ID)
127
125
  */
128
126
  getEffectiveUserId() {
129
- return this.globalUserId || this.persistentAnonymousUserId || "anonymous";
127
+ if (this.globalUserId) {
128
+ return this.globalUserId;
129
+ }
130
+ if (this.persistentAnonymousUserId) {
131
+ return this.persistentAnonymousUserId;
132
+ }
133
+ this.persistentAnonymousUserId = this.generateAnonymousUserId();
134
+ if (typeof window !== "undefined") {
135
+ try {
136
+ const storageKey = `grain_anonymous_user_id_${this.config.tenantId}`;
137
+ localStorage.setItem(storageKey, this.persistentAnonymousUserId);
138
+ } catch (error) {
139
+ this.log("Failed to persist generated anonymous user ID:", error);
140
+ }
141
+ }
142
+ return this.persistentAnonymousUserId;
130
143
  }
131
144
  log(...args) {
132
145
  if (this.config.debug) {
@@ -453,6 +466,18 @@ var Grain = (() => {
453
466
  this.globalUserId = userId;
454
467
  if (userId) {
455
468
  this.persistentAnonymousUserId = null;
469
+ } else {
470
+ if (!this.persistentAnonymousUserId) {
471
+ this.persistentAnonymousUserId = this.generateAnonymousUserId();
472
+ if (typeof window !== "undefined") {
473
+ try {
474
+ const storageKey = `grain_anonymous_user_id_${this.config.tenantId}`;
475
+ localStorage.setItem(storageKey, this.persistentAnonymousUserId);
476
+ } catch (error) {
477
+ this.log("Failed to persist new anonymous user ID:", error);
478
+ }
479
+ }
480
+ }
456
481
  }
457
482
  }
458
483
  /**
@@ -467,6 +492,93 @@ var Grain = (() => {
467
492
  getEffectiveUserIdPublic() {
468
493
  return this.getEffectiveUserId();
469
494
  }
495
+ /**
496
+ * Login with auth token or userId on the fly
497
+ *
498
+ * @example
499
+ * // Login with userId only
500
+ * client.login({ userId: 'user123' });
501
+ *
502
+ * // Login with auth token (automatically sets authStrategy to JWT)
503
+ * client.login({ authToken: 'jwt-token-here' });
504
+ *
505
+ * // Login with both userId and auth token
506
+ * client.login({ userId: 'user123', authToken: 'jwt-token-here' });
507
+ *
508
+ * // Override auth strategy
509
+ * client.login({ userId: 'user123', authStrategy: 'SERVER_SIDE' });
510
+ */
511
+ login(options) {
512
+ try {
513
+ if (this.isDestroyed) {
514
+ const error = new Error("Grain Analytics: Client has been destroyed");
515
+ const formattedError = this.formatError(error, "login (client destroyed)");
516
+ this.logError(formattedError);
517
+ return;
518
+ }
519
+ if (options.userId) {
520
+ this.log(`Login: Setting user ID to ${options.userId}`);
521
+ this.globalUserId = options.userId;
522
+ this.persistentAnonymousUserId = null;
523
+ }
524
+ if (options.authToken) {
525
+ this.log("Login: Setting auth token");
526
+ if (this.config.authStrategy === "NONE") {
527
+ this.config.authStrategy = "JWT";
528
+ }
529
+ this.config.authProvider = {
530
+ getToken: () => options.authToken
531
+ };
532
+ }
533
+ if (options.authStrategy) {
534
+ this.log(`Login: Setting auth strategy to ${options.authStrategy}`);
535
+ this.config.authStrategy = options.authStrategy;
536
+ }
537
+ this.log(`Login successful. Effective user ID: ${this.getEffectiveUserId()}`);
538
+ } catch (error) {
539
+ const formattedError = this.formatError(error, "login");
540
+ this.logError(formattedError);
541
+ }
542
+ }
543
+ /**
544
+ * Logout and clear user session, fall back to UUIDv4 identifier
545
+ *
546
+ * @example
547
+ * // Logout user and return to anonymous mode
548
+ * client.logout();
549
+ *
550
+ * // After logout, events will use the persistent UUIDv4 identifier
551
+ * client.track('page_view', { page: 'home' });
552
+ */
553
+ logout() {
554
+ try {
555
+ if (this.isDestroyed) {
556
+ const error = new Error("Grain Analytics: Client has been destroyed");
557
+ const formattedError = this.formatError(error, "logout (client destroyed)");
558
+ this.logError(formattedError);
559
+ return;
560
+ }
561
+ this.log("Logout: Clearing user session");
562
+ this.globalUserId = null;
563
+ this.config.authStrategy = "NONE";
564
+ this.config.authProvider = void 0;
565
+ if (!this.persistentAnonymousUserId) {
566
+ this.persistentAnonymousUserId = this.generateAnonymousUserId();
567
+ if (typeof window !== "undefined") {
568
+ try {
569
+ const storageKey = `grain_anonymous_user_id_${this.config.tenantId}`;
570
+ localStorage.setItem(storageKey, this.persistentAnonymousUserId);
571
+ } catch (error) {
572
+ this.log("Failed to persist new anonymous user ID after logout:", error);
573
+ }
574
+ }
575
+ }
576
+ this.log(`Logout successful. Effective user ID: ${this.getEffectiveUserId()}`);
577
+ } catch (error) {
578
+ const formattedError = this.formatError(error, "logout");
579
+ this.logError(formattedError);
580
+ }
581
+ }
470
582
  /**
471
583
  * Set user properties
472
584
  */
@@ -893,7 +1005,7 @@ var Grain = (() => {
893
1005
  clearInterval(this.configRefreshTimer);
894
1006
  }
895
1007
  this.configRefreshTimer = window.setInterval(() => {
896
- if (!this.isDestroyed && this.globalUserId) {
1008
+ if (!this.isDestroyed) {
897
1009
  this.fetchConfig().catch((error) => {
898
1010
  const formattedError = this.formatError(error, "auto-config refresh");
899
1011
  this.logError(formattedError);
@@ -915,10 +1027,8 @@ var Grain = (() => {
915
1027
  */
916
1028
  async preloadConfig(immediateKeys = [], properties) {
917
1029
  try {
918
- if (!this.globalUserId) {
919
- this.log("Cannot preload config: no user ID set");
920
- return;
921
- }
1030
+ const effectiveUserId = this.getEffectiveUserId();
1031
+ this.log(`Preloading config for user: ${effectiveUserId}`);
922
1032
  const response = await this.fetchConfig({ immediateKeys, properties });
923
1033
  if (response) {
924
1034
  this.startConfigRefreshTimer();