@aacigroup/aaci_shared 1.0.6 → 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 (45) hide show
  1. package/README.md +67 -207
  2. package/dist/Environment.d.ts +11 -0
  3. package/dist/Environment.d.ts.map +1 -0
  4. package/dist/Environment.js +29 -0
  5. package/dist/Environment.js.map +1 -0
  6. package/dist/GTM.d.ts +17 -0
  7. package/dist/GTM.d.ts.map +1 -0
  8. package/dist/GTM.js +45 -0
  9. package/dist/GTM.js.map +1 -0
  10. package/dist/{track/trackLead.d.ts → LeadTracker.d.ts} +24 -9
  11. package/dist/LeadTracker.d.ts.map +1 -0
  12. package/dist/LeadTracker.js +202 -0
  13. package/dist/LeadTracker.js.map +1 -0
  14. package/dist/PostHog.d.ts +33 -0
  15. package/dist/PostHog.d.ts.map +1 -0
  16. package/dist/PostHog.js +190 -0
  17. package/dist/PostHog.js.map +1 -0
  18. package/dist/index.d.ts +8 -8
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +9 -30
  21. package/dist/index.js.map +1 -1
  22. package/package.json +1 -1
  23. package/dist/track/environment.d.ts +0 -10
  24. package/dist/track/environment.d.ts.map +0 -1
  25. package/dist/track/environment.js +0 -63
  26. package/dist/track/environment.js.map +0 -1
  27. package/dist/track/errorTracking.d.ts +0 -12
  28. package/dist/track/errorTracking.d.ts.map +0 -1
  29. package/dist/track/errorTracking.js +0 -120
  30. package/dist/track/errorTracking.js.map +0 -1
  31. package/dist/track/posthog.d.ts +0 -9
  32. package/dist/track/posthog.d.ts.map +0 -1
  33. package/dist/track/posthog.js +0 -91
  34. package/dist/track/posthog.js.map +0 -1
  35. package/dist/track/trackEventGTM.d.ts +0 -7
  36. package/dist/track/trackEventGTM.d.ts.map +0 -1
  37. package/dist/track/trackEventGTM.js +0 -18
  38. package/dist/track/trackEventGTM.js.map +0 -1
  39. package/dist/track/trackEventPostHog.d.ts +0 -2
  40. package/dist/track/trackEventPostHog.d.ts.map +0 -1
  41. package/dist/track/trackEventPostHog.js +0 -26
  42. package/dist/track/trackEventPostHog.js.map +0 -1
  43. package/dist/track/trackLead.d.ts.map +0 -1
  44. package/dist/track/trackLead.js +0 -190
  45. package/dist/track/trackLead.js.map +0 -1
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LeadTracker = void 0;
4
+ const Environment_1 = require("./Environment");
5
+ class LeadTracker {
6
+ constructor(config) {
7
+ this.config = config;
8
+ this.environment = new Environment_1.Environment({ productionDomains: config.productionDomains });
9
+ this.validateConfig();
10
+ }
11
+ validateConfig() {
12
+ if (!this.config.apiUrl) {
13
+ throw new Error('LeadTracker: apiUrl is required in configuration');
14
+ }
15
+ if (!this.config.apiKey) {
16
+ throw new Error('LeadTracker: apiKey is required in configuration');
17
+ }
18
+ if (!this.config.projectName) {
19
+ throw new Error('LeadTracker: projectName is required in configuration');
20
+ }
21
+ }
22
+ isProduction() {
23
+ return this.environment.isProduction();
24
+ }
25
+ async trackLead(params) {
26
+ if (!params.email && !params.phone) {
27
+ const errorMessage = 'Email or phone is required';
28
+ console.warn('[Lead Tracker]', errorMessage);
29
+ throw new Error(errorMessage);
30
+ }
31
+ console.log('[Lead Tracker] Configuration:', {
32
+ apiUrl: this.config.apiUrl,
33
+ projectName: this.config.projectName,
34
+ isProduction: this.isProduction(),
35
+ currentDomain: this.environment.getCurrentDomain()
36
+ });
37
+ try {
38
+ const response = await fetch(this.config.apiUrl, {
39
+ method: 'POST',
40
+ headers: {
41
+ 'Content-Type': 'application/json',
42
+ 'X-Webhook-Secret': this.config.apiKey,
43
+ },
44
+ body: JSON.stringify({
45
+ project_name: this.config.projectName,
46
+ lead_type: params.lead_type,
47
+ first_name: params.first_name,
48
+ last_name: params.last_name,
49
+ email: params.email,
50
+ phone: params.phone,
51
+ address: params.address,
52
+ extra_data: params.extra_data,
53
+ session_data: params.session_data,
54
+ }),
55
+ });
56
+ const data = await response.json();
57
+ if (!response.ok) {
58
+ console.warn('[Lead Tracker] Error:', data);
59
+ return { status: 'error', message: data.message || 'API error' };
60
+ }
61
+ console.log('[Lead Tracker] Lead tracked successfully');
62
+ return data || { status: 'ok' };
63
+ }
64
+ catch (error) {
65
+ const errorMessage = error instanceof Error ? error.message : 'Network error';
66
+ console.error('[Lead Tracker] Error:', error);
67
+ throw new Error(errorMessage);
68
+ }
69
+ }
70
+ getSessionData() {
71
+ if (typeof window === 'undefined') {
72
+ return {};
73
+ }
74
+ const ua = navigator.userAgent;
75
+ const parsedUA = this.parseUserAgent(ua);
76
+ const sessionData = {
77
+ user_agent: ua,
78
+ browser: parsedUA.browser,
79
+ browser_version: parsedUA.browserVersion,
80
+ os: parsedUA.os,
81
+ device: parsedUA.device,
82
+ landing_page: sessionStorage.getItem('landing_page') || window.location.href,
83
+ current_page: window.location.href,
84
+ session_id: this.getOrCreateSessionId(),
85
+ timestamp: new Date().toISOString(),
86
+ distinct_id: this.getOrCreateDistinctId(),
87
+ };
88
+ const referrer = document.referrer;
89
+ if (referrer)
90
+ sessionData.referrer = referrer;
91
+ const utmSource = this.getUrlParam('utm_source');
92
+ if (utmSource)
93
+ sessionData.utm_source = utmSource;
94
+ const utmMedium = this.getUrlParam('utm_medium');
95
+ if (utmMedium)
96
+ sessionData.utm_medium = utmMedium;
97
+ const utmCampaign = this.getUrlParam('utm_campaign');
98
+ if (utmCampaign)
99
+ sessionData.utm_campaign = utmCampaign;
100
+ const gclid = this.getUrlParam('gclid');
101
+ if (gclid)
102
+ sessionData.gclid = gclid;
103
+ const fbclid = this.getUrlParam('fbclid');
104
+ if (fbclid)
105
+ sessionData.fbclid = fbclid;
106
+ const fbc = this.getCookie('_fbc');
107
+ if (fbc)
108
+ sessionData.fbc = fbc;
109
+ const fbp = this.getCookie('_fbp');
110
+ if (fbp)
111
+ sessionData.fbp = fbp;
112
+ return sessionData;
113
+ }
114
+ parseUserAgent(ua) {
115
+ var _a, _b, _c, _d;
116
+ try {
117
+ let browser = 'Unknown';
118
+ let browserVersion = '';
119
+ if (ua.includes('Firefox/')) {
120
+ browser = 'Firefox';
121
+ browserVersion = ((_a = ua.match(/Firefox\/([0-9.]+)/)) === null || _a === void 0 ? void 0 : _a[1]) || '';
122
+ }
123
+ else if (ua.includes('Chrome/') && !ua.includes('Edg')) {
124
+ browser = 'Chrome';
125
+ browserVersion = ((_b = ua.match(/Chrome\/([0-9.]+)/)) === null || _b === void 0 ? void 0 : _b[1]) || '';
126
+ }
127
+ else if (ua.includes('Safari/') && !ua.includes('Chrome')) {
128
+ browser = 'Safari';
129
+ browserVersion = ((_c = ua.match(/Version\/([0-9.]+)/)) === null || _c === void 0 ? void 0 : _c[1]) || '';
130
+ }
131
+ else if (ua.includes('Edg/')) {
132
+ browser = 'Edge';
133
+ browserVersion = ((_d = ua.match(/Edg\/([0-9.]+)/)) === null || _d === void 0 ? void 0 : _d[1]) || '';
134
+ }
135
+ let os = 'Unknown';
136
+ if (ua.includes('Windows NT')) {
137
+ os = 'Windows';
138
+ }
139
+ else if (ua.includes('Mac OS X')) {
140
+ os = 'macOS';
141
+ }
142
+ else if (ua.includes('Linux')) {
143
+ os = 'Linux';
144
+ }
145
+ else if (ua.includes('Android')) {
146
+ os = 'Android';
147
+ }
148
+ else if (ua.includes('iPhone') || ua.includes('iPad')) {
149
+ os = 'iOS';
150
+ }
151
+ let device = 'Desktop';
152
+ if (ua.includes('Mobile') || ua.includes('Android')) {
153
+ device = 'Mobile';
154
+ }
155
+ else if (ua.includes('Tablet') || ua.includes('iPad')) {
156
+ device = 'Tablet';
157
+ }
158
+ return { browser, browserVersion, os, device };
159
+ }
160
+ catch (error) {
161
+ return { browser: 'Unknown', browserVersion: '', os: 'Unknown', device: 'Unknown' };
162
+ }
163
+ }
164
+ getUrlParam(param) {
165
+ if (typeof window === 'undefined')
166
+ return undefined;
167
+ const urlParams = new URLSearchParams(window.location.search);
168
+ return urlParams.get(param) || undefined;
169
+ }
170
+ getCookie(name) {
171
+ var _a;
172
+ if (typeof document === 'undefined')
173
+ return undefined;
174
+ const value = `; ${document.cookie}`;
175
+ const parts = value.split(`; ${name}=`);
176
+ if (parts.length === 2)
177
+ return (_a = parts.pop()) === null || _a === void 0 ? void 0 : _a.split(';').shift();
178
+ return undefined;
179
+ }
180
+ getOrCreateSessionId() {
181
+ if (typeof sessionStorage === 'undefined')
182
+ return '';
183
+ let sessionId = sessionStorage.getItem('aaci_session_id');
184
+ if (!sessionId) {
185
+ sessionId = 'sess_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);
186
+ sessionStorage.setItem('aaci_session_id', sessionId);
187
+ }
188
+ return sessionId;
189
+ }
190
+ getOrCreateDistinctId() {
191
+ if (typeof localStorage === 'undefined')
192
+ return '';
193
+ let distinctId = localStorage.getItem('aaci_distinct_id');
194
+ if (!distinctId) {
195
+ distinctId = 'user_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);
196
+ localStorage.setItem('aaci_distinct_id', distinctId);
197
+ }
198
+ return distinctId;
199
+ }
200
+ }
201
+ exports.LeadTracker = LeadTracker;
202
+ //# sourceMappingURL=LeadTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LeadTracker.js","sourceRoot":"","sources":["../src/LeadTracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export interface PostHogConfig {
2
+ apiKey: string;
3
+ projectName: string;
4
+ apiHost?: string;
5
+ productionDomains: string[];
6
+ autocapture?: boolean;
7
+ capturePageview?: boolean;
8
+ }
9
+ declare global {
10
+ interface Window {
11
+ posthog?: any;
12
+ }
13
+ }
14
+ export declare class PostHog {
15
+ private config;
16
+ private environment;
17
+ private posthog;
18
+ private isInitialized;
19
+ constructor(config: PostHogConfig);
20
+ private validateConfig;
21
+ isProduction(): boolean;
22
+ init(): Promise<void>;
23
+ trackEvent(eventName: string, properties?: Record<string, any>): void;
24
+ identify(userId: string, properties?: Record<string, any>): void;
25
+ reset(): void;
26
+ trackError(error: Error, context: string, additionalData?: Record<string, any>): any;
27
+ trackAPIError(url: string, status: number, statusText: string, responseText?: string): any;
28
+ trackAsyncError(operation: string, error: Error, additionalContext?: Record<string, any>): any;
29
+ getInstance(): any;
30
+ getIsInitialized(): boolean;
31
+ private loadPostHogScript;
32
+ }
33
+ //# sourceMappingURL=PostHog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostHog.d.ts","sourceRoot":"","sources":["../src/PostHog.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,OAAO,CAAC,EAAE,GAAG,CAAC;KACf;CACF;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,aAAa,CAAkB;gBAE3B,MAAM,EAAE,aAAa;IAWjC,OAAO,CAAC,cAAc;IAYf,YAAY,IAAI,OAAO;IAOjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiD3B,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAqBrE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAoBhE,KAAK,IAAI,IAAI;IAmBb,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAuBpF,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,GAAG;IAsB1F,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAuB9F,WAAW,IAAI,GAAG;IAOlB,gBAAgB,IAAI,OAAO;IAKlC,OAAO,CAAC,iBAAiB;CAqB1B"}
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostHog = void 0;
4
+ const Environment_1 = require("./Environment");
5
+ class PostHog {
6
+ constructor(config) {
7
+ this.posthog = null;
8
+ this.isInitialized = false;
9
+ this.config = {
10
+ apiHost: 'https://us.i.posthog.com',
11
+ autocapture: true,
12
+ capturePageview: true,
13
+ ...config
14
+ };
15
+ this.environment = new Environment_1.Environment({ productionDomains: config.productionDomains });
16
+ this.validateConfig();
17
+ }
18
+ validateConfig() {
19
+ if (!this.config.apiKey) {
20
+ throw new Error('PostHog: apiKey is required in configuration');
21
+ }
22
+ if (!this.config.projectName) {
23
+ throw new Error('PostHog: projectName is required in configuration');
24
+ }
25
+ }
26
+ isProduction() {
27
+ return this.environment.isProduction();
28
+ }
29
+ async init() {
30
+ if (typeof window === 'undefined') {
31
+ console.warn('[PostHog] Cannot initialize PostHog in server environment');
32
+ return;
33
+ }
34
+ if (this.isInitialized) {
35
+ console.warn('[PostHog] PostHog already initialized');
36
+ return;
37
+ }
38
+ try {
39
+ if (!window.posthog) {
40
+ await this.loadPostHogScript();
41
+ }
42
+ const posthogConfig = {
43
+ api_host: this.config.apiHost,
44
+ autocapture: this.config.autocapture,
45
+ capture_pageview: this.config.capturePageview ? 'history_change' : false,
46
+ disable_session_recording: !this.isProduction(),
47
+ debug: !this.isProduction(),
48
+ loaded: (posthog) => {
49
+ posthog.identify(this.config.projectName);
50
+ console.log('[PostHog] Initialized successfully');
51
+ }
52
+ };
53
+ window.posthog.init(this.config.apiKey, posthogConfig);
54
+ this.posthog = window.posthog;
55
+ this.isInitialized = true;
56
+ console.log('[PostHog] Configuration:', {
57
+ apiHost: this.config.apiHost,
58
+ projectName: this.config.projectName,
59
+ isProduction: this.isProduction(),
60
+ currentDomain: this.environment.getCurrentDomain()
61
+ });
62
+ }
63
+ catch (error) {
64
+ console.error('[PostHog] Initialization failed:', error);
65
+ throw new Error(`PostHog initialization failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
66
+ }
67
+ }
68
+ trackEvent(eventName, properties) {
69
+ if (!this.isInitialized || !this.posthog) {
70
+ console.warn('[PostHog] PostHog not initialized. Call init() first.');
71
+ return;
72
+ }
73
+ try {
74
+ this.posthog.capture(eventName, {
75
+ project_name: this.config.projectName,
76
+ is_production: this.isProduction(),
77
+ ...properties
78
+ });
79
+ console.log(`[PostHog] Event tracked: ${eventName}`, properties);
80
+ }
81
+ catch (error) {
82
+ console.error('[PostHog] Event tracking failed:', error);
83
+ }
84
+ }
85
+ identify(userId, properties) {
86
+ if (!this.isInitialized || !this.posthog) {
87
+ console.warn('[PostHog] PostHog not initialized. Call init() first.');
88
+ return;
89
+ }
90
+ try {
91
+ this.posthog.identify(userId, {
92
+ project_name: this.config.projectName,
93
+ ...properties
94
+ });
95
+ console.log(`[PostHog] User identified: ${userId}`, properties);
96
+ }
97
+ catch (error) {
98
+ console.error('[PostHog] User identification failed:', error);
99
+ }
100
+ }
101
+ reset() {
102
+ if (!this.isInitialized || !this.posthog) {
103
+ console.warn('[PostHog] PostHog not initialized. Call init() first.');
104
+ return;
105
+ }
106
+ try {
107
+ this.posthog.reset();
108
+ console.log('[PostHog] User identity reset');
109
+ }
110
+ catch (error) {
111
+ console.error('[PostHog] Reset failed:', error);
112
+ }
113
+ }
114
+ trackError(error, context, additionalData) {
115
+ var _a;
116
+ const errorData = {
117
+ error_message: error.message,
118
+ error_stack: (_a = error.stack) === null || _a === void 0 ? void 0 : _a.substring(0, 1000),
119
+ error_context: context,
120
+ user_agent: typeof navigator !== 'undefined' ? navigator.userAgent : 'server',
121
+ url: typeof window !== 'undefined' ? window.location.href : 'server',
122
+ timestamp: new Date().toISOString(),
123
+ ...additionalData
124
+ };
125
+ if (this.isInitialized && this.posthog) {
126
+ this.trackEvent('javascript_error', errorData);
127
+ }
128
+ console.error('[PostHog Error Tracking]', errorData);
129
+ return errorData;
130
+ }
131
+ trackAPIError(url, status, statusText, responseText) {
132
+ const errorData = {
133
+ api_url: url,
134
+ api_status: status,
135
+ api_status_text: statusText,
136
+ api_response: responseText === null || responseText === void 0 ? void 0 : responseText.substring(0, 500),
137
+ user_agent: typeof navigator !== 'undefined' ? navigator.userAgent : 'server',
138
+ timestamp: new Date().toISOString(),
139
+ };
140
+ if (this.isInitialized && this.posthog) {
141
+ this.trackEvent('api_error', errorData);
142
+ }
143
+ console.error('[PostHog API Error]', errorData);
144
+ return errorData;
145
+ }
146
+ trackAsyncError(operation, error, additionalContext) {
147
+ var _a;
148
+ const errorData = {
149
+ async_operation: operation,
150
+ error_message: error.message,
151
+ error_stack: (_a = error.stack) === null || _a === void 0 ? void 0 : _a.substring(0, 1000),
152
+ user_agent: typeof navigator !== 'undefined' ? navigator.userAgent : 'server',
153
+ url: typeof window !== 'undefined' ? window.location.href : 'server',
154
+ timestamp: new Date().toISOString(),
155
+ ...additionalContext
156
+ };
157
+ if (this.isInitialized && this.posthog) {
158
+ this.trackEvent('async_error', errorData);
159
+ }
160
+ console.error('[PostHog Async Error]', errorData);
161
+ return errorData;
162
+ }
163
+ getInstance() {
164
+ return this.posthog;
165
+ }
166
+ getIsInitialized() {
167
+ return this.isInitialized;
168
+ }
169
+ loadPostHogScript() {
170
+ return new Promise((resolve, reject) => {
171
+ if (typeof window === 'undefined') {
172
+ reject(new Error('Cannot load PostHog script in server environment'));
173
+ return;
174
+ }
175
+ const script = document.createElement('script');
176
+ script.src = 'https://app.posthog.com/static/array.js';
177
+ script.async = true;
178
+ script.onload = () => {
179
+ window.posthog = window.posthog || [];
180
+ resolve();
181
+ };
182
+ script.onerror = () => {
183
+ reject(new Error('Failed to load PostHog script'));
184
+ };
185
+ document.head.appendChild(script);
186
+ });
187
+ }
188
+ }
189
+ exports.PostHog = PostHog;
190
+ //# sourceMappingURL=PostHog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostHog.js","sourceRoot":"","sources":["../src/PostHog.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  export declare const hello: () => void;
2
- export { isProduction, isDevelopment, isTest, getNodeEnv, getEnvVar } from './track/environment';
3
- export { initPostHog, identifyUser, resetUser, registerPostHog, getPostHogDistinctId } from './track/posthog';
4
- export { trackEventPostHog } from './track/trackEventPostHog';
5
- export { trackEventGTM } from './track/trackEventGTM';
6
- export { initErrorTracking, trackError, trackAPIError, trackAsyncError } from './track/errorTracking';
7
- export { default as ErrorTracking } from './track/errorTracking';
8
- export { trackLead, getSessionData } from './track/trackLead';
9
- export type { TrackLeadParams, SessionData, Address } from './track/trackLead';
2
+ export { LeadTracker } from './LeadTracker';
3
+ export { PostHog } from './PostHog';
4
+ export { GTM } from './GTM';
5
+ export { Environment } from './Environment';
6
+ export type { LeadTrackerConfig, TrackLeadParams, Address, SessionData } from './LeadTracker';
7
+ export type { PostHogConfig } from './PostHog';
8
+ export type { GTMConfig } from './GTM';
9
+ export type { EnvironmentConfig } from './Environment';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK,YAAmD,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGjG,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAG9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG9D,YAAY,EACV,eAAe,EACf,WAAW,EACX,OAAO,EACR,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,KAAK,YAAmD,CAAC;AAGtE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,OAAO,EACP,WAAW,EACZ,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,aAAa,EACd,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,SAAS,EACV,MAAM,OAAO,CAAC;AAEf,YAAY,EACV,iBAAiB,EAClB,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,35 +1,14 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getSessionData = exports.trackLead = exports.ErrorTracking = exports.trackAsyncError = exports.trackAPIError = exports.trackError = exports.initErrorTracking = exports.trackEventGTM = exports.trackEventPostHog = exports.getPostHogDistinctId = exports.registerPostHog = exports.resetUser = exports.identifyUser = exports.initPostHog = exports.getEnvVar = exports.getNodeEnv = exports.isTest = exports.isDevelopment = exports.isProduction = exports.hello = void 0;
3
+ exports.Environment = exports.GTM = exports.PostHog = exports.LeadTracker = exports.hello = void 0;
7
4
  const hello = () => console.log("Hello from AACI shared lib!");
8
5
  exports.hello = hello;
9
- var environment_1 = require("./track/environment");
10
- Object.defineProperty(exports, "isProduction", { enumerable: true, get: function () { return environment_1.isProduction; } });
11
- Object.defineProperty(exports, "isDevelopment", { enumerable: true, get: function () { return environment_1.isDevelopment; } });
12
- Object.defineProperty(exports, "isTest", { enumerable: true, get: function () { return environment_1.isTest; } });
13
- Object.defineProperty(exports, "getNodeEnv", { enumerable: true, get: function () { return environment_1.getNodeEnv; } });
14
- Object.defineProperty(exports, "getEnvVar", { enumerable: true, get: function () { return environment_1.getEnvVar; } });
15
- var posthog_1 = require("./track/posthog");
16
- Object.defineProperty(exports, "initPostHog", { enumerable: true, get: function () { return posthog_1.initPostHog; } });
17
- Object.defineProperty(exports, "identifyUser", { enumerable: true, get: function () { return posthog_1.identifyUser; } });
18
- Object.defineProperty(exports, "resetUser", { enumerable: true, get: function () { return posthog_1.resetUser; } });
19
- Object.defineProperty(exports, "registerPostHog", { enumerable: true, get: function () { return posthog_1.registerPostHog; } });
20
- Object.defineProperty(exports, "getPostHogDistinctId", { enumerable: true, get: function () { return posthog_1.getPostHogDistinctId; } });
21
- var trackEventPostHog_1 = require("./track/trackEventPostHog");
22
- Object.defineProperty(exports, "trackEventPostHog", { enumerable: true, get: function () { return trackEventPostHog_1.trackEventPostHog; } });
23
- var trackEventGTM_1 = require("./track/trackEventGTM");
24
- Object.defineProperty(exports, "trackEventGTM", { enumerable: true, get: function () { return trackEventGTM_1.trackEventGTM; } });
25
- var errorTracking_1 = require("./track/errorTracking");
26
- Object.defineProperty(exports, "initErrorTracking", { enumerable: true, get: function () { return errorTracking_1.initErrorTracking; } });
27
- Object.defineProperty(exports, "trackError", { enumerable: true, get: function () { return errorTracking_1.trackError; } });
28
- Object.defineProperty(exports, "trackAPIError", { enumerable: true, get: function () { return errorTracking_1.trackAPIError; } });
29
- Object.defineProperty(exports, "trackAsyncError", { enumerable: true, get: function () { return errorTracking_1.trackAsyncError; } });
30
- var errorTracking_2 = require("./track/errorTracking");
31
- Object.defineProperty(exports, "ErrorTracking", { enumerable: true, get: function () { return __importDefault(errorTracking_2).default; } });
32
- var trackLead_1 = require("./track/trackLead");
33
- Object.defineProperty(exports, "trackLead", { enumerable: true, get: function () { return trackLead_1.trackLead; } });
34
- Object.defineProperty(exports, "getSessionData", { enumerable: true, get: function () { return trackLead_1.getSessionData; } });
6
+ var LeadTracker_1 = require("./LeadTracker");
7
+ Object.defineProperty(exports, "LeadTracker", { enumerable: true, get: function () { return LeadTracker_1.LeadTracker; } });
8
+ var PostHog_1 = require("./PostHog");
9
+ Object.defineProperty(exports, "PostHog", { enumerable: true, get: function () { return PostHog_1.PostHog; } });
10
+ var GTM_1 = require("./GTM");
11
+ Object.defineProperty(exports, "GTM", { enumerable: true, get: function () { return GTM_1.GTM; } });
12
+ var Environment_1 = require("./Environment");
13
+ Object.defineProperty(exports, "Environment", { enumerable: true, get: function () { return Environment_1.Environment; } });
35
14
  //# 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":";;;;;;AACO,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAAzD,QAAA,KAAK,SAAoD;AAGtE,mDAAiG;AAAxF,2GAAA,YAAY,OAAA;AAAE,4GAAA,aAAa,OAAA;AAAE,qGAAA,MAAM,OAAA;AAAE,yGAAA,UAAU,OAAA;AAAE,wGAAA,SAAS,OAAA;AAGnE,2CAA8G;AAArG,sGAAA,WAAW,OAAA;AAAE,uGAAA,YAAY,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,0GAAA,eAAe,OAAA;AAAE,+GAAA,oBAAoB,OAAA;AAGpF,+DAA8D;AAArD,sHAAA,iBAAiB,OAAA;AAC1B,uDAAsD;AAA7C,8GAAA,aAAa,OAAA;AAGtB,uDAAsG;AAA7F,kHAAA,iBAAiB,OAAA;AAAE,2GAAA,UAAU,OAAA;AAAE,8GAAA,aAAa,OAAA;AAAE,gHAAA,eAAe,OAAA;AACtE,uDAAiE;AAAxD,+HAAA,OAAO,OAAiB;AAGjC,+CAA8D;AAArD,sGAAA,SAAS,OAAA;AAAE,2GAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACO,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAAzD,QAAA,KAAK,SAAoD;AAGtE,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AACZ,6CAA4C;AAAnC,0GAAA,WAAW,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aacigroup/aaci_shared",
3
- "version": "1.0.6",
3
+ "version": "2.0.0",
4
4
  "description": "Shared tracking utilities for AACI Group projects",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,10 +0,0 @@
1
- declare global {
2
- var __NODE_ENV__: string | undefined;
3
- }
4
- declare const getNodeEnv: () => string;
5
- export declare const getEnvVar: (key: string) => string | undefined;
6
- export declare const isProduction: () => boolean;
7
- export declare const isDevelopment: () => boolean;
8
- export declare const isTest: () => boolean;
9
- export { getNodeEnv };
10
- //# sourceMappingURL=environment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/track/environment.ts"],"names":[],"mappings":"AAKA,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,QAAA,MAAM,UAAU,QAAO,MAuBtB,CAAC;AAKF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAuChD,CAAC;AAEF,eAAO,MAAM,YAAY,QAAO,OAE/B,CAAC;AAEF,eAAO,MAAM,aAAa,QAAO,OAEhC,CAAC;AAEF,eAAO,MAAM,MAAM,QAAO,OAEzB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNodeEnv = exports.isTest = exports.isDevelopment = exports.isProduction = exports.getEnvVar = void 0;
4
- const getNodeEnv = () => {
5
- if (typeof window !== 'undefined') {
6
- if (typeof globalThis.__NODE_ENV__ === 'string') {
7
- return globalThis.__NODE_ENV__;
8
- }
9
- return 'development';
10
- }
11
- try {
12
- const nodeProcess = globalThis.process;
13
- if (nodeProcess && nodeProcess.env && nodeProcess.env.NODE_ENV) {
14
- return nodeProcess.env.NODE_ENV;
15
- }
16
- }
17
- catch (e) {
18
- }
19
- return 'development';
20
- };
21
- exports.getNodeEnv = getNodeEnv;
22
- const getEnvVar = (key) => {
23
- if (typeof window !== 'undefined') {
24
- const global = globalThis;
25
- if (global.__ENV__ && global.__ENV__[key]) {
26
- return global.__ENV__[key];
27
- }
28
- if (global[key]) {
29
- return global[key];
30
- }
31
- if (window[key]) {
32
- return window[key];
33
- }
34
- console.debug(`[AACI Shared] Looking for env var: ${key}`);
35
- console.debug('[AACI Shared] Available global vars:', Object.keys(global.__ENV__ || {}));
36
- console.debug('[AACI Shared] Available on globalThis:', Object.keys(global).filter(k => k.startsWith('VITE_')));
37
- console.debug('[AACI Shared] Available on window:', Object.keys(window).filter((k) => k.startsWith('VITE_')));
38
- return undefined;
39
- }
40
- try {
41
- const nodeProcess = globalThis.process;
42
- if (nodeProcess && nodeProcess.env) {
43
- return nodeProcess.env[key];
44
- }
45
- }
46
- catch (e) {
47
- }
48
- return undefined;
49
- };
50
- exports.getEnvVar = getEnvVar;
51
- const isProduction = () => {
52
- return getNodeEnv() === 'production';
53
- };
54
- exports.isProduction = isProduction;
55
- const isDevelopment = () => {
56
- return getNodeEnv() === 'development';
57
- };
58
- exports.isDevelopment = isDevelopment;
59
- const isTest = () => {
60
- return getNodeEnv() === 'test';
61
- };
62
- exports.isTest = isTest;
63
- //# sourceMappingURL=environment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/track/environment.ts"],"names":[],"mappings":";;;AASA,MAAM,UAAU,GAAG,GAAW,EAAE;IAE9B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAElC,IAAI,OAAQ,UAAkB,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACzD,OAAQ,UAAkB,CAAC,YAAY,CAAC;QAC1C,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAGD,IAAI,CAAC;QACH,MAAM,WAAW,GAAI,UAAkB,CAAC,OAAO,CAAC;QAChD,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC/D,OAAO,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClC,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;IAEb,CAAC;IAGD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AA0DO,gCAAU;AArDZ,MAAM,SAAS,GAAG,CAAC,GAAW,EAAsB,EAAE;IAE3D,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAElC,MAAM,MAAM,GAAG,UAAiB,CAAC;QACjC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAGD,IAAK,MAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAQ,MAAc,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QAGD,IAAK,MAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAQ,MAAc,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QAGD,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChH,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAEtH,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,IAAI,CAAC;QACH,MAAM,WAAW,GAAI,UAAkB,CAAC,OAAO,CAAC;QAChD,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;YACnC,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;IAEb,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAvCW,QAAA,SAAS,aAuCpB;AAEK,MAAM,YAAY,GAAG,GAAY,EAAE;IACxC,OAAO,UAAU,EAAE,KAAK,YAAY,CAAC;AACvC,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEK,MAAM,aAAa,GAAG,GAAY,EAAE;IACzC,OAAO,UAAU,EAAE,KAAK,aAAa,CAAC;AACxC,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEK,MAAM,MAAM,GAAG,GAAY,EAAE;IAClC,OAAO,UAAU,EAAE,KAAK,MAAM,CAAC;AACjC,CAAC,CAAC;AAFW,QAAA,MAAM,UAEjB"}
@@ -1,12 +0,0 @@
1
- export declare const initErrorTracking: () => void;
2
- export declare const trackError: (error: Error, context: string, additionalData?: Record<string, any>) => void;
3
- export declare const trackAPIError: (url: string, status: number, statusText: string, responseText?: string) => void;
4
- export declare const trackAsyncError: (operation: string, error: Error, additionalContext?: Record<string, any>) => void;
5
- declare const _default: {
6
- init: () => void;
7
- trackError: (error: Error, context: string, additionalData?: Record<string, any>) => void;
8
- trackAPIError: (url: string, status: number, statusText: string, responseText?: string) => void;
9
- trackAsyncError: (operation: string, error: Error, additionalContext?: Record<string, any>) => void;
10
- };
11
- export default _default;
12
- //# sourceMappingURL=errorTracking.d.ts.map