@lidofinance/analytics-matomo 0.17.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +4 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +5 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -29,6 +29,7 @@ $parcel$export($ef5c629b17efc154$exports, "matomoAvailable", function () { retur
|
|
|
29
29
|
$parcel$export($ef5c629b17efc154$exports, "checkCookieAllowed", function () { return $ef5c629b17efc154$export$83c2c3def90d3b5a; });
|
|
30
30
|
$parcel$export($ef5c629b17efc154$exports, "callMatomo", function () { return $ef5c629b17efc154$export$cecaccc605742066; });
|
|
31
31
|
$parcel$export($ef5c629b17efc154$exports, "trackEvent", function () { return $ef5c629b17efc154$export$73d0a139caca1fee; });
|
|
32
|
+
$parcel$export($ef5c629b17efc154$exports, "trackVisibleContentImpressions", function () { return $ef5c629b17efc154$export$40aa6af9e848a6e0; });
|
|
32
33
|
$parcel$export($ef5c629b17efc154$exports, "getDomain", function () { return $ef5c629b17efc154$export$3e8733322718eb9; });
|
|
33
34
|
|
|
34
35
|
const $ef5c629b17efc154$export$69479293c4b47320 = "yes";
|
|
@@ -69,6 +70,9 @@ const $ef5c629b17efc154$export$cecaccc605742066 = (apiMethod, ...args)=>{
|
|
|
69
70
|
const $ef5c629b17efc154$export$73d0a139caca1fee = (...event)=>{
|
|
70
71
|
$ef5c629b17efc154$export$cecaccc605742066("trackEvent", ...event);
|
|
71
72
|
};
|
|
73
|
+
const $ef5c629b17efc154$export$40aa6af9e848a6e0 = (checkOnScroll = true, timeIntervalInMs = 750)=>{
|
|
74
|
+
$ef5c629b17efc154$export$cecaccc605742066("trackVisibleContentImpressions", checkOnScroll, timeIntervalInMs);
|
|
75
|
+
};
|
|
72
76
|
const $ef5c629b17efc154$export$3e8733322718eb9 = ()=>{
|
|
73
77
|
return location.hostname.split(".").slice(-2).join(".");
|
|
74
78
|
};
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"
|
|
1
|
+
{"mappings":"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","sources":["packages/analytics/matomo/src/index.ts","packages/analytics/matomo/src/init.ts","packages/analytics/matomo/src/utils.ts","packages/analytics/matomo/src/type.ts","packages/analytics/matomo/src/decoratorts.ts"],"sourcesContent":["import { initMatomo } from './init'\n\nexport * from './type'\nexport * from './decoratorts'\nexport * from './utils'\nexport * from './init'\n\n// Run after import\ninitMatomo()\n","import { getDomain, checkCookieAllowed } from './utils'\n\ndeclare global {\n interface Window {\n _paq?: undefined | [string, ...unknown[]][]\n __env__: { matomoHost: string } & Record<string | number | symbol, unknown>\n }\n}\n\n// Need if we tried to init matomo manually without cookie,\n// and use it after accepting the cookie policy\nlet futureInitMatomoHost: string | undefined = undefined\n\nconst injectMatomoScript = (matomoHost: string) => {\n document.documentElement.appendChild(\n Object.assign(document.createElement('script'), {\n async: true,\n src: new URL('/matomo.js', matomoHost).href,\n }),\n )\n}\n\nexport const initMatomo = (matomoHost?: string): void => {\n if (typeof window === 'undefined') {\n // SSR not supported!\n return\n }\n\n if (!checkCookieAllowed()) {\n if (matomoHost) {\n futureInitMatomoHost = matomoHost\n }\n return\n }\n\n const _matomoHost = futureInitMatomoHost || matomoHost || window?.__env__?.matomoHost || undefined\n\n if (!_matomoHost) {\n // Where Do I send analytics?\n return\n }\n\n if (window._paq) {\n // window._paq has been initialized\n return\n }\n\n window._paq ??= []\n\n window?._paq?.push(\n ['requireCookieConsent'],\n ['trackPageView'],\n ['enableLinkTracking'],\n ['setTrackerUrl', new URL('/matomo.php', _matomoHost).href],\n ['setSiteId', '1'],\n ['setDomains', [`*.${getDomain()}`]],\n ['enableCrossDomainLinking'],\n )\n\n injectMatomoScript(_matomoHost)\n}\n","import { MatomoEventType } from './type'\nimport { initMatomo } from './init'\n\nexport const COOKIE_ALLOWED_VALUE_YES = 'yes'\nexport const COOKIE_ALLOWED_MAIN_KEY = 'cookie-allowed'\n\nexport const COOKIE_ALLOWED_KEYS = [\n 'LIDO_WIDGET__COOKIES_ALLOWED', // will be deprecated soon\n COOKIE_ALLOWED_MAIN_KEY,\n]\n\nexport const matomoAvailable = (): boolean => {\n return typeof window !== 'undefined' && window._paq !== undefined\n}\n\nconst getCrossDomainCookieClientSide = (key: string): string | null => {\n const defaultValue = null\n\n if (typeof window === 'undefined') {\n return defaultValue\n }\n\n const cookieMatcher = new RegExp(`(^| )${key}=([^;]+)`)\n return (document.cookie.match(cookieMatcher)?.[2] as string) ?? defaultValue\n}\n\nexport const checkCookieAllowed = (): boolean => {\n if (typeof window === 'undefined') {\n return false\n }\n\n for (const key of COOKIE_ALLOWED_KEYS) {\n const cookieValue = getCrossDomainCookieClientSide(key)\n const cookieAllowed = !!(cookieValue && cookieValue === COOKIE_ALLOWED_VALUE_YES)\n\n if (cookieAllowed) {\n return cookieAllowed\n }\n }\n\n return false\n}\n\nexport const callMatomo = (apiMethod: string, ...args: unknown[]): void => {\n if (!matomoAvailable()) {\n initMatomo()\n }\n\n if (typeof window === 'undefined' || !checkCookieAllowed()) {\n return\n }\n\n window?._paq?.push([apiMethod, ...args])\n}\n\nexport const trackEvent = (...event: MatomoEventType): void => {\n callMatomo('trackEvent', ...event)\n}\n\nexport const trackVisibleContentImpressions = (checkOnScroll = true, timeIntervalInMs = 750): void => {\n callMatomo('trackVisibleContentImpressions', checkOnScroll, timeIntervalInMs)\n}\n\nexport const getDomain = () => {\n return location.hostname.split('.').slice(-2).join('.')\n}\n","export type MatomoEventType = [category: string, action: string, name: string]\n","import { MatomoEventType } from './type'\nimport { callMatomo } from './utils'\n\nexport const wrapWithEventTrack = <A extends unknown[], R>(event: MatomoEventType | void, fn: (...args: A) => R) =>\n event\n ? (...args: A): R => {\n callMatomo('trackEvent', ...event)\n return fn?.(...args)\n }\n : fn\n"],"names":[],"version":3,"file":"index.cjs.map"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export const matomoAvailable: () => boolean;
|
|
|
6
6
|
export const checkCookieAllowed: () => boolean;
|
|
7
7
|
export const callMatomo: (apiMethod: string, ...args: unknown[]) => void;
|
|
8
8
|
export const trackEvent: (category: string, action: string, name: string) => void;
|
|
9
|
+
export const trackVisibleContentImpressions: (checkOnScroll?: boolean, timeIntervalInMs?: number) => void;
|
|
9
10
|
export const getDomain: () => string;
|
|
10
11
|
declare global {
|
|
11
12
|
interface Window {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAAA,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;ACG9E,OAAO,MAAM,gCAAgC,CAAA;AAC7C,OAAO,MAAM,0CAA0C,CAAA;AAEvD,OAAO,MAAM,6BAGZ,CAAA;AAED,OAAO,MAAM,uBAAsB,OAElC,CAAA;AAaD,OAAO,MAAM,0BAAyB,OAerC,CAAA;AAED,OAAO,MAAM,wBAAyB,MAAM,WAAW,OAAO,EAAE,KAAG,IAUlE,CAAA;AAED,OAAO,MAAM,gEAA0C,IAEtD,CAAA;AAED,OAAO,MAAM,uBAEZ,CAAA;
|
|
1
|
+
{"mappings":"AAAA,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;ACG9E,OAAO,MAAM,gCAAgC,CAAA;AAC7C,OAAO,MAAM,0CAA0C,CAAA;AAEvD,OAAO,MAAM,6BAGZ,CAAA;AAED,OAAO,MAAM,uBAAsB,OAElC,CAAA;AAaD,OAAO,MAAM,0BAAyB,OAerC,CAAA;AAED,OAAO,MAAM,wBAAyB,MAAM,WAAW,OAAO,EAAE,KAAG,IAUlE,CAAA;AAED,OAAO,MAAM,gEAA0C,IAEtD,CAAA;AAED,OAAO,MAAM,wFAAiF,IAE7F,CAAA;AAED,OAAO,MAAM,uBAEZ,CAAA;AC/DD,QAAQ,MAAM,CAAC;IACb,UAAU,MAAM;QACd,IAAI,CAAC,EAAE,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,CAAA;QAC3C,OAAO,EAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,CAAA;KAC5E;CACF;AAeD,OAAO,MAAM,0BAA2B,MAAM,KAAG,IAsChD,CAAA;ACzDD,OAAO,MAAM,oDAAqD,eAAe,GAAG,IAAI,6CAMhF,CAAA","sources":["packages/analytics/matomo/src/src/type.ts","packages/analytics/matomo/src/src/utils.ts","packages/analytics/matomo/src/src/init.ts","packages/analytics/matomo/src/src/decoratorts.ts","packages/analytics/matomo/src/src/index.ts","packages/analytics/matomo/src/index.ts"],"sourcesContent":[null,null,null,null,null,"import { initMatomo } from './init'\n\nexport * from './type'\nexport * from './decoratorts'\nexport * from './utils'\nexport * from './init'\n\n// Run after import\ninitMatomo()\n"],"names":[],"version":3,"file":"index.d.ts.map"}
|
package/dist/index.mjs
CHANGED
|
@@ -13,6 +13,7 @@ $parcel$export($427566b8f1d3367d$exports, "matomoAvailable", function () { retur
|
|
|
13
13
|
$parcel$export($427566b8f1d3367d$exports, "checkCookieAllowed", function () { return $427566b8f1d3367d$export$83c2c3def90d3b5a; });
|
|
14
14
|
$parcel$export($427566b8f1d3367d$exports, "callMatomo", function () { return $427566b8f1d3367d$export$cecaccc605742066; });
|
|
15
15
|
$parcel$export($427566b8f1d3367d$exports, "trackEvent", function () { return $427566b8f1d3367d$export$73d0a139caca1fee; });
|
|
16
|
+
$parcel$export($427566b8f1d3367d$exports, "trackVisibleContentImpressions", function () { return $427566b8f1d3367d$export$40aa6af9e848a6e0; });
|
|
16
17
|
$parcel$export($427566b8f1d3367d$exports, "getDomain", function () { return $427566b8f1d3367d$export$3e8733322718eb9; });
|
|
17
18
|
|
|
18
19
|
const $427566b8f1d3367d$export$69479293c4b47320 = "yes";
|
|
@@ -53,6 +54,9 @@ const $427566b8f1d3367d$export$cecaccc605742066 = (apiMethod, ...args)=>{
|
|
|
53
54
|
const $427566b8f1d3367d$export$73d0a139caca1fee = (...event)=>{
|
|
54
55
|
$427566b8f1d3367d$export$cecaccc605742066("trackEvent", ...event);
|
|
55
56
|
};
|
|
57
|
+
const $427566b8f1d3367d$export$40aa6af9e848a6e0 = (checkOnScroll = true, timeIntervalInMs = 750)=>{
|
|
58
|
+
$427566b8f1d3367d$export$cecaccc605742066("trackVisibleContentImpressions", checkOnScroll, timeIntervalInMs);
|
|
59
|
+
};
|
|
56
60
|
const $427566b8f1d3367d$export$3e8733322718eb9 = ()=>{
|
|
57
61
|
return location.hostname.split(".").slice(-2).join(".");
|
|
58
62
|
};
|
|
@@ -128,5 +132,5 @@ const $dfa3db2a6cffa71c$export$e8f57ad64147d191 = (event, fn)=>{
|
|
|
128
132
|
(0, $76adf94c93f4a7f4$export$6ec25100f86fa29d)();
|
|
129
133
|
|
|
130
134
|
|
|
131
|
-
export {$76adf94c93f4a7f4$export$6ec25100f86fa29d as initMatomo, $dfa3db2a6cffa71c$export$e8f57ad64147d191 as wrapWithEventTrack, $427566b8f1d3367d$export$69479293c4b47320 as COOKIE_ALLOWED_VALUE_YES, $427566b8f1d3367d$export$ed61d9b9718a39c9 as COOKIE_ALLOWED_MAIN_KEY, $427566b8f1d3367d$export$7567476bb64c3721 as COOKIE_ALLOWED_KEYS, $427566b8f1d3367d$export$e5ed1c22a80aba4b as matomoAvailable, $427566b8f1d3367d$export$83c2c3def90d3b5a as checkCookieAllowed, $427566b8f1d3367d$export$cecaccc605742066 as callMatomo, $427566b8f1d3367d$export$73d0a139caca1fee as trackEvent, $427566b8f1d3367d$export$3e8733322718eb9 as getDomain};
|
|
135
|
+
export {$76adf94c93f4a7f4$export$6ec25100f86fa29d as initMatomo, $dfa3db2a6cffa71c$export$e8f57ad64147d191 as wrapWithEventTrack, $427566b8f1d3367d$export$69479293c4b47320 as COOKIE_ALLOWED_VALUE_YES, $427566b8f1d3367d$export$ed61d9b9718a39c9 as COOKIE_ALLOWED_MAIN_KEY, $427566b8f1d3367d$export$7567476bb64c3721 as COOKIE_ALLOWED_KEYS, $427566b8f1d3367d$export$e5ed1c22a80aba4b as matomoAvailable, $427566b8f1d3367d$export$83c2c3def90d3b5a as checkCookieAllowed, $427566b8f1d3367d$export$cecaccc605742066 as callMatomo, $427566b8f1d3367d$export$73d0a139caca1fee as trackEvent, $427566b8f1d3367d$export$40aa6af9e848a6e0 as trackVisibleContentImpressions, $427566b8f1d3367d$export$3e8733322718eb9 as getDomain};
|
|
132
136
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"
|
|
1
|
+
{"mappings":"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","sources":["packages/analytics/matomo/src/index.ts","packages/analytics/matomo/src/init.ts","packages/analytics/matomo/src/utils.ts","packages/analytics/matomo/src/type.ts","packages/analytics/matomo/src/decoratorts.ts"],"sourcesContent":["import { initMatomo } from './init'\n\nexport * from './type'\nexport * from './decoratorts'\nexport * from './utils'\nexport * from './init'\n\n// Run after import\ninitMatomo()\n","import { getDomain, checkCookieAllowed } from './utils'\n\ndeclare global {\n interface Window {\n _paq?: undefined | [string, ...unknown[]][]\n __env__: { matomoHost: string } & Record<string | number | symbol, unknown>\n }\n}\n\n// Need if we tried to init matomo manually without cookie,\n// and use it after accepting the cookie policy\nlet futureInitMatomoHost: string | undefined = undefined\n\nconst injectMatomoScript = (matomoHost: string) => {\n document.documentElement.appendChild(\n Object.assign(document.createElement('script'), {\n async: true,\n src: new URL('/matomo.js', matomoHost).href,\n }),\n )\n}\n\nexport const initMatomo = (matomoHost?: string): void => {\n if (typeof window === 'undefined') {\n // SSR not supported!\n return\n }\n\n if (!checkCookieAllowed()) {\n if (matomoHost) {\n futureInitMatomoHost = matomoHost\n }\n return\n }\n\n const _matomoHost = futureInitMatomoHost || matomoHost || window?.__env__?.matomoHost || undefined\n\n if (!_matomoHost) {\n // Where Do I send analytics?\n return\n }\n\n if (window._paq) {\n // window._paq has been initialized\n return\n }\n\n window._paq ??= []\n\n window?._paq?.push(\n ['requireCookieConsent'],\n ['trackPageView'],\n ['enableLinkTracking'],\n ['setTrackerUrl', new URL('/matomo.php', _matomoHost).href],\n ['setSiteId', '1'],\n ['setDomains', [`*.${getDomain()}`]],\n ['enableCrossDomainLinking'],\n )\n\n injectMatomoScript(_matomoHost)\n}\n","import { MatomoEventType } from './type'\nimport { initMatomo } from './init'\n\nexport const COOKIE_ALLOWED_VALUE_YES = 'yes'\nexport const COOKIE_ALLOWED_MAIN_KEY = 'cookie-allowed'\n\nexport const COOKIE_ALLOWED_KEYS = [\n 'LIDO_WIDGET__COOKIES_ALLOWED', // will be deprecated soon\n COOKIE_ALLOWED_MAIN_KEY,\n]\n\nexport const matomoAvailable = (): boolean => {\n return typeof window !== 'undefined' && window._paq !== undefined\n}\n\nconst getCrossDomainCookieClientSide = (key: string): string | null => {\n const defaultValue = null\n\n if (typeof window === 'undefined') {\n return defaultValue\n }\n\n const cookieMatcher = new RegExp(`(^| )${key}=([^;]+)`)\n return (document.cookie.match(cookieMatcher)?.[2] as string) ?? defaultValue\n}\n\nexport const checkCookieAllowed = (): boolean => {\n if (typeof window === 'undefined') {\n return false\n }\n\n for (const key of COOKIE_ALLOWED_KEYS) {\n const cookieValue = getCrossDomainCookieClientSide(key)\n const cookieAllowed = !!(cookieValue && cookieValue === COOKIE_ALLOWED_VALUE_YES)\n\n if (cookieAllowed) {\n return cookieAllowed\n }\n }\n\n return false\n}\n\nexport const callMatomo = (apiMethod: string, ...args: unknown[]): void => {\n if (!matomoAvailable()) {\n initMatomo()\n }\n\n if (typeof window === 'undefined' || !checkCookieAllowed()) {\n return\n }\n\n window?._paq?.push([apiMethod, ...args])\n}\n\nexport const trackEvent = (...event: MatomoEventType): void => {\n callMatomo('trackEvent', ...event)\n}\n\nexport const trackVisibleContentImpressions = (checkOnScroll = true, timeIntervalInMs = 750): void => {\n callMatomo('trackVisibleContentImpressions', checkOnScroll, timeIntervalInMs)\n}\n\nexport const getDomain = () => {\n return location.hostname.split('.').slice(-2).join('.')\n}\n","export type MatomoEventType = [category: string, action: string, name: string]\n","import { MatomoEventType } from './type'\nimport { callMatomo } from './utils'\n\nexport const wrapWithEventTrack = <A extends unknown[], R>(event: MatomoEventType | void, fn: (...args: A) => R) =>\n event\n ? (...args: A): R => {\n callMatomo('trackEvent', ...event)\n return fn?.(...args)\n }\n : fn\n"],"names":[],"version":3,"file":"index.mjs.map"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Matomo analytics",
|
|
4
4
|
"repository": "git@github.com:lidofinance/warehouse.git",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.19.0",
|
|
7
7
|
"files": [
|
|
8
8
|
"dist"
|
|
9
9
|
],
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@lidofinance/config-prettier": "~0.
|
|
27
|
+
"@lidofinance/config-prettier": "~0.19.0",
|
|
28
28
|
"@types/jest": "^29.2.4",
|
|
29
29
|
"jest": "^29.3.1",
|
|
30
30
|
"ts-jest": "^29.0.3",
|