@huloglobal/vendure-plugin-visitor-analytics 0.3.3 → 0.4.1
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 +150 -121
- package/dist/plugin.d.ts +17 -4
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/visitor-tracking.controller.d.ts +12 -2
- package/dist/visitor-tracking.controller.d.ts.map +1 -1
- package/dist/visitor-tracking.controller.js +69 -9
- package/dist/visitor-tracking.controller.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,34 +1,18 @@
|
|
|
1
1
|
# @huloglobal/vendure-plugin-visitor-analytics
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
Self-hosted full-funnel visitor analytics for Vendure storefronts.
|
|
4
|
+
Pageviews, time-on-page, exit pages, configurable funnel, UTM
|
|
5
|
+
attribution, conversion goals with URL-glob matching, bot detection,
|
|
6
|
+
and a per-visitor profile drawer with parsed user-agent and MaxMind
|
|
7
|
+
geo. Privacy-first defaults: DNT, IP anonymisation, optional consent
|
|
8
|
+
gate.
|
|
8
9
|
|
|
9
10
|
Maintained by Wayne Garrison.
|
|
10
11
|
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
(`ees_vid`, 2 years) and a sliding session cookie (`ees_sid`,
|
|
16
|
-
30-minute idle).
|
|
17
|
-
- **Auto-enrichment** at ingest time:
|
|
18
|
-
- User-agent parsed via `ua-parser-js` → browser / browser version /
|
|
19
|
-
OS / OS version / device type. Bots auto-detected.
|
|
20
|
-
- IP-to-geo via MaxMind GeoLite2-City (no MaxMind account required,
|
|
21
|
-
DB fetched at install via `geolite2-redist`). Or use the upstream
|
|
22
|
-
proxy's resolved country / region when Cloudflare / Akamai /
|
|
23
|
-
Fastly is in front — saves the lookup.
|
|
24
|
-
- Raw IP is kept; a SHA-256 salted hash is stored alongside for
|
|
25
|
-
spot-the-same-bot work.
|
|
26
|
-
- **Admin endpoints**: summary tiles, top pages, exit pages, funnel,
|
|
27
|
-
recent visitors, per-visitor profile + journey timeline. All
|
|
28
|
-
paginated.
|
|
29
|
-
- **Admin UI**: top-line tiles, funnel bars, top + exit page tables,
|
|
30
|
-
recent visitors with a clickable profile drawer showing every field
|
|
31
|
-
+ per-session breakdown + the full event timeline.
|
|
12
|
+
## Buy
|
|
13
|
+
|
|
14
|
+
7-day free trial then **£9.95/month**, or **£199 one-off lifetime** at
|
|
15
|
+
[elite.charity/licence/buy/vendure-plugin-visitor-analytics](https://elite.charity/licence/buy/vendure-plugin-visitor-analytics).
|
|
32
16
|
|
|
33
17
|
## Install
|
|
34
18
|
|
|
@@ -36,132 +20,177 @@ Maintained by Wayne Garrison.
|
|
|
36
20
|
yarn add @huloglobal/vendure-plugin-visitor-analytics
|
|
37
21
|
```
|
|
38
22
|
|
|
39
|
-
## Wire up
|
|
40
|
-
|
|
41
23
|
```ts
|
|
42
24
|
import { VisitorAnalyticsPlugin } from '@huloglobal/vendure-plugin-visitor-analytics';
|
|
43
25
|
|
|
44
26
|
export const config: VendureConfig = {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
27
|
+
plugins: [
|
|
28
|
+
VisitorAnalyticsPlugin.init({
|
|
29
|
+
publicBaseUrl: 'https://shop.example.com',
|
|
30
|
+
licenceKey: process.env.HULO_LICENCE_KEY_VISITOR_ANALYTICS,
|
|
31
|
+
|
|
32
|
+
// -- Privacy (defaults shown) --
|
|
33
|
+
honorDoNotTrack: true,
|
|
34
|
+
anonymizeIp: true,
|
|
35
|
+
requireConsent: false,
|
|
36
|
+
dropBotEvents: false,
|
|
37
|
+
|
|
38
|
+
// -- Security (recommended in production) --
|
|
39
|
+
signingSecret: process.env.HULO_VISITOR_SIGNING_SECRET,
|
|
40
|
+
corsAllowedOrigins: [
|
|
41
|
+
'https://shop.example.com',
|
|
42
|
+
'https://www.example.com',
|
|
43
|
+
],
|
|
44
|
+
rateLimit: { capacity: 240, windowMs: 60_000 },
|
|
45
|
+
|
|
46
|
+
// -- Retention (opt-in) --
|
|
47
|
+
retention: { days: 365, maxRows: 50_000_000 },
|
|
48
|
+
}),
|
|
49
|
+
],
|
|
51
50
|
};
|
|
52
51
|
```
|
|
53
52
|
|
|
54
|
-
Add to your
|
|
53
|
+
Add `VisitorAnalyticsPlugin.uiExtensions` to your `compileUiExtensions`
|
|
54
|
+
config.
|
|
55
|
+
|
|
56
|
+
## Storefront snippet
|
|
55
57
|
|
|
56
58
|
```ts
|
|
57
|
-
|
|
59
|
+
// utils/visitor-tracking.ts
|
|
60
|
+
const ENDPOINT = 'https://shop.example.com/ees/track';
|
|
61
|
+
const CHANNEL_ID = 1;
|
|
62
|
+
let queue: any[] = [];
|
|
63
|
+
let flushTimer: any;
|
|
64
|
+
|
|
65
|
+
export function recordPageview(url: string, title: string) {
|
|
66
|
+
queue.push({ type: 'pageview', url, title, clientTs: Date.now() });
|
|
67
|
+
scheduleFlush();
|
|
68
|
+
}
|
|
58
69
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
70
|
+
export function recordEvent(type: string, meta: any) {
|
|
71
|
+
queue.push({
|
|
72
|
+
type, url: location.pathname + location.search,
|
|
73
|
+
meta, clientTs: Date.now(),
|
|
74
|
+
});
|
|
75
|
+
scheduleFlush();
|
|
76
|
+
}
|
|
64
77
|
|
|
65
|
-
|
|
78
|
+
function scheduleFlush() {
|
|
79
|
+
clearTimeout(flushTimer);
|
|
80
|
+
flushTimer = setTimeout(flush, 1000);
|
|
81
|
+
}
|
|
82
|
+
function flush() {
|
|
83
|
+
if (!queue.length) return;
|
|
84
|
+
const body = JSON.stringify({ channelId: CHANNEL_ID, events: queue });
|
|
85
|
+
queue = [];
|
|
86
|
+
navigator.sendBeacon?.(ENDPOINT, body) ||
|
|
87
|
+
fetch(ENDPOINT, {
|
|
88
|
+
method: 'POST', body,
|
|
89
|
+
headers: { 'content-type': 'application/json' }, keepalive: true,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
```
|
|
66
93
|
|
|
67
|
-
|
|
68
|
-
|
|
94
|
+
Call `recordPageview()` on every route change. For custom events
|
|
95
|
+
(add-to-cart, search, signup, …) call `recordEvent(type, meta)` at the
|
|
96
|
+
appropriate point.
|
|
69
97
|
|
|
70
|
-
|
|
71
|
-
// utils/tracker.ts
|
|
72
|
-
const TRACK_URL = 'https://shop.example.com/ees/track';
|
|
73
|
-
let lastPath = '';
|
|
74
|
-
let pageOpenedAt = 0;
|
|
75
|
-
|
|
76
|
-
export function recordPageView(): void {
|
|
77
|
-
const url = location.pathname + location.search;
|
|
78
|
-
const events: any[] = [];
|
|
79
|
-
if (lastPath && lastPath !== url) {
|
|
80
|
-
events.push({ type: 'unload', url: lastPath, timeOnPageMs: Date.now() - pageOpenedAt });
|
|
81
|
-
}
|
|
82
|
-
events.push({ type: 'pageview', url, title: document.title, referrer: document.referrer });
|
|
83
|
-
lastPath = url;
|
|
84
|
-
pageOpenedAt = Date.now();
|
|
85
|
-
fetch(TRACK_URL, {
|
|
86
|
-
method: 'POST',
|
|
87
|
-
credentials: 'include',
|
|
88
|
-
headers: { 'content-type': 'application/json' },
|
|
89
|
-
body: JSON.stringify({ channelId: 1, events }),
|
|
90
|
-
keepalive: true,
|
|
91
|
-
}).catch(() => undefined);
|
|
92
|
-
}
|
|
98
|
+
## Feature tour
|
|
93
99
|
|
|
94
|
-
|
|
95
|
-
window.addEventListener('pagehide', () => {
|
|
96
|
-
const blob = new Blob([JSON.stringify({
|
|
97
|
-
channelId: 1,
|
|
98
|
-
events: [{ type: 'unload', url: lastPath, timeOnPageMs: Date.now() - pageOpenedAt }],
|
|
99
|
-
})], { type: 'application/json' });
|
|
100
|
-
navigator.sendBeacon(TRACK_URL, blob);
|
|
101
|
-
});
|
|
102
|
-
```
|
|
100
|
+
### Lightweight ingest
|
|
103
101
|
|
|
104
|
-
|
|
102
|
+
- `POST /ees/track` accepts a batch of up to 50 events at once.
|
|
103
|
+
- Visitor + session cookies (`ees_vid`, `ees_sid`) issued + refreshed
|
|
104
|
+
automatically. When `signingSecret` is set, cookies are HMAC-signed
|
|
105
|
+
and tampered values are rejected — the visitor gets a fresh id.
|
|
106
|
+
- `Secure` flag is set automatically when serving over HTTPS.
|
|
105
107
|
|
|
106
|
-
|
|
107
|
-
visitor does something interesting — add-to-cart, search, signup,
|
|
108
|
-
quote-request — and the event shows up in the admin "Top events" table
|
|
109
|
-
straight away.
|
|
108
|
+
### Auto-enrichment
|
|
110
109
|
|
|
111
|
-
|
|
112
|
-
function recordEvent(type, meta) {
|
|
113
|
-
navigator.sendBeacon(TRACK_URL, new Blob([JSON.stringify({
|
|
114
|
-
channelId: 1,
|
|
115
|
-
events: [{ type, url: location.pathname + location.search, meta }],
|
|
116
|
-
})], { type: 'application/json' }));
|
|
117
|
-
}
|
|
110
|
+
Per event:
|
|
118
111
|
|
|
119
|
-
|
|
120
|
-
|
|
112
|
+
- **User-agent** parsed via `ua-parser-js` → browser, version, OS,
|
|
113
|
+
device.
|
|
114
|
+
- **Geo** via MaxMind GeoLite2-City (no MaxMind account required — DB
|
|
115
|
+
fetched at install via `geolite2-redist`). Skipped when the upstream
|
|
116
|
+
proxy already provides a country (Cloudflare, Akamai, Fastly).
|
|
117
|
+
- **UTM attribution** parsed server-side from every pageview URL:
|
|
118
|
+
`utmSource`, `utmMedium`, `utmCampaign`, `utmTerm`, `utmContent`. Plus
|
|
119
|
+
`referrerDomain` for grouping by source even when UTM is absent.
|
|
120
|
+
- **Bot flag** — known crawler / monitoring / library UAs (Googlebot,
|
|
121
|
+
Bingbot, UptimeRobot, Datadog, curl, Puppeteer, …) marked `isBot=true`.
|
|
121
122
|
|
|
122
|
-
|
|
123
|
-
recordEvent('search', { query: 'windows server 2022' });
|
|
123
|
+
### Configurable conversion goals
|
|
124
124
|
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
A goal is a URL glob that, when matched, counts the visitor as having
|
|
126
|
+
converted. Supports `*` (within segment) and `**` (across segments).
|
|
127
127
|
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
```bash
|
|
129
|
+
curl -X POST https://shop.example.com/ees/goals -H 'content-type: application/json' \
|
|
130
|
+
-d '{"channelId":1,"name":"Checkout completed","urlPattern":"/checkout/thank-you/*","valueMinor":5000}'
|
|
130
131
|
```
|
|
131
132
|
|
|
132
|
-
|
|
133
|
-
slice on it later from the admin UI.
|
|
133
|
+
Stats at `GET /ees/goals/stats?days=30&channelId=1`.
|
|
134
134
|
|
|
135
|
-
|
|
135
|
+
### Privacy controls
|
|
136
136
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
137
|
+
- `honorDoNotTrack: true` (default) — `DNT: 1` and `Sec-GPC: 1` requests
|
|
138
|
+
get a 200 with `{stored:0, skipped:'dnt'}`.
|
|
139
|
+
- `anonymizeIp: true` (default) — IPv4 last octet dropped before
|
|
140
|
+
storage; IPv6 reduced to the first 3 hextets. `ipHash` still uses the
|
|
141
|
+
raw IP so unique-visitor counts stay accurate.
|
|
142
|
+
- `requireConsent: false` (default) — flip on to require a `consent: true`
|
|
143
|
+
body field or an `ees_consent=1` cookie before ingest.
|
|
144
|
+
- `dropBotEvents: false` (default) — flip on to skip bot UAs entirely.
|
|
142
145
|
|
|
143
|
-
|
|
144
|
-
inbound link and it surfaces automatically — no extra config.
|
|
146
|
+
### Live-now widget
|
|
145
147
|
|
|
146
|
-
|
|
148
|
+
SSE stream at `GET /ees/visitors/live` pushes the active-visitor count
|
|
149
|
+
and the 20 most recent URLs every 5 seconds. Auto-reconnects.
|
|
147
150
|
|
|
148
|
-
|
|
149
|
-
count + the URLs they're on in real time via Server-Sent Events
|
|
150
|
-
(`GET /ees/visitors/live`). Updates every 5 seconds, reconnects
|
|
151
|
-
automatically if the connection drops. Active = at least one event in
|
|
152
|
-
the last 5 minutes.
|
|
151
|
+
### Per-visitor journey
|
|
153
152
|
|
|
154
|
-
|
|
153
|
+
Click any visitor for the full timeline: pages, custom events,
|
|
154
|
+
time-on-page, country, browser, OS.
|
|
155
155
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
156
|
+
### CSV export
|
|
157
|
+
|
|
158
|
+
`GET /ees/visitors/export.csv?days=N` (max 90 days) returns the raw
|
|
159
|
+
events with full enrichment.
|
|
160
160
|
|
|
161
|
-
|
|
162
|
-
|
|
161
|
+
## HTTP endpoints
|
|
162
|
+
|
|
163
|
+
| Method | Path | Auth | Purpose |
|
|
164
|
+
| --- | --- | --- | --- |
|
|
165
|
+
| `POST` | `/ees/track` | public | ingest batch of events |
|
|
166
|
+
| `GET` | `/ees/visitors/summary` | admin | top-line + daily series |
|
|
167
|
+
| `GET` | `/ees/visitors/sources` | admin | top sources by visits |
|
|
168
|
+
| `GET` | `/ees/visitors/top-pages` | admin | most-visited URLs |
|
|
169
|
+
| `GET` | `/ees/visitors/funnel` | admin | configurable funnel |
|
|
170
|
+
| `GET` | `/ees/visitors/exit-pages` | admin | top exit pages |
|
|
171
|
+
| `GET` | `/ees/visitors/top-events` | admin | top custom events |
|
|
172
|
+
| `GET` | `/ees/visitors/live` | admin | SSE live-now stream |
|
|
173
|
+
| `GET` | `/ees/visitors/journey/:visitorId` | admin | per-visitor timeline |
|
|
174
|
+
| `GET` | `/ees/visitors/recent` | admin | recent events |
|
|
175
|
+
| `GET` | `/ees/visitors/export.csv` | admin | CSV export |
|
|
176
|
+
| `GET` | `/ees/goals` | admin | list conversion goals |
|
|
177
|
+
| `POST` | `/ees/goals` | admin | create a goal |
|
|
178
|
+
| `PUT` | `/ees/goals/:id` | admin | update a goal |
|
|
179
|
+
| `DELETE` | `/ees/goals/:id` | admin | delete a goal |
|
|
180
|
+
| `GET` | `/ees/goals/stats` | admin | per-goal completion stats |
|
|
181
|
+
| `GET` | `/ees/visitors/status` | admin | version + update status |
|
|
182
|
+
|
|
183
|
+
## Documentation
|
|
184
|
+
|
|
185
|
+
User manual + screenshots:
|
|
186
|
+
[huloglobal.com/vendure-plugins/visitor-analytics/docs/](https://huloglobal.com/vendure-plugins/visitor-analytics/docs/)
|
|
187
|
+
|
|
188
|
+
## Lost your licence key?
|
|
189
|
+
|
|
190
|
+
Re-send every active key on file at
|
|
191
|
+
[elite.charity/licence/forgot](https://elite.charity/licence/forgot).
|
|
163
192
|
|
|
164
193
|
## Licence
|
|
165
194
|
|
|
166
|
-
Commercial
|
|
167
|
-
(
|
|
195
|
+
Commercial. Buy at
|
|
196
|
+
[elite.charity/licence/buy/vendure-plugin-visitor-analytics](https://elite.charity/licence/buy/vendure-plugin-visitor-analytics).
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Type } from '@vendure/core';
|
|
2
|
-
import { UpdateChecker } from '@huloglobal/vendure-licence-sdk';
|
|
2
|
+
import { RetentionOptions, UpdateChecker } from '@huloglobal/vendure-licence-sdk';
|
|
3
3
|
export interface VisitorAnalyticsPluginOptions {
|
|
4
4
|
/** Public host of the Vendure server. Used in licence host-match. */
|
|
5
5
|
publicBaseUrl: string;
|
|
@@ -23,10 +23,23 @@ export interface VisitorAnalyticsPluginOptions {
|
|
|
23
23
|
* ingested with `isBot=true`. Default false — keep bots so their
|
|
24
24
|
* share is visible on the dashboard. */
|
|
25
25
|
dropBotEvents?: boolean;
|
|
26
|
+
/** Rate limit per IP. Default 240 events / 60s. */
|
|
27
|
+
rateLimit?: {
|
|
28
|
+
capacity: number;
|
|
29
|
+
windowMs: number;
|
|
30
|
+
};
|
|
31
|
+
/** HMAC secret used to sign visitor + session cookies so tampered
|
|
32
|
+
* values are rejected at the ingest endpoint. When unset, cookies
|
|
33
|
+
* are not signed (legacy behaviour). Strongly recommend setting. */
|
|
34
|
+
signingSecret?: string;
|
|
35
|
+
/** Allowed CORS origins. When set, the `Access-Control-Allow-Origin`
|
|
36
|
+
* reflection is restricted to this list. When empty (default), any
|
|
37
|
+
* origin is reflected — matches legacy behaviour but is less safe. */
|
|
38
|
+
corsAllowedOrigins?: string[];
|
|
39
|
+
/** Auto-prune `visitor_event` rows older than `days` days. */
|
|
40
|
+
retention?: RetentionOptions;
|
|
26
41
|
}
|
|
27
|
-
declare const DEFAULT_OPTIONS:
|
|
28
|
-
publicBaseUrl: string;
|
|
29
|
-
};
|
|
42
|
+
declare const DEFAULT_OPTIONS: VisitorAnalyticsPluginOptions;
|
|
30
43
|
export declare function getOptions(): typeof DEFAULT_OPTIONS & VisitorAnalyticsPluginOptions;
|
|
31
44
|
/**
|
|
32
45
|
* `@huloglobal/vendure-plugin-visitor-analytics`
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,IAAI,EAAiB,MAAM,eAAe,CAAC;AACxE,OAAO,EAAqB,aAAa,EAAiB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,IAAI,EAAiB,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAqB,aAAa,EAAiB,MAAM,iCAAiC,CAAC;AAUpH,MAAM,WAAW,6BAA6B;IAC1C,qEAAqE;IACrE,aAAa,EAAE,MAAM,CAAC;IACtB;;;gDAG4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB;6EACyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;yEAEqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;qEAEiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;6CAEyC;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,mDAAmD;IACnD,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD;;yEAEqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;2EAEuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG9B,8DAA8D;IAC9D,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAgBD,QAAA,MAAM,eAAe,EAAE,6BAMtB,CAAC;AAGF,wBAAgB,UAAU,IAAI,OAAO,eAAe,GAAG,6BAA6B,CAEnF;AAED;;;;;;;;;;;GAWG;AACH,qBAOa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAkC;IAC3D,OAAO,CAAC,MAAM,CAAC,aAAa,CAA8B;IAE1D,MAAM,CAAC,gBAAgB,IAAI,aAAa,GAAG,IAAI;IAC/C,MAAM,CAAC,iBAAiB,IAAI,MAAM;IAClC,MAAM,CAAC,cAAc,IAAI,MAAM;IAE/B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,6BAA6B,GAAG,IAAI,CAAC,sBAAsB,CAAC;IAiCjF,MAAM,CAAC,YAAY;;;;;;;;MAUjB;CACL"}
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
import { OnApplicationBootstrap, OnModuleDestroy } from '@nestjs/common';
|
|
1
2
|
import { RequestContext, TransactionalConnection } from '@vendure/core';
|
|
2
3
|
import { Request, Response } from 'express';
|
|
3
4
|
import { VisitorTrackingService } from './visitor-tracking.service';
|
|
4
|
-
export declare class VisitorTrackingController {
|
|
5
|
+
export declare class VisitorTrackingController implements OnApplicationBootstrap, OnModuleDestroy {
|
|
5
6
|
private connection;
|
|
6
7
|
private tracking;
|
|
8
|
+
private limiter;
|
|
9
|
+
private stopRetention;
|
|
7
10
|
constructor(connection: TransactionalConnection, tracking: VisitorTrackingService);
|
|
11
|
+
onApplicationBootstrap(): void;
|
|
12
|
+
onModuleDestroy(): void;
|
|
13
|
+
private rateLimited;
|
|
8
14
|
/**
|
|
9
15
|
* Ingest endpoint hit by the storefront tracker. Anonymous, takes
|
|
10
16
|
* a small JSON batch via fetch() or navigator.sendBeacon() (which
|
|
@@ -23,7 +29,7 @@ export declare class VisitorTrackingController {
|
|
|
23
29
|
* Cookies `ees_vid` (visitor) and `ees_sid` (session) are issued
|
|
24
30
|
* on the first request and refreshed on every subsequent one.
|
|
25
31
|
*/
|
|
26
|
-
track(body: any, req: Request, res: Response): Promise<Response<any, Record<string, any
|
|
32
|
+
track(body: any, req: Request, res: Response): Promise<Response<any, Record<string, any>> | undefined>;
|
|
27
33
|
/** Top-line counters + daily series for the dashboard header. */
|
|
28
34
|
summary(ctx: RequestContext, req: Request, res: Response): Promise<Response<any, Record<string, any>> | undefined>;
|
|
29
35
|
/** Traffic sources — UTM source breakdown + organic referrer
|
|
@@ -61,6 +67,10 @@ export declare class VisitorTrackingController {
|
|
|
61
67
|
* detail drawer in the admin UI. */
|
|
62
68
|
profile(ctx: RequestContext, visitorIdRaw: string, res: Response): Promise<Response<any, Record<string, any>> | undefined>;
|
|
63
69
|
private applyCors;
|
|
70
|
+
/** Read a possibly-signed cookie. When `secret` is provided we
|
|
71
|
+
* require + verify the signature; otherwise we return the raw
|
|
72
|
+
* value. Returns empty string for missing / tampered values. */
|
|
73
|
+
private readSignedCookie;
|
|
64
74
|
private parseCookies;
|
|
65
75
|
/** Admin: plugin health + update availability. Read by the admin UI
|
|
66
76
|
* banner so the operator sees when a new version is on npm. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitor-tracking.controller.d.ts","sourceRoot":"","sources":["../src/visitor-tracking.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"visitor-tracking.controller.d.ts","sourceRoot":"","sources":["../src/visitor-tracking.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.VisitorTrackingController = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
|
+
const vendure_licence_sdk_1 = require("@huloglobal/vendure-licence-sdk");
|
|
17
18
|
const core_1 = require("@vendure/core");
|
|
18
19
|
const conversion_goal_entity_1 = require("./conversion-goal.entity");
|
|
19
20
|
const plugin_1 = require("./plugin");
|
|
@@ -46,6 +47,37 @@ let VisitorTrackingController = class VisitorTrackingController {
|
|
|
46
47
|
constructor(connection, tracking) {
|
|
47
48
|
this.connection = connection;
|
|
48
49
|
this.tracking = tracking;
|
|
50
|
+
this.limiter = null;
|
|
51
|
+
this.stopRetention = null;
|
|
52
|
+
}
|
|
53
|
+
onApplicationBootstrap() {
|
|
54
|
+
const opts = (0, plugin_1.getOptions)();
|
|
55
|
+
const rl = opts.rateLimit || { capacity: 240, windowMs: 60000 };
|
|
56
|
+
this.limiter = new vendure_licence_sdk_1.RateLimiter({ capacity: rl.capacity, windowMs: rl.windowMs });
|
|
57
|
+
if (opts.retention) {
|
|
58
|
+
this.stopRetention = (0, vendure_licence_sdk_1.startRetentionSweeper)({
|
|
59
|
+
getConnection: () => this.connection.rawConnection,
|
|
60
|
+
table: 'visitor_event',
|
|
61
|
+
options: opts.retention,
|
|
62
|
+
label: 'visitor-analytics',
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
onModuleDestroy() {
|
|
67
|
+
var _a;
|
|
68
|
+
(_a = this.stopRetention) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
69
|
+
this.stopRetention = null;
|
|
70
|
+
}
|
|
71
|
+
rateLimited(req, res, bucket) {
|
|
72
|
+
const ip = req.headers['cf-connecting-ip'] || req.ip || '';
|
|
73
|
+
if (!ip || !this.limiter)
|
|
74
|
+
return false;
|
|
75
|
+
if (!this.limiter.allow(`${bucket}|${ip}`)) {
|
|
76
|
+
res.setHeader('Retry-After', '60');
|
|
77
|
+
res.status(429).json({ stored: 0, skipped: 'rate-limited' });
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
49
81
|
}
|
|
50
82
|
/**
|
|
51
83
|
* Ingest endpoint hit by the storefront tracker. Anonymous, takes
|
|
@@ -66,11 +98,15 @@ let VisitorTrackingController = class VisitorTrackingController {
|
|
|
66
98
|
* on the first request and refreshed on every subsequent one.
|
|
67
99
|
*/
|
|
68
100
|
async track(body, req, res) {
|
|
101
|
+
var _a;
|
|
69
102
|
// Lenient CORS — analytics ingestion must work cross-origin from
|
|
70
103
|
// both storefronts (and dev hosts) without complex config.
|
|
71
104
|
this.applyCors(req, res);
|
|
105
|
+
(0, vendure_licence_sdk_1.applySecurityHeaders)(res);
|
|
72
106
|
if (req.method === 'OPTIONS')
|
|
73
107
|
return res.status(204).end();
|
|
108
|
+
if (this.rateLimited(req, res, 'track'))
|
|
109
|
+
return;
|
|
74
110
|
const opts = (0, plugin_1.getOptions)();
|
|
75
111
|
// Privacy: honour Do-Not-Track when configured. We still return 200
|
|
76
112
|
// so the storefront can't tell the difference between "stored" and
|
|
@@ -89,8 +125,11 @@ let VisitorTrackingController = class VisitorTrackingController {
|
|
|
89
125
|
return res.json({ stored: 0, skipped: 'no-consent' });
|
|
90
126
|
}
|
|
91
127
|
}
|
|
92
|
-
|
|
93
|
-
|
|
128
|
+
// Read + verify the cookies. When a signingSecret is configured,
|
|
129
|
+
// we expect each cookie to be `<id>.<hmac>` and reject tampered
|
|
130
|
+
// values. Without a secret, we accept bare ids (legacy).
|
|
131
|
+
let visitorId = this.readSignedCookie(cookies[COOKIE_VISITOR], opts.signingSecret);
|
|
132
|
+
let sessionId = this.readSignedCookie(cookies[COOKIE_SESSION], opts.signingSecret);
|
|
94
133
|
let issuedVisitor = false;
|
|
95
134
|
let issuedSession = false;
|
|
96
135
|
if (!visitorId || !/^[a-f0-9]{16,64}$/i.test(visitorId)) {
|
|
@@ -120,10 +159,15 @@ let VisitorTrackingController = class VisitorTrackingController {
|
|
|
120
159
|
});
|
|
121
160
|
// Refresh cookies on every hit so the session window slides while
|
|
122
161
|
// the visitor is active.
|
|
123
|
-
|
|
162
|
+
// Set Secure when serving over HTTPS (Cloudflare forwards a hint).
|
|
163
|
+
const secureFlag = (req.headers['x-forwarded-proto'] === 'https' || ((_a = req.headers['cf-visitor']) === null || _a === void 0 ? void 0 : _a.includes('https')))
|
|
164
|
+
? '; Secure' : '';
|
|
165
|
+
const cookieOpts = (maxAgeSec) => `Path=/; Max-Age=${maxAgeSec}; SameSite=Lax${secureFlag}`;
|
|
166
|
+
const vidCookie = opts.signingSecret ? (0, vendure_licence_sdk_1.signValue)(visitorId, opts.signingSecret) : visitorId;
|
|
167
|
+
const sidCookie = opts.signingSecret ? (0, vendure_licence_sdk_1.signValue)(sessionId, opts.signingSecret) : sessionId;
|
|
124
168
|
res.setHeader('Set-Cookie', [
|
|
125
|
-
`${COOKIE_VISITOR}=${
|
|
126
|
-
`${COOKIE_SESSION}=${
|
|
169
|
+
`${COOKIE_VISITOR}=${vidCookie}; ${cookieOpts(VISITOR_TTL_DAYS * 86400)}`,
|
|
170
|
+
`${COOKIE_SESSION}=${sidCookie}; ${cookieOpts(SESSION_IDLE_MIN * 60)}`,
|
|
127
171
|
]);
|
|
128
172
|
return res.json({
|
|
129
173
|
stored: out.stored,
|
|
@@ -545,15 +589,31 @@ let VisitorTrackingController = class VisitorTrackingController {
|
|
|
545
589
|
// ------------------------------------------------------------------
|
|
546
590
|
applyCors(req, res) {
|
|
547
591
|
const origin = String(req.headers.origin || '');
|
|
548
|
-
|
|
549
|
-
//
|
|
550
|
-
//
|
|
551
|
-
|
|
592
|
+
const allowList = (0, plugin_1.getOptions)().corsAllowedOrigins || [];
|
|
593
|
+
// When an allowlist is configured we reflect only matching
|
|
594
|
+
// origins; otherwise we reflect any (legacy behaviour, looser).
|
|
595
|
+
let allow = origin || '*';
|
|
596
|
+
if (allowList.length) {
|
|
597
|
+
allow = allowList.includes(origin) ? origin : 'null';
|
|
598
|
+
}
|
|
599
|
+
res.setHeader('Access-Control-Allow-Origin', allow);
|
|
552
600
|
res.setHeader('Vary', 'Origin');
|
|
553
601
|
res.setHeader('Access-Control-Allow-Credentials', 'true');
|
|
554
602
|
res.setHeader('Access-Control-Allow-Methods', 'POST, OPTIONS');
|
|
555
603
|
res.setHeader('Access-Control-Allow-Headers', 'content-type');
|
|
556
604
|
}
|
|
605
|
+
/** Read a possibly-signed cookie. When `secret` is provided we
|
|
606
|
+
* require + verify the signature; otherwise we return the raw
|
|
607
|
+
* value. Returns empty string for missing / tampered values. */
|
|
608
|
+
readSignedCookie(raw, secret) {
|
|
609
|
+
const value = String(raw || '').slice(0, 256);
|
|
610
|
+
if (!value)
|
|
611
|
+
return '';
|
|
612
|
+
if (!secret)
|
|
613
|
+
return value;
|
|
614
|
+
const verified = (0, vendure_licence_sdk_1.verifySignedValue)(value, secret);
|
|
615
|
+
return verified || '';
|
|
616
|
+
}
|
|
557
617
|
parseCookies(req) {
|
|
558
618
|
const raw = req.headers.cookie || '';
|
|
559
619
|
const out = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitor-tracking.controller.js","sourceRoot":"","sources":["../src/visitor-tracking.controller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"visitor-tracking.controller.js","sourceRoot":"","sources":["../src/visitor-tracking.controller.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@huloglobal/vendure-plugin-visitor-analytics",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Full-funnel visitor analytics for Vendure storefronts \u2014 pageviews, time-on-page, session journey, exit pages, funnel drop-off, and per-visitor profile drawer with parsed user-agent + MaxMind GeoLite2 enrichment. Auto-issues visitor + session cookies on first request; logs guest and signed-in events against the same visitor id so the journey survives login.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": "Wayne Garrison <wayne@garrison.me.uk>",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"prepublishOnly": "yarn build"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@huloglobal/vendure-licence-sdk": "^0.
|
|
26
|
+
"@huloglobal/vendure-licence-sdk": "^0.3.0",
|
|
27
27
|
"ua-parser-js": "^1.0.37",
|
|
28
28
|
"geolite2-redist": "^3.1.0",
|
|
29
29
|
"@maxmind/geoip2-node": "^5.0.0"
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"typeorm": ">=0.3.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@huloglobal/vendure-licence-sdk": "^0.
|
|
37
|
+
"@huloglobal/vendure-licence-sdk": "^0.3.0",
|
|
38
38
|
"@nestjs/common": "^10.0.0",
|
|
39
39
|
"@vendure/core": "^3.6.0",
|
|
40
40
|
"typeorm": "^0.3.0",
|