@aacigroup/aaci_shared 1.0.1 → 1.0.3
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 +212 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/track/environment.d.ts +10 -0
- package/dist/track/environment.d.ts.map +1 -0
- package/dist/track/environment.js +53 -0
- package/dist/track/environment.js.map +1 -0
- package/dist/track/errorTracking.d.ts +12 -0
- package/dist/track/errorTracking.d.ts.map +1 -0
- package/dist/track/errorTracking.js +120 -0
- package/dist/track/errorTracking.js.map +1 -0
- package/dist/track/posthog.d.ts +9 -0
- package/dist/track/posthog.d.ts.map +1 -0
- package/dist/track/posthog.js +91 -0
- package/dist/track/posthog.js.map +1 -0
- package/dist/track/trackEventGTM.d.ts +7 -0
- package/dist/track/trackEventGTM.d.ts.map +1 -0
- package/dist/track/trackEventGTM.js +18 -0
- package/dist/track/trackEventGTM.js.map +1 -0
- package/dist/track/trackEventPostHog.d.ts +2 -0
- package/dist/track/trackEventPostHog.d.ts.map +1 -0
- package/dist/track/trackEventPostHog.js +26 -0
- package/dist/track/trackEventPostHog.js.map +1 -0
- package/dist/track/trackLead.d.ts +50 -0
- package/dist/track/trackLead.d.ts.map +1 -0
- package/dist/track/trackLead.js +176 -0
- package/dist/track/trackLead.js.map +1 -0
- package/package.json +33 -6
- package/src/index.ts +0 -2
- package/tsconfig.json +0 -34
package/README.md
ADDED
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# AACI Shared Library
|
|
2
|
+
|
|
3
|
+
A shared TypeScript/JavaScript library for AACI Group projects containing tracking utilities for analytics, error monitoring, and lead capture.
|
|
4
|
+
|
|
5
|
+
[](https://badge.fury.io/js/@aacigroup%2Faaci_shared)
|
|
6
|
+
[](https://github.com/AACI-Group/aaci_shared/actions)
|
|
7
|
+
|
|
8
|
+
## Installation
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npm install @aacigroup/aaci_shared
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Features
|
|
15
|
+
|
|
16
|
+
- **Environment Detection**: Cross-platform environment detection using NODE_ENV
|
|
17
|
+
- **PostHog Analytics**: Easy PostHog initialization and event tracking
|
|
18
|
+
- **Google Tag Manager**: GTM event tracking utilities
|
|
19
|
+
- **Error Tracking**: Comprehensive error monitoring and reporting
|
|
20
|
+
- **Lead Tracking**: Lead capture with session data collection
|
|
21
|
+
|
|
22
|
+
## Environment Variables
|
|
23
|
+
|
|
24
|
+
For proper functionality, you need to set these environment variables in your Vite-based application:
|
|
25
|
+
|
|
26
|
+
### Vite Environment Variables (Frontend)
|
|
27
|
+
```bash
|
|
28
|
+
# PostHog API key (required for analytics)
|
|
29
|
+
VITE_POSTHOG_KEY=phc_your_posthog_key_here
|
|
30
|
+
|
|
31
|
+
# PostHog API host URL (optional, defaults to https://us.i.posthog.com)
|
|
32
|
+
VITE_POSTHOG_API_HOST=https://us.i.posthog.com
|
|
33
|
+
|
|
34
|
+
# Project name (required)
|
|
35
|
+
VITE_PROJECT_NAME=your-project-name
|
|
36
|
+
|
|
37
|
+
# Lead capture API URL (required for lead tracking)
|
|
38
|
+
VITE_LEAD_CAPTURE_API_URL=https://your-api.com/leads
|
|
39
|
+
|
|
40
|
+
# Lead capture API key (required for lead tracking)
|
|
41
|
+
VITE_LEAD_CAPTURE_API_KEY=your_api_key_here
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Important:** All environment variables must be prefixed with `VITE_` to be available in the frontend. This is a Vite requirement for security.
|
|
45
|
+
|
|
46
|
+
## Usage
|
|
47
|
+
|
|
48
|
+
### Environment Configuration
|
|
49
|
+
|
|
50
|
+
The library works in both browser and Node.js environments and uses `NODE_ENV` for environment detection:
|
|
51
|
+
|
|
52
|
+
```javascript
|
|
53
|
+
import { isProduction, isDevelopment, getNodeEnv } from '@aacigroup/aaci_shared';
|
|
54
|
+
|
|
55
|
+
if (isProduction()) {
|
|
56
|
+
// Production-only code
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### PostHog Analytics
|
|
61
|
+
|
|
62
|
+
```javascript
|
|
63
|
+
import { initPostHog, trackEventPostHog, identifyUser } from '@aacigroup/aaci_shared';
|
|
64
|
+
|
|
65
|
+
// Initialize PostHog (browser only, skipped in development)
|
|
66
|
+
// Uses VITE_POSTHOG_KEY and VITE_POSTHOG_API_HOST from environment variables
|
|
67
|
+
initPostHog({
|
|
68
|
+
apiKey: 'your-posthog-key', // optional, overrides VITE_POSTHOG_KEY
|
|
69
|
+
projectName: 'your-project' // optional, overrides VITE_PROJECT_NAME
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// Track events
|
|
73
|
+
trackEventPostHog('button_clicked', {
|
|
74
|
+
button_name: 'signup',
|
|
75
|
+
page: 'homepage'
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
// Identify user
|
|
79
|
+
identifyUser('user123', {
|
|
80
|
+
name: 'John Doe',
|
|
81
|
+
email: 'john@example.com'
|
|
82
|
+
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Google Tag Manager
|
|
86
|
+
|
|
87
|
+
```javascript
|
|
88
|
+
import { trackEventGTM } from '@aacigroup/aaci_shared';
|
|
89
|
+
|
|
90
|
+
trackEventGTM('page_view', {
|
|
91
|
+
page_title: 'Homepage',
|
|
92
|
+
page_location: window.location.href
|
|
93
|
+
});
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Error Tracking
|
|
97
|
+
|
|
98
|
+
```javascript
|
|
99
|
+
import { initErrorTracking, trackError, trackAPIError } from '@aacigroup/aaci_shared';
|
|
100
|
+
|
|
101
|
+
// Initialize global error handlers (browser only)
|
|
102
|
+
initErrorTracking();
|
|
103
|
+
|
|
104
|
+
// Manual error tracking
|
|
105
|
+
try {
|
|
106
|
+
// Some code that might throw
|
|
107
|
+
} catch (error) {
|
|
108
|
+
trackError(error, 'user_action', { action: 'form_submit' });
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// API error tracking
|
|
112
|
+
trackAPIError('/api/users', 500, 'Internal Server Error', 'Error details...');
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Lead Tracking
|
|
116
|
+
|
|
117
|
+
```javascript
|
|
118
|
+
import { trackLead, getSessionData } from '@aacigroup/aaci_shared';
|
|
119
|
+
|
|
120
|
+
// Get browser session data
|
|
121
|
+
const sessionData = getSessionData();
|
|
122
|
+
|
|
123
|
+
// Track a lead using environment variables (VITE_LEAD_CAPTURE_API_URL and VITE_LEAD_CAPTURE_API_KEY)
|
|
124
|
+
const result = await trackLead({
|
|
125
|
+
project_name: 'my-project',
|
|
126
|
+
lead_type: 'hero_newsletter_signup',
|
|
127
|
+
email: 'user@example.com',
|
|
128
|
+
first_name: 'John',
|
|
129
|
+
last_name: 'Doe',
|
|
130
|
+
session_data: sessionData
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
// Or override with custom API URL and key
|
|
134
|
+
const result = await trackLead({
|
|
135
|
+
project_name: 'my-project',
|
|
136
|
+
lead_type: 'hero_newsletter_signup',
|
|
137
|
+
email: 'user@example.com',
|
|
138
|
+
first_name: 'John',
|
|
139
|
+
last_name: 'Doe',
|
|
140
|
+
session_data: sessionData,
|
|
141
|
+
api_url: 'https://custom-api.example.com/leads', // overrides VITE_LEAD_CAPTURE_API_URL
|
|
142
|
+
api_key: 'your-custom-api-key' // overrides VITE_LEAD_CAPTURE_API_KEY
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
if (result.status === 'ok') {
|
|
146
|
+
console.log('Lead tracked successfully');
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Browser Environment Setup
|
|
151
|
+
|
|
152
|
+
For browser environments, you can inject environment variables globally:
|
|
153
|
+
|
|
154
|
+
```javascript
|
|
155
|
+
// Set environment variables globally in browser (if not using Vite's built-in injection)
|
|
156
|
+
window.__ENV__ = {
|
|
157
|
+
VITE_POSTHOG_KEY: 'your-key',
|
|
158
|
+
VITE_POSTHOG_API_HOST: 'https://us.i.posthog.com', // optional
|
|
159
|
+
VITE_PROJECT_NAME: 'your-project',
|
|
160
|
+
VITE_LEAD_CAPTURE_API_URL: 'https://api.example.com/leads',
|
|
161
|
+
VITE_LEAD_CAPTURE_API_KEY: 'your-key'
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
// Or set NODE_ENV
|
|
165
|
+
window.__NODE_ENV__ = 'production';
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
For Node.js environments (server-side), use standard environment variables:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
NODE_ENV=production
|
|
172
|
+
# Note: VITE_ variables are not needed in Node.js server environments
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## TypeScript Support
|
|
176
|
+
|
|
177
|
+
The library is written in TypeScript and includes full type definitions:
|
|
178
|
+
|
|
179
|
+
```typescript
|
|
180
|
+
import { TrackLeadParams, SessionData, Address } from '@aacigroup/aaci_shared';
|
|
181
|
+
|
|
182
|
+
const leadData: TrackLeadParams = {
|
|
183
|
+
project_name: 'my-project',
|
|
184
|
+
lead_type: 'waitlist_signup',
|
|
185
|
+
email: 'user@example.com'
|
|
186
|
+
};
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Browser Compatibility
|
|
190
|
+
|
|
191
|
+
- Modern browsers with ES2015+ support
|
|
192
|
+
- Works with bundlers like Webpack, Vite, Rollup
|
|
193
|
+
- Compatible with React, Vue, Angular, and vanilla JavaScript
|
|
194
|
+
|
|
195
|
+
## Development & Deployment
|
|
196
|
+
|
|
197
|
+
This package uses **automated deployment** via GitHub Actions:
|
|
198
|
+
|
|
199
|
+
- ✅ **Automatic versioning** based on conventional commits
|
|
200
|
+
- ✅ **NPM publishing** on main branch updates
|
|
201
|
+
- ✅ **GitHub releases** with changelogs
|
|
202
|
+
|
|
203
|
+
### Version Bumping Rules:
|
|
204
|
+
- `feat:` → Minor release (1.0.0 → 1.1.0)
|
|
205
|
+
- `fix:`, `docs:`, `chore:` → Patch release (1.0.0 → 1.0.1)
|
|
206
|
+
- `BREAKING CHANGE` or `feat!:` → Major release (1.0.0 → 2.0.0)
|
|
207
|
+
|
|
208
|
+
See [DEPLOYMENT.md](./DEPLOYMENT.md) for setup instructions.
|
|
209
|
+
|
|
210
|
+
## License
|
|
211
|
+
|
|
212
|
+
ISC
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
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';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
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;
|
|
7
|
+
const hello = () => console.log("Hello from AACI shared lib!");
|
|
8
|
+
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; } });
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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,SAsBhD,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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
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
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
const nodeProcess = globalThis.process;
|
|
32
|
+
if (nodeProcess && nodeProcess.env) {
|
|
33
|
+
return nodeProcess.env[key];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
};
|
|
40
|
+
exports.getEnvVar = getEnvVar;
|
|
41
|
+
const isProduction = () => {
|
|
42
|
+
return getNodeEnv() === 'production';
|
|
43
|
+
};
|
|
44
|
+
exports.isProduction = isProduction;
|
|
45
|
+
const isDevelopment = () => {
|
|
46
|
+
return getNodeEnv() === 'development';
|
|
47
|
+
};
|
|
48
|
+
exports.isDevelopment = isDevelopment;
|
|
49
|
+
const isTest = () => {
|
|
50
|
+
return getNodeEnv() === 'test';
|
|
51
|
+
};
|
|
52
|
+
exports.isTest = isTest;
|
|
53
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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;AAyCO,gCAAU;AApCZ,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;QACD,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;AAtBW,QAAA,SAAS,aAsBpB;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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorTracking.d.ts","sourceRoot":"","sources":["../../src/track/errorTracking.ts"],"names":[],"mappings":"AAwFA,eAAO,MAAM,iBAAiB,YAkC7B,CAAC;AAGF,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,EAAE,SAAS,MAAM,EAAE,iBAAiB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAE7F,CAAC;AAGF,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,QAAQ,MAAM,EAAE,YAAY,MAAM,EAAE,eAAe,MAAM,SASnG,CAAC;AAGF,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,EAAE,OAAO,KAAK,EAAE,oBAAoB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAKvG,CAAC;;;wBAtBgC,KAAK,WAAW,MAAM,mBAAmB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;yBAK3D,MAAM,UAAU,MAAM,cAAc,MAAM,iBAAiB,MAAM;iCAYzD,MAAM,SAAS,KAAK,sBAAsB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;AAOxG,wBAKE"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.trackAsyncError = exports.trackAPIError = exports.trackError = exports.initErrorTracking = void 0;
|
|
4
|
+
const trackEventPostHog_1 = require("./trackEventPostHog");
|
|
5
|
+
const trackJSError = (error, source = 'unknown', additionalContext) => {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
const errorDetails = {
|
|
8
|
+
message: error.message,
|
|
9
|
+
source,
|
|
10
|
+
userAgent: navigator.userAgent,
|
|
11
|
+
url: window.location.href,
|
|
12
|
+
timestamp: new Date().toISOString(),
|
|
13
|
+
...additionalContext
|
|
14
|
+
};
|
|
15
|
+
if (error.stack) {
|
|
16
|
+
errorDetails.stack = error.stack.substring(0, 1000);
|
|
17
|
+
}
|
|
18
|
+
(0, trackEventPostHog_1.trackEventPostHog)('javascript_error', {
|
|
19
|
+
error_name: error.name,
|
|
20
|
+
error_message: (_a = error.message) === null || _a === void 0 ? void 0 : _a.substring(0, 200),
|
|
21
|
+
error_stack: (_b = error.stack) === null || _b === void 0 ? void 0 : _b.substring(0, 500),
|
|
22
|
+
error_source: source,
|
|
23
|
+
page_url: window.location.href,
|
|
24
|
+
user_agent: navigator.userAgent.substring(0, 200),
|
|
25
|
+
timestamp: new Date().toISOString(),
|
|
26
|
+
...additionalContext
|
|
27
|
+
});
|
|
28
|
+
console.error(`[Error Tracking] ${source}:`, errorDetails);
|
|
29
|
+
};
|
|
30
|
+
const trackPromiseRejection = (reason, source = 'unhandled_promise') => {
|
|
31
|
+
let errorMessage = 'Unknown promise rejection';
|
|
32
|
+
let errorStack = '';
|
|
33
|
+
if (reason instanceof Error) {
|
|
34
|
+
errorMessage = reason.message;
|
|
35
|
+
errorStack = reason.stack || '';
|
|
36
|
+
}
|
|
37
|
+
else if (typeof reason === 'string') {
|
|
38
|
+
errorMessage = reason;
|
|
39
|
+
}
|
|
40
|
+
else if (reason && typeof reason === 'object') {
|
|
41
|
+
errorMessage = reason.toString() || JSON.stringify(reason).substring(0, 200);
|
|
42
|
+
}
|
|
43
|
+
(0, trackEventPostHog_1.trackEventPostHog)('promise_rejection', {
|
|
44
|
+
error_message: errorMessage.substring(0, 200),
|
|
45
|
+
error_stack: errorStack.substring(0, 500),
|
|
46
|
+
error_source: source,
|
|
47
|
+
error_type: typeof reason,
|
|
48
|
+
page_url: window.location.href,
|
|
49
|
+
user_agent: navigator.userAgent.substring(0, 200),
|
|
50
|
+
timestamp: new Date().toISOString()
|
|
51
|
+
});
|
|
52
|
+
console.error(`[Error Tracking] ${source}:`, reason);
|
|
53
|
+
};
|
|
54
|
+
const trackResourceError = (element, source = 'resource_error') => {
|
|
55
|
+
const tagName = element.tagName.toLowerCase();
|
|
56
|
+
const src = element.getAttribute('src') || element.getAttribute('href') || 'unknown';
|
|
57
|
+
(0, trackEventPostHog_1.trackEventPostHog)('resource_error', {
|
|
58
|
+
element_type: tagName,
|
|
59
|
+
resource_url: src.substring(0, 300),
|
|
60
|
+
error_source: source,
|
|
61
|
+
page_url: window.location.href,
|
|
62
|
+
timestamp: new Date().toISOString()
|
|
63
|
+
});
|
|
64
|
+
console.error(`[Error Tracking] ${source}:`, { tagName, src });
|
|
65
|
+
};
|
|
66
|
+
const initErrorTracking = () => {
|
|
67
|
+
window.addEventListener('error', (event) => {
|
|
68
|
+
if (event.error) {
|
|
69
|
+
trackJSError(event.error, 'global_error_handler', {
|
|
70
|
+
filename: event.filename,
|
|
71
|
+
lineno: event.lineno,
|
|
72
|
+
colno: event.colno
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
else if (event.target && event.target !== window) {
|
|
76
|
+
trackResourceError(event.target, 'resource_load_error');
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
window.addEventListener('unhandledrejection', (event) => {
|
|
80
|
+
trackPromiseRejection(event.reason, 'unhandled_promise_rejection');
|
|
81
|
+
});
|
|
82
|
+
window.addEventListener('rejectionhandled', (event) => {
|
|
83
|
+
(0, trackEventPostHog_1.trackEventPostHog)('promise_rejection_handled', {
|
|
84
|
+
message: 'Previously unhandled promise was handled',
|
|
85
|
+
page_url: window.location.href,
|
|
86
|
+
timestamp: new Date().toISOString()
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
console.log('[Error Tracking] Global error handlers initialized');
|
|
90
|
+
};
|
|
91
|
+
exports.initErrorTracking = initErrorTracking;
|
|
92
|
+
const trackError = (error, context, additionalData) => {
|
|
93
|
+
trackJSError(error, `manual_${context}`, additionalData);
|
|
94
|
+
};
|
|
95
|
+
exports.trackError = trackError;
|
|
96
|
+
const trackAPIError = (url, status, statusText, responseText) => {
|
|
97
|
+
(0, trackEventPostHog_1.trackEventPostHog)('api_error', {
|
|
98
|
+
api_url: url.substring(0, 300),
|
|
99
|
+
status_code: status,
|
|
100
|
+
status_text: statusText,
|
|
101
|
+
response_preview: responseText === null || responseText === void 0 ? void 0 : responseText.substring(0, 200),
|
|
102
|
+
page_url: window.location.href,
|
|
103
|
+
timestamp: new Date().toISOString()
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
exports.trackAPIError = trackAPIError;
|
|
107
|
+
const trackAsyncError = (operation, error, additionalContext) => {
|
|
108
|
+
trackJSError(error, `async_${operation}`, {
|
|
109
|
+
operation_name: operation,
|
|
110
|
+
...additionalContext
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
exports.trackAsyncError = trackAsyncError;
|
|
114
|
+
exports.default = {
|
|
115
|
+
init: exports.initErrorTracking,
|
|
116
|
+
trackError: exports.trackError,
|
|
117
|
+
trackAPIError: exports.trackAPIError,
|
|
118
|
+
trackAsyncError: exports.trackAsyncError
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=errorTracking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorTracking.js","sourceRoot":"","sources":["../../src/track/errorTracking.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const initPostHog: (config?: {
|
|
2
|
+
apiKey?: string;
|
|
3
|
+
projectName?: string;
|
|
4
|
+
}) => void;
|
|
5
|
+
export declare const identifyUser: (userId: string, properties?: Record<string, any>) => void;
|
|
6
|
+
export declare const resetUser: () => void;
|
|
7
|
+
export declare const registerPostHog: (properties: Record<string, any>) => void;
|
|
8
|
+
export declare const getPostHogDistinctId: () => string | null;
|
|
9
|
+
//# sourceMappingURL=posthog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posthog.d.ts","sourceRoot":"","sources":["../../src/track/posthog.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,GAAI,SAAS;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,SA2C7E,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,aAAa,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAQ5E,CAAC;AAEF,eAAO,MAAM,SAAS,YAQrB,CAAC;AAGF,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAQ9D,CAAC;AAGF,eAAO,MAAM,oBAAoB,QAAO,MAAM,GAAG,IAShD,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getPostHogDistinctId = exports.registerPostHog = exports.resetUser = exports.identifyUser = exports.initPostHog = void 0;
|
|
7
|
+
const posthog_js_1 = __importDefault(require("posthog-js"));
|
|
8
|
+
const environment_1 = require("./environment");
|
|
9
|
+
let isInitialized = false;
|
|
10
|
+
const initPostHog = (config) => {
|
|
11
|
+
if (isInitialized)
|
|
12
|
+
return;
|
|
13
|
+
if (!(0, environment_1.isProduction)()) {
|
|
14
|
+
console.log('[Dev] PostHog: Skipping initialization in non-production environment');
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const posthogKey = (config === null || config === void 0 ? void 0 : config.apiKey) || (0, environment_1.getEnvVar)('VITE_POSTHOG_KEY');
|
|
19
|
+
const apiHost = (0, environment_1.getEnvVar)('VITE_POSTHOG_API_HOST') || 'https://us.i.posthog.com';
|
|
20
|
+
if (!posthogKey) {
|
|
21
|
+
console.warn('PostHog initialization failed: API key not available');
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
posthog_js_1.default.init(posthogKey, {
|
|
25
|
+
api_host: apiHost,
|
|
26
|
+
capture_pageview: 'history_change',
|
|
27
|
+
person_profiles: 'always',
|
|
28
|
+
loaded: (posthog) => {
|
|
29
|
+
console.log('PostHog initialized successfully');
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
const projectName = (config === null || config === void 0 ? void 0 : config.projectName) || (0, environment_1.getEnvVar)('VITE_PROJECT_NAME');
|
|
33
|
+
if (!projectName) {
|
|
34
|
+
throw new Error('PostHog initialization failed: VITE_PROJECT_NAME is required. Please provide it via config.projectName or VITE_PROJECT_NAME environment variable.');
|
|
35
|
+
}
|
|
36
|
+
posthog_js_1.default.register({
|
|
37
|
+
project_name: projectName
|
|
38
|
+
});
|
|
39
|
+
isInitialized = true;
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
console.warn('PostHog initialization error:', error);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports.initPostHog = initPostHog;
|
|
46
|
+
const identifyUser = (userId, properties) => {
|
|
47
|
+
if (!isInitialized || !(0, environment_1.isProduction)())
|
|
48
|
+
return;
|
|
49
|
+
try {
|
|
50
|
+
posthog_js_1.default.identify(userId, properties);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.warn('PostHog identify error:', error);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
exports.identifyUser = identifyUser;
|
|
57
|
+
const resetUser = () => {
|
|
58
|
+
if (!isInitialized || !(0, environment_1.isProduction)())
|
|
59
|
+
return;
|
|
60
|
+
try {
|
|
61
|
+
posthog_js_1.default.reset();
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
console.warn('PostHog reset error:', error);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
exports.resetUser = resetUser;
|
|
68
|
+
const registerPostHog = (properties) => {
|
|
69
|
+
if (!isInitialized || !(0, environment_1.isProduction)())
|
|
70
|
+
return;
|
|
71
|
+
try {
|
|
72
|
+
posthog_js_1.default.register(properties);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
console.warn('PostHog register error:', error);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
exports.registerPostHog = registerPostHog;
|
|
79
|
+
const getPostHogDistinctId = () => {
|
|
80
|
+
if (!isInitialized || !(0, environment_1.isProduction)())
|
|
81
|
+
return null;
|
|
82
|
+
try {
|
|
83
|
+
return posthog_js_1.default.get_distinct_id();
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
console.warn('PostHog get_distinct_id error:', error);
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
exports.getPostHogDistinctId = getPostHogDistinctId;
|
|
91
|
+
//# sourceMappingURL=posthog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posthog.js","sourceRoot":"","sources":["../../src/track/posthog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackEventGTM.d.ts","sourceRoot":"","sources":["../../src/track/trackEventGTM.ts"],"names":[],"mappings":"AAEA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,SAAS,EAAE,GAAG,EAAE,CAAC;KAClB;CACF;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAYtE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.trackEventGTM = void 0;
|
|
4
|
+
const environment_1 = require("./environment");
|
|
5
|
+
const trackEventGTM = (event, data) => {
|
|
6
|
+
if (!(0, environment_1.isProduction)()) {
|
|
7
|
+
console.log('[Dev] GTM Event:', { event, data });
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (typeof window !== 'undefined' && window.dataLayer) {
|
|
11
|
+
window.dataLayer.push({
|
|
12
|
+
event,
|
|
13
|
+
...data,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
exports.trackEventGTM = trackEventGTM;
|
|
18
|
+
//# sourceMappingURL=trackEventGTM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackEventGTM.js","sourceRoot":"","sources":["../../src/track/trackEventGTM.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAQtC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,IAA0B,EAAE,EAAE;IACzE,IAAI,CAAC,IAAA,0BAAY,GAAE,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACtD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK;YACL,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAZW,QAAA,aAAa,iBAYxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackEventPostHog.d.ts","sourceRoot":"","sources":["../../src/track/trackEventPostHog.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAkB9E,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.trackEventPostHog = void 0;
|
|
7
|
+
const posthog_js_1 = __importDefault(require("posthog-js"));
|
|
8
|
+
const environment_1 = require("./environment");
|
|
9
|
+
const trackEventPostHog = (eventName, data) => {
|
|
10
|
+
if (!(0, environment_1.isProduction)()) {
|
|
11
|
+
console.log('[Dev] PostHog:', eventName, data);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
if (localStorage.getItem('internal') === 'true' ||
|
|
15
|
+
document.cookie.includes('internal_user=1')) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
posthog_js_1.default.capture(eventName, data || {});
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.warn('PostHog tracking error:', error);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.trackEventPostHog = trackEventPostHog;
|
|
26
|
+
//# sourceMappingURL=trackEventPostHog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackEventPostHog.js","sourceRoot":"","sources":["../../src/track/trackEventPostHog.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAiC;AACjC,+CAA6C;AAEtC,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,IAA0B,EAAE,EAAE;IAEjF,IAAI,CAAC,IAAA,0BAAY,GAAE,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IAGD,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,MAAM;QAC3C,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAChD,OAAM;IACR,CAAC;IAED,IAAI,CAAC;QACH,oBAAO,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;AACH,CAAC,CAAA;AAlBY,QAAA,iBAAiB,qBAkB7B"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export interface Address {
|
|
2
|
+
full_address: string;
|
|
3
|
+
street_address?: string;
|
|
4
|
+
city?: string;
|
|
5
|
+
state?: string;
|
|
6
|
+
zip_code?: string;
|
|
7
|
+
county?: string;
|
|
8
|
+
country?: string;
|
|
9
|
+
extra_data?: Record<string, any>;
|
|
10
|
+
}
|
|
11
|
+
export interface SessionData {
|
|
12
|
+
ip?: string;
|
|
13
|
+
user_agent?: string;
|
|
14
|
+
browser?: string;
|
|
15
|
+
browser_version?: string;
|
|
16
|
+
os?: string;
|
|
17
|
+
device?: string;
|
|
18
|
+
referrer?: string;
|
|
19
|
+
utm_source?: string;
|
|
20
|
+
utm_medium?: string;
|
|
21
|
+
utm_campaign?: string;
|
|
22
|
+
landing_page?: string;
|
|
23
|
+
current_page?: string;
|
|
24
|
+
session_id?: string;
|
|
25
|
+
timestamp?: string;
|
|
26
|
+
distinct_id?: string;
|
|
27
|
+
gclid?: string;
|
|
28
|
+
fbclid?: string;
|
|
29
|
+
fbc?: string;
|
|
30
|
+
fbp?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface TrackLeadParams {
|
|
33
|
+
project_name: string;
|
|
34
|
+
lead_type: 'hero_newsletter_signup' | 'waitlist_signup' | 'plan_review_submit' | 'paid_ads';
|
|
35
|
+
first_name?: string;
|
|
36
|
+
last_name?: string;
|
|
37
|
+
email?: string;
|
|
38
|
+
phone?: string;
|
|
39
|
+
address?: Address;
|
|
40
|
+
extra_data?: Record<string, any>;
|
|
41
|
+
session_data?: SessionData;
|
|
42
|
+
api_url?: string;
|
|
43
|
+
api_key?: string;
|
|
44
|
+
}
|
|
45
|
+
export declare const trackLead: (params: TrackLeadParams) => Promise<{
|
|
46
|
+
status: "ok" | "error";
|
|
47
|
+
message?: string;
|
|
48
|
+
}>;
|
|
49
|
+
export declare const getSessionData: () => SessionData;
|
|
50
|
+
//# sourceMappingURL=trackLead.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackLead.d.ts","sourceRoot":"","sources":["../../src/track/trackLead.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,wBAAwB,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,UAAU,CAAC;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,SAAS,GAAU,QAAQ,eAAe,KAAG,OAAO,CAAC;IAAE,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAoD7G,CAAC;AAsFF,eAAO,MAAM,cAAc,QAAO,WA6CjC,CAAC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSessionData = exports.trackLead = void 0;
|
|
4
|
+
const environment_1 = require("./environment");
|
|
5
|
+
const trackLead = async (params) => {
|
|
6
|
+
if (!params.project_name) {
|
|
7
|
+
return { status: 'error', message: 'project_name is required' };
|
|
8
|
+
}
|
|
9
|
+
if (!params.email && !params.phone) {
|
|
10
|
+
console.warn('Lead tracking: email or phone is required');
|
|
11
|
+
return { status: 'error', message: 'Email or phone is required' };
|
|
12
|
+
}
|
|
13
|
+
const API_URL = params.api_url || (0, environment_1.getEnvVar)('VITE_LEAD_CAPTURE_API_URL');
|
|
14
|
+
const API_KEY = params.api_key || (0, environment_1.getEnvVar)('VITE_LEAD_CAPTURE_API_KEY');
|
|
15
|
+
if (!API_URL || !API_KEY) {
|
|
16
|
+
console.error('Lead capture API configuration missing');
|
|
17
|
+
return { status: 'error', message: 'API configuration missing' };
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
const response = await fetch(API_URL, {
|
|
21
|
+
method: 'POST',
|
|
22
|
+
headers: {
|
|
23
|
+
'Content-Type': 'application/json',
|
|
24
|
+
'X-Webhook-Secret': API_KEY,
|
|
25
|
+
},
|
|
26
|
+
body: JSON.stringify({
|
|
27
|
+
project_name: params.project_name,
|
|
28
|
+
lead_type: params.lead_type,
|
|
29
|
+
first_name: params.first_name,
|
|
30
|
+
last_name: params.last_name,
|
|
31
|
+
email: params.email,
|
|
32
|
+
phone: params.phone,
|
|
33
|
+
address: params.address,
|
|
34
|
+
extra_data: params.extra_data,
|
|
35
|
+
session_data: params.session_data,
|
|
36
|
+
}),
|
|
37
|
+
});
|
|
38
|
+
const data = await response.json();
|
|
39
|
+
if (!response.ok) {
|
|
40
|
+
console.warn('Lead tracking error:', data);
|
|
41
|
+
return { status: 'error', message: data.message || 'API error' };
|
|
42
|
+
}
|
|
43
|
+
return data || { status: 'ok' };
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
console.error('Lead tracking error:', error);
|
|
47
|
+
return { status: 'error', message: error instanceof Error ? error.message : 'Network error' };
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
exports.trackLead = trackLead;
|
|
51
|
+
const parseUserAgent = (ua) => {
|
|
52
|
+
var _a, _b, _c, _d;
|
|
53
|
+
try {
|
|
54
|
+
let browser = 'Unknown';
|
|
55
|
+
let browserVersion = '';
|
|
56
|
+
if (ua.includes('Firefox/')) {
|
|
57
|
+
browser = 'Firefox';
|
|
58
|
+
browserVersion = ((_a = ua.match(/Firefox\/([0-9.]+)/)) === null || _a === void 0 ? void 0 : _a[1]) || '';
|
|
59
|
+
}
|
|
60
|
+
else if (ua.includes('Chrome/') && !ua.includes('Edg')) {
|
|
61
|
+
browser = 'Chrome';
|
|
62
|
+
browserVersion = ((_b = ua.match(/Chrome\/([0-9.]+)/)) === null || _b === void 0 ? void 0 : _b[1]) || '';
|
|
63
|
+
}
|
|
64
|
+
else if (ua.includes('Safari/') && !ua.includes('Chrome')) {
|
|
65
|
+
browser = 'Safari';
|
|
66
|
+
browserVersion = ((_c = ua.match(/Version\/([0-9.]+)/)) === null || _c === void 0 ? void 0 : _c[1]) || '';
|
|
67
|
+
}
|
|
68
|
+
else if (ua.includes('Edg/')) {
|
|
69
|
+
browser = 'Edge';
|
|
70
|
+
browserVersion = ((_d = ua.match(/Edg\/([0-9.]+)/)) === null || _d === void 0 ? void 0 : _d[1]) || '';
|
|
71
|
+
}
|
|
72
|
+
let os = 'Unknown';
|
|
73
|
+
if (ua.includes('Windows'))
|
|
74
|
+
os = 'Windows';
|
|
75
|
+
else if (ua.includes('Mac OS'))
|
|
76
|
+
os = 'macOS';
|
|
77
|
+
else if (ua.includes('Linux'))
|
|
78
|
+
os = 'Linux';
|
|
79
|
+
else if (ua.includes('Android'))
|
|
80
|
+
os = 'Android';
|
|
81
|
+
else if (ua.includes('iOS') || ua.includes('iPhone') || ua.includes('iPad'))
|
|
82
|
+
os = 'iOS';
|
|
83
|
+
let device = 'Desktop';
|
|
84
|
+
if (/Mobile|Android|iPhone/i.test(ua))
|
|
85
|
+
device = 'Mobile';
|
|
86
|
+
else if (/iPad|Tablet/i.test(ua))
|
|
87
|
+
device = 'Tablet';
|
|
88
|
+
return { browser, browser_version: browserVersion, os, device };
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
return { browser: 'Unknown', browser_version: '', os: 'Unknown', device: 'Desktop' };
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
const getCookie = (name) => {
|
|
95
|
+
var _a;
|
|
96
|
+
try {
|
|
97
|
+
const value = `; ${document.cookie}`;
|
|
98
|
+
const parts = value.split(`; ${name}=`);
|
|
99
|
+
if (parts.length === 2)
|
|
100
|
+
return (_a = parts.pop()) === null || _a === void 0 ? void 0 : _a.split(';').shift();
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
const getSessionId = () => {
|
|
108
|
+
try {
|
|
109
|
+
const SESSION_KEY = 'wiserbuild_session_id';
|
|
110
|
+
let sessionId = sessionStorage.getItem(SESSION_KEY);
|
|
111
|
+
if (!sessionId) {
|
|
112
|
+
sessionId = `${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
|
|
113
|
+
sessionStorage.setItem(SESSION_KEY, sessionId);
|
|
114
|
+
}
|
|
115
|
+
return sessionId;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
return `${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
const getPostHogDistinctId = () => {
|
|
122
|
+
try {
|
|
123
|
+
if (window.posthog && typeof window.posthog.get_distinct_id === 'function') {
|
|
124
|
+
return window.posthog.get_distinct_id();
|
|
125
|
+
}
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
const getSessionData = () => {
|
|
133
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
134
|
+
const { browser, browser_version, os, device } = parseUserAgent(navigator.userAgent);
|
|
135
|
+
const sessionData = {
|
|
136
|
+
user_agent: navigator.userAgent,
|
|
137
|
+
browser,
|
|
138
|
+
browser_version,
|
|
139
|
+
os,
|
|
140
|
+
device,
|
|
141
|
+
landing_page: window.location.href,
|
|
142
|
+
current_page: window.location.href,
|
|
143
|
+
session_id: getSessionId(),
|
|
144
|
+
timestamp: new Date().toISOString(),
|
|
145
|
+
};
|
|
146
|
+
const referrer = document.referrer;
|
|
147
|
+
if (referrer)
|
|
148
|
+
sessionData.referrer = referrer;
|
|
149
|
+
const utmSource = urlParams.get('utm_source');
|
|
150
|
+
if (utmSource)
|
|
151
|
+
sessionData.utm_source = utmSource;
|
|
152
|
+
const utmMedium = urlParams.get('utm_medium');
|
|
153
|
+
if (utmMedium)
|
|
154
|
+
sessionData.utm_medium = utmMedium;
|
|
155
|
+
const utmCampaign = urlParams.get('utm_campaign');
|
|
156
|
+
if (utmCampaign)
|
|
157
|
+
sessionData.utm_campaign = utmCampaign;
|
|
158
|
+
const distinctId = getPostHogDistinctId();
|
|
159
|
+
if (distinctId)
|
|
160
|
+
sessionData.distinct_id = distinctId;
|
|
161
|
+
const gclid = urlParams.get('gclid');
|
|
162
|
+
if (gclid)
|
|
163
|
+
sessionData.gclid = gclid;
|
|
164
|
+
const fbclid = urlParams.get('fbclid');
|
|
165
|
+
if (fbclid)
|
|
166
|
+
sessionData.fbclid = fbclid;
|
|
167
|
+
const fbc = getCookie('_fbc');
|
|
168
|
+
if (fbc)
|
|
169
|
+
sessionData.fbc = fbc;
|
|
170
|
+
const fbp = getCookie('_fbp');
|
|
171
|
+
if (fbp)
|
|
172
|
+
sessionData.fbp = fbp;
|
|
173
|
+
return sessionData;
|
|
174
|
+
};
|
|
175
|
+
exports.getSessionData = getSessionData;
|
|
176
|
+
//# sourceMappingURL=trackLead.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackLead.js","sourceRoot":"","sources":["../../src/track/trackLead.ts"],"names":[],"mappings":";;;AAAA,+CAA0C;AAiDnC,MAAM,SAAS,GAAG,KAAK,EAAE,MAAuB,EAAyD,EAAE;IAEhH,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC1D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;IACpE,CAAC;IAGD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAA,uBAAS,EAAC,2BAA2B,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAA,uBAAS,EAAC,2BAA2B,CAAC,CAAC;IAEzE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACnE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;YACpC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,kBAAkB,EAAE,OAAO;aAC5B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE,CAAC;QACnE,CAAC;QAED,OAAO,IAAI,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAChG,CAAC;AACH,CAAC,CAAC;AApDW,QAAA,SAAS,aAoDpB;AAGF,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,EAAE;;IACpC,IAAI,CAAC;QAEH,IAAI,OAAO,GAAG,SAAS,CAAC;QACxB,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,SAAS,CAAC;YACpB,cAAc,GAAG,CAAA,MAAA,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAC;QAC7D,CAAC;aAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,GAAG,QAAQ,CAAC;YACnB,cAAc,GAAG,CAAA,MAAA,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAC;QAC5D,CAAC;aAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,OAAO,GAAG,QAAQ,CAAC;YACnB,cAAc,GAAG,CAAA,MAAA,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAC;QAC7D,CAAC;aAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,GAAG,MAAM,CAAC;YACjB,cAAc,GAAG,CAAA,MAAA,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAC;QACzD,CAAC;QAGD,IAAI,EAAE,GAAG,SAAS,CAAC;QACnB,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,EAAE,GAAG,SAAS,CAAC;aACtC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,EAAE,GAAG,OAAO,CAAC;aACxC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,EAAE,GAAG,OAAO,CAAC;aACvC,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,EAAE,GAAG,SAAS,CAAC;aAC3C,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,EAAE,GAAG,KAAK,CAAC;QAGxF,IAAI,MAAM,GAAG,SAAS,CAAC;QACvB,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,MAAM,GAAG,QAAQ,CAAC;aACpD,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,MAAM,GAAG,QAAQ,CAAC;QAEpD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACvF,CAAC;AACH,CAAC,CAAC;AAGF,MAAM,SAAS,GAAG,CAAC,IAAY,EAAsB,EAAE;;IACrD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAA,KAAK,CAAC,GAAG,EAAE,0CAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;QAC/D,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAGF,MAAM,YAAY,GAAG,GAAW,EAAE;IAChC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,uBAAuB,CAAC;QAC5C,IAAI,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAC3E,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IACxE,CAAC;AACH,CAAC,CAAC;AAGF,MAAM,oBAAoB,GAAG,GAAuB,EAAE;IACpD,IAAI,CAAC;QAEH,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YAE3E,OAAO,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAGK,MAAM,cAAc,GAAG,GAAgB,EAAE;IAC9C,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAErF,MAAM,WAAW,GAAgB;QAC/B,UAAU,EAAE,SAAS,CAAC,SAAS;QAC/B,OAAO;QACP,eAAe;QACf,EAAE;QACF,MAAM;QACN,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;QAClC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;QAClC,UAAU,EAAE,YAAY,EAAE;QAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IAGF,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACnC,IAAI,QAAQ;QAAE,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAE9C,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,SAAS;QAAE,WAAW,CAAC,UAAU,GAAG,SAAS,CAAC;IAElD,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,SAAS;QAAE,WAAW,CAAC,UAAU,GAAG,SAAS,CAAC;IAElD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,WAAW;QAAE,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC;IAExD,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;IAC1C,IAAI,UAAU;QAAE,WAAW,CAAC,WAAW,GAAG,UAAU,CAAC;IAErD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,KAAK;QAAE,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;IAErC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,MAAM;QAAE,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;IAExC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,GAAG;QAAE,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC;IAE/B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,GAAG;QAAE,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC;IAE/B,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AA7CW,QAAA,cAAc,kBA6CzB"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aacigroup/aaci_shared",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "index.js",
|
|
3
|
+
"version": "1.0.3",
|
|
4
|
+
"description": "Shared tracking utilities for AACI Group projects",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
6
10
|
"scripts": {
|
|
7
11
|
"build": "tsc",
|
|
8
|
-
"test": "echo \"
|
|
12
|
+
"test": "echo \"No tests specified - skipping\"",
|
|
13
|
+
"prepublishOnly": "npm run build"
|
|
9
14
|
},
|
|
10
15
|
"repository": {
|
|
11
16
|
"type": "git",
|
|
12
17
|
"url": "git+https://github.com/AACI-Group/aaci_shared.git"
|
|
13
18
|
},
|
|
14
|
-
"keywords": [
|
|
15
|
-
|
|
19
|
+
"keywords": [
|
|
20
|
+
"tracking",
|
|
21
|
+
"analytics",
|
|
22
|
+
"posthog",
|
|
23
|
+
"gtm",
|
|
24
|
+
"lead-capture",
|
|
25
|
+
"error-tracking"
|
|
26
|
+
],
|
|
27
|
+
"author": "AACI Group",
|
|
16
28
|
"license": "ISC",
|
|
17
29
|
"type": "commonjs",
|
|
18
30
|
"bugs": {
|
|
@@ -25,5 +37,20 @@
|
|
|
25
37
|
"publishConfig": {
|
|
26
38
|
"access": "public",
|
|
27
39
|
"registry": "https://registry.npmjs.org/"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"posthog-js": "^1.274.1"
|
|
43
|
+
},
|
|
44
|
+
"exports": {
|
|
45
|
+
".": {
|
|
46
|
+
"import": "./dist/index.js",
|
|
47
|
+
"require": "./dist/index.js",
|
|
48
|
+
"types": "./dist/index.d.ts"
|
|
49
|
+
},
|
|
50
|
+
"./track/*": {
|
|
51
|
+
"import": "./dist/track/*.js",
|
|
52
|
+
"require": "./dist/track/*.js",
|
|
53
|
+
"types": "./dist/track/*.d.ts"
|
|
54
|
+
}
|
|
28
55
|
}
|
|
29
56
|
}
|
package/src/index.ts
DELETED
package/tsconfig.json
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
/* ---------- File Layout ---------- */
|
|
4
|
-
"rootDir": "./src",
|
|
5
|
-
"outDir": "./dist",
|
|
6
|
-
|
|
7
|
-
/* ---------- Language & Module ---------- */
|
|
8
|
-
"target": "ES2019",
|
|
9
|
-
"module": "NodeNext",
|
|
10
|
-
"moduleResolution": "NodeNext",
|
|
11
|
-
"esModuleInterop": true,
|
|
12
|
-
"resolveJsonModule": true,
|
|
13
|
-
|
|
14
|
-
/* ---------- Type Declarations ---------- */
|
|
15
|
-
"declaration": true,
|
|
16
|
-
"declarationMap": true,
|
|
17
|
-
"sourceMap": true,
|
|
18
|
-
|
|
19
|
-
/* ---------- Type Checking ---------- */
|
|
20
|
-
"strict": true,
|
|
21
|
-
"skipLibCheck": true,
|
|
22
|
-
"noUncheckedIndexedAccess": true,
|
|
23
|
-
"exactOptionalPropertyTypes": true,
|
|
24
|
-
"isolatedModules": true,
|
|
25
|
-
|
|
26
|
-
/* ---------- React / JSX ---------- */
|
|
27
|
-
"jsx": "react-jsx",
|
|
28
|
-
|
|
29
|
-
/* ---------- Output Cleanup ---------- */
|
|
30
|
-
"removeComments": true
|
|
31
|
-
},
|
|
32
|
-
"include": ["src/**/*"],
|
|
33
|
-
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.spec.ts"]
|
|
34
|
-
}
|