@shware/analytics 0.1.11 → 0.1.14
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/dist/next/index.cjs +13 -0
- package/dist/next/index.cjs.map +1 -1
- package/dist/next/index.mjs +13 -0
- package/dist/next/index.mjs.map +1 -1
- package/dist/react-router/index.cjs +23 -0
- package/dist/react-router/index.cjs.map +1 -1
- package/dist/react-router/index.mjs +23 -0
- package/dist/react-router/index.mjs.map +1 -1
- package/package.json +17 -11
package/dist/next/index.cjs
CHANGED
|
@@ -25,6 +25,7 @@ __export(next_exports, {
|
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(next_exports);
|
|
27
27
|
var import_navigation = require("next/navigation");
|
|
28
|
+
var import_web_vitals = require("next/web-vitals");
|
|
28
29
|
var import_react = require("react");
|
|
29
30
|
var import__ = require("../index.cjs");
|
|
30
31
|
function Analytics() {
|
|
@@ -44,6 +45,18 @@ function Analytics() {
|
|
|
44
45
|
};
|
|
45
46
|
(0, import__.track)("page_view", properties, { enableThirdPartyTracking: false });
|
|
46
47
|
}, [pathname, params]);
|
|
48
|
+
(0, import_web_vitals.useReportWebVitals)((metric) => {
|
|
49
|
+
const properties = {
|
|
50
|
+
id: metric.id,
|
|
51
|
+
rating: metric.rating,
|
|
52
|
+
value: metric.value,
|
|
53
|
+
delta: metric.delta,
|
|
54
|
+
navigation_type: metric.navigationType,
|
|
55
|
+
non_interaction: true
|
|
56
|
+
// avoids affecting bounce rate.
|
|
57
|
+
};
|
|
58
|
+
(0, import__.track)(metric.name, properties);
|
|
59
|
+
});
|
|
47
60
|
return null;
|
|
48
61
|
}
|
|
49
62
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/next/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname, useSearchParams } from 'next/navigation';\nimport { useEffect } from 'react';\nimport { track } from '../index';\n\nexport function Analytics() {\n const pathname = usePathname();\n const params = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,wBAA6C;AAC7C,mBAA0B;AAC1B,eAAsB;AAEf,SAAS,YAAY;AAC1B,QAAM,eAAW,+BAAY;AAC7B,QAAM,aAAS,mCAAgB;AAE/B,8BAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,wBAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,SAAO;AACT;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname, useSearchParams } from 'next/navigation';\nimport { useReportWebVitals } from 'next/web-vitals';\nimport { useEffect } from 'react';\nimport { track } from '../index';\n\nexport function Analytics() {\n const pathname = usePathname();\n const params = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n useReportWebVitals((metric) => {\n const properties = {\n id: metric.id,\n rating: metric.rating,\n value: metric.value,\n delta: metric.delta,\n navigation_type: metric.navigationType,\n non_interaction: true, // avoids affecting bounce rate.\n };\n track(metric.name as Lowercase<string>, properties);\n });\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,wBAA6C;AAC7C,wBAAmC;AACnC,mBAA0B;AAC1B,eAAsB;AAEf,SAAS,YAAY;AAC1B,QAAM,eAAW,+BAAY;AAC7B,QAAM,aAAS,mCAAgB;AAE/B,8BAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,wBAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,4CAAmB,CAAC,WAAW;AAC7B,UAAM,aAAa;AAAA,MACjB,IAAI,OAAO;AAAA,MACX,QAAQ,OAAO;AAAA,MACf,OAAO,OAAO;AAAA,MACd,OAAO,OAAO;AAAA,MACd,iBAAiB,OAAO;AAAA,MACxB,iBAAiB;AAAA;AAAA,IACnB;AACA,wBAAM,OAAO,MAA2B,UAAU;AAAA,EACpD,CAAC;AAED,SAAO;AACT;","names":[]}
|
package/dist/next/index.mjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
// src/next/index.tsx
|
|
4
4
|
import { usePathname, useSearchParams } from "next/navigation";
|
|
5
|
+
import { useReportWebVitals } from "next/web-vitals";
|
|
5
6
|
import { useEffect } from "react";
|
|
6
7
|
import { track } from "../index.mjs";
|
|
7
8
|
function Analytics() {
|
|
@@ -21,6 +22,18 @@ function Analytics() {
|
|
|
21
22
|
};
|
|
22
23
|
track("page_view", properties, { enableThirdPartyTracking: false });
|
|
23
24
|
}, [pathname, params]);
|
|
25
|
+
useReportWebVitals((metric) => {
|
|
26
|
+
const properties = {
|
|
27
|
+
id: metric.id,
|
|
28
|
+
rating: metric.rating,
|
|
29
|
+
value: metric.value,
|
|
30
|
+
delta: metric.delta,
|
|
31
|
+
navigation_type: metric.navigationType,
|
|
32
|
+
non_interaction: true
|
|
33
|
+
// avoids affecting bounce rate.
|
|
34
|
+
};
|
|
35
|
+
track(metric.name, properties);
|
|
36
|
+
});
|
|
24
37
|
return null;
|
|
25
38
|
}
|
|
26
39
|
export {
|
package/dist/next/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname, useSearchParams } from 'next/navigation';\nimport { useEffect } from 'react';\nimport { track } from '../index';\n\nexport function Analytics() {\n const pathname = usePathname();\n const params = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n return null;\n}\n"],"mappings":";;;AAEA,SAAS,aAAa,uBAAuB;AAC7C,SAAS,iBAAiB;AAC1B,SAAS,aAAa;AAEf,SAAS,YAAY;AAC1B,QAAM,WAAW,YAAY;AAC7B,QAAM,SAAS,gBAAgB;AAE/B,YAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,UAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,SAAO;AACT;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname, useSearchParams } from 'next/navigation';\nimport { useReportWebVitals } from 'next/web-vitals';\nimport { useEffect } from 'react';\nimport { track } from '../index';\n\nexport function Analytics() {\n const pathname = usePathname();\n const params = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n useReportWebVitals((metric) => {\n const properties = {\n id: metric.id,\n rating: metric.rating,\n value: metric.value,\n delta: metric.delta,\n navigation_type: metric.navigationType,\n non_interaction: true, // avoids affecting bounce rate.\n };\n track(metric.name as Lowercase<string>, properties);\n });\n\n return null;\n}\n"],"mappings":";;;AAEA,SAAS,aAAa,uBAAuB;AAC7C,SAAS,0BAA0B;AACnC,SAAS,iBAAiB;AAC1B,SAAS,aAAa;AAEf,SAAS,YAAY;AAC1B,QAAM,WAAW,YAAY;AAC7B,QAAM,SAAS,gBAAgB;AAE/B,YAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,UAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,qBAAmB,CAAC,WAAW;AAC7B,UAAM,aAAa;AAAA,MACjB,IAAI,OAAO;AAAA,MACX,QAAQ,OAAO;AAAA,MACf,OAAO,OAAO;AAAA,MACd,OAAO,OAAO;AAAA,MACd,iBAAiB,OAAO;AAAA,MACxB,iBAAiB;AAAA;AAAA,IACnB;AACA,UAAM,OAAO,MAA2B,UAAU;AAAA,EACpD,CAAC;AAED,SAAO;AACT;","names":[]}
|
|
@@ -25,7 +25,18 @@ __export(react_router_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(react_router_exports);
|
|
26
26
|
var import_react = require("react");
|
|
27
27
|
var import_react_router = require("react-router");
|
|
28
|
+
var import_web_vitals = require("web-vitals");
|
|
28
29
|
var import__ = require("../index.cjs");
|
|
30
|
+
function useReportWebVitals(reportWebVitalsFn) {
|
|
31
|
+
(0, import_react.useEffect)(() => {
|
|
32
|
+
(0, import_web_vitals.onCLS)(reportWebVitalsFn);
|
|
33
|
+
(0, import_web_vitals.onFID)(reportWebVitalsFn);
|
|
34
|
+
(0, import_web_vitals.onLCP)(reportWebVitalsFn);
|
|
35
|
+
(0, import_web_vitals.onINP)(reportWebVitalsFn);
|
|
36
|
+
(0, import_web_vitals.onFCP)(reportWebVitalsFn);
|
|
37
|
+
(0, import_web_vitals.onTTFB)(reportWebVitalsFn);
|
|
38
|
+
}, [reportWebVitalsFn]);
|
|
39
|
+
}
|
|
29
40
|
function Analytics() {
|
|
30
41
|
const { pathname } = (0, import_react_router.useLocation)();
|
|
31
42
|
const [params] = (0, import_react_router.useSearchParams)();
|
|
@@ -43,6 +54,18 @@ function Analytics() {
|
|
|
43
54
|
};
|
|
44
55
|
(0, import__.track)("page_view", properties, { enableThirdPartyTracking: false });
|
|
45
56
|
}, [pathname, params]);
|
|
57
|
+
useReportWebVitals((metric) => {
|
|
58
|
+
const properties = {
|
|
59
|
+
id: metric.id,
|
|
60
|
+
rating: metric.rating,
|
|
61
|
+
value: metric.value,
|
|
62
|
+
delta: metric.delta,
|
|
63
|
+
navigation_type: metric.navigationType,
|
|
64
|
+
non_interaction: true
|
|
65
|
+
// avoids affecting bounce rate.
|
|
66
|
+
};
|
|
67
|
+
(0, import__.track)(metric.name, properties);
|
|
68
|
+
});
|
|
46
69
|
return null;
|
|
47
70
|
}
|
|
48
71
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useSearchParams } from 'react-router';\nimport { track } from '../index';\n\nexport function Analytics() {\n const { pathname } = useLocation();\n const [params] = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAC1B,0BAA6C;AAC7C,eAAsB;
|
|
1
|
+
{"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useSearchParams } from 'react-router';\nimport { onLCP, onFID, onCLS, onINP, onFCP, onTTFB, type Metric } from 'web-vitals';\nimport { track } from '../index';\n\nfunction useReportWebVitals(reportWebVitalsFn: (metric: Metric) => void) {\n useEffect(() => {\n onCLS(reportWebVitalsFn);\n onFID(reportWebVitalsFn);\n onLCP(reportWebVitalsFn);\n onINP(reportWebVitalsFn);\n onFCP(reportWebVitalsFn);\n onTTFB(reportWebVitalsFn);\n }, [reportWebVitalsFn]);\n}\n\nexport function Analytics() {\n const { pathname } = useLocation();\n const [params] = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n useReportWebVitals((metric) => {\n const properties = {\n id: metric.id,\n rating: metric.rating,\n value: metric.value,\n delta: metric.delta,\n navigation_type: metric.navigationType,\n non_interaction: true, // avoids affecting bounce rate.\n };\n track(metric.name as Lowercase<string>, properties);\n });\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAC1B,0BAA6C;AAC7C,wBAAuE;AACvE,eAAsB;AAEtB,SAAS,mBAAmB,mBAA6C;AACvE,8BAAU,MAAM;AACd,iCAAM,iBAAiB;AACvB,iCAAM,iBAAiB;AACvB,iCAAM,iBAAiB;AACvB,iCAAM,iBAAiB;AACvB,iCAAM,iBAAiB;AACvB,kCAAO,iBAAiB;AAAA,EAC1B,GAAG,CAAC,iBAAiB,CAAC;AACxB;AAEO,SAAS,YAAY;AAC1B,QAAM,EAAE,SAAS,QAAI,iCAAY;AACjC,QAAM,CAAC,MAAM,QAAI,qCAAgB;AAEjC,8BAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,wBAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,qBAAmB,CAAC,WAAW;AAC7B,UAAM,aAAa;AAAA,MACjB,IAAI,OAAO;AAAA,MACX,QAAQ,OAAO;AAAA,MACf,OAAO,OAAO;AAAA,MACd,OAAO,OAAO;AAAA,MACd,iBAAiB,OAAO;AAAA,MACxB,iBAAiB;AAAA;AAAA,IACnB;AACA,wBAAM,OAAO,MAA2B,UAAU;AAAA,EACpD,CAAC;AAED,SAAO;AACT;","names":[]}
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
// src/react-router/index.tsx
|
|
2
2
|
import { useEffect } from "react";
|
|
3
3
|
import { useLocation, useSearchParams } from "react-router";
|
|
4
|
+
import { onLCP, onFID, onCLS, onINP, onFCP, onTTFB } from "web-vitals";
|
|
4
5
|
import { track } from "../index.mjs";
|
|
6
|
+
function useReportWebVitals(reportWebVitalsFn) {
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
onCLS(reportWebVitalsFn);
|
|
9
|
+
onFID(reportWebVitalsFn);
|
|
10
|
+
onLCP(reportWebVitalsFn);
|
|
11
|
+
onINP(reportWebVitalsFn);
|
|
12
|
+
onFCP(reportWebVitalsFn);
|
|
13
|
+
onTTFB(reportWebVitalsFn);
|
|
14
|
+
}, [reportWebVitalsFn]);
|
|
15
|
+
}
|
|
5
16
|
function Analytics() {
|
|
6
17
|
const { pathname } = useLocation();
|
|
7
18
|
const [params] = useSearchParams();
|
|
@@ -19,6 +30,18 @@ function Analytics() {
|
|
|
19
30
|
};
|
|
20
31
|
track("page_view", properties, { enableThirdPartyTracking: false });
|
|
21
32
|
}, [pathname, params]);
|
|
33
|
+
useReportWebVitals((metric) => {
|
|
34
|
+
const properties = {
|
|
35
|
+
id: metric.id,
|
|
36
|
+
rating: metric.rating,
|
|
37
|
+
value: metric.value,
|
|
38
|
+
delta: metric.delta,
|
|
39
|
+
navigation_type: metric.navigationType,
|
|
40
|
+
non_interaction: true
|
|
41
|
+
// avoids affecting bounce rate.
|
|
42
|
+
};
|
|
43
|
+
track(metric.name, properties);
|
|
44
|
+
});
|
|
22
45
|
return null;
|
|
23
46
|
}
|
|
24
47
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useSearchParams } from 'react-router';\nimport { track } from '../index';\n\nexport function Analytics() {\n const { pathname } = useLocation();\n const [params] = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n return null;\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,SAAS,aAAa,uBAAuB;AAC7C,SAAS,aAAa;
|
|
1
|
+
{"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useSearchParams } from 'react-router';\nimport { onLCP, onFID, onCLS, onINP, onFCP, onTTFB, type Metric } from 'web-vitals';\nimport { track } from '../index';\n\nfunction useReportWebVitals(reportWebVitalsFn: (metric: Metric) => void) {\n useEffect(() => {\n onCLS(reportWebVitalsFn);\n onFID(reportWebVitalsFn);\n onLCP(reportWebVitalsFn);\n onINP(reportWebVitalsFn);\n onFCP(reportWebVitalsFn);\n onTTFB(reportWebVitalsFn);\n }, [reportWebVitalsFn]);\n}\n\nexport function Analytics() {\n const { pathname } = useLocation();\n const [params] = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n useReportWebVitals((metric) => {\n const properties = {\n id: metric.id,\n rating: metric.rating,\n value: metric.value,\n delta: metric.delta,\n navigation_type: metric.navigationType,\n non_interaction: true, // avoids affecting bounce rate.\n };\n track(metric.name as Lowercase<string>, properties);\n });\n\n return null;\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,SAAS,aAAa,uBAAuB;AAC7C,SAAS,OAAO,OAAO,OAAO,OAAO,OAAO,cAA2B;AACvE,SAAS,aAAa;AAEtB,SAAS,mBAAmB,mBAA6C;AACvE,YAAU,MAAM;AACd,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,WAAO,iBAAiB;AAAA,EAC1B,GAAG,CAAC,iBAAiB,CAAC;AACxB;AAEO,SAAS,YAAY;AAC1B,QAAM,EAAE,SAAS,IAAI,YAAY;AACjC,QAAM,CAAC,MAAM,IAAI,gBAAgB;AAEjC,YAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,UAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,qBAAmB,CAAC,WAAW;AAC7B,UAAM,aAAa;AAAA,MACjB,IAAI,OAAO;AAAA,MACX,QAAQ,OAAO;AAAA,MACf,OAAO,OAAO;AAAA,MACd,OAAO,OAAO;AAAA,MACd,iBAAiB,OAAO;AAAA,MACxB,iBAAiB;AAAA;AAAA,IACnB;AACA,UAAM,OAAO,MAA2B,UAAU;AAAA,EACpD,CAAC;AAED,SAAO;AACT;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shware/analytics",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "tsc --watch",
|
|
@@ -10,24 +10,29 @@
|
|
|
10
10
|
},
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
|
-
"types": "./dist/index.d.
|
|
14
|
-
"import": "./dist/index.mjs"
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.mjs",
|
|
15
|
+
"require": "./dist/index.cjs"
|
|
15
16
|
},
|
|
16
17
|
"./web": {
|
|
17
|
-
"types": "./dist/web/index.d.
|
|
18
|
-
"import": "./dist/web/index.mjs"
|
|
18
|
+
"types": "./dist/web/index.d.ts",
|
|
19
|
+
"import": "./dist/web/index.mjs",
|
|
20
|
+
"require": "./dist/web/index.cjs"
|
|
19
21
|
},
|
|
20
22
|
"./next": {
|
|
21
|
-
"types": "./dist/next/index.d.
|
|
22
|
-
"import": "./dist/next/index.mjs"
|
|
23
|
+
"types": "./dist/next/index.d.ts",
|
|
24
|
+
"import": "./dist/next/index.mjs",
|
|
25
|
+
"require": "./dist/next/index.cjs"
|
|
23
26
|
},
|
|
24
27
|
"./react": {
|
|
25
|
-
"types": "./dist/react/index.d.
|
|
26
|
-
"import": "./dist/react/index.mjs"
|
|
28
|
+
"types": "./dist/react/index.d.ts",
|
|
29
|
+
"import": "./dist/react/index.mjs",
|
|
30
|
+
"require": "./dist/react/index.cjs"
|
|
27
31
|
},
|
|
28
32
|
"./react-router": {
|
|
29
|
-
"types": "./dist/react-router/index.d.
|
|
30
|
-
"import": "./dist/react-router/index.mjs"
|
|
33
|
+
"types": "./dist/react-router/index.d.ts",
|
|
34
|
+
"import": "./dist/react-router/index.mjs",
|
|
35
|
+
"require": "./dist/react-router/index.cjs"
|
|
31
36
|
}
|
|
32
37
|
},
|
|
33
38
|
"files": [
|
|
@@ -40,6 +45,7 @@
|
|
|
40
45
|
"cookie": "^1.0.2",
|
|
41
46
|
"limiter": "^3.0.0",
|
|
42
47
|
"uuid": "^11.1.0",
|
|
48
|
+
"web-vitals": "^4.2.4",
|
|
43
49
|
"zod": "^3.24.2"
|
|
44
50
|
},
|
|
45
51
|
"devDependencies": {
|