stone-analytics 0.0.1 → 0.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/dist/index.d.ts CHANGED
@@ -1,5 +1,23 @@
1
- declare const makeTimeBasedUID: () => string;
2
1
  declare const setSessionId: () => void;
3
2
  declare const setClientId: () => void;
4
3
 
5
- export { makeTimeBasedUID, setClientId, setSessionId };
4
+ type TAnalyticsData = {
5
+ event: string;
6
+ name: string;
7
+ params?: TAnalyticsVisitParams;
8
+ };
9
+ type TAnalyticsVisitParams = {
10
+ abTestGroup?: string;
11
+ st_event_id?: string;
12
+ st_client_id?: string;
13
+ st_session_id?: string;
14
+ ym_client_id?: string;
15
+ ga_client_id?: string;
16
+ project?: string;
17
+ scroll_percent?: string;
18
+ lot_id?: string | number;
19
+ };
20
+
21
+ declare const sendAnalytics: (data: TAnalyticsData) => void;
22
+
23
+ export { sendAnalytics, setClientId, setSessionId };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var n in e)s(t,n,{get:e[n],enumerable:!0})},x=(t,e,n,d)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of m(e))!c.call(t,o)&&o!==n&&s(t,o,{get:()=>e[o],enumerable:!(d=a(e,o))||d.enumerable});return t};var I=t=>x(s({},"__esModule",{value:!0}),t);var g={};p(g,{makeTimeBasedUID:()=>i,setClientId:()=>f,setSessionId:()=>_});module.exports=I(g);var r=require("cookies-next"),i=()=>String(Date.now())+String(Math.floor(Math.random()*(999999999-1e8+1))+1e8),_=()=>{let t=i();(0,r.setCookie)("st_session_id",t)},f=()=>{let t=i();(0,r.setCookie)("st_client_id",t,{maxAge:31536e3})};0&&(module.exports={makeTimeBasedUID,setClientId,setSessionId});
1
+ var p=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var T=(e,s)=>{for(var n in s)p(e,n,{get:s[n],enumerable:!0})},u=(e,s,n,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let i of g(s))!y.call(e,i)&&i!==n&&p(e,i,{get:()=>s[i],enumerable:!(r=f(s,i))||r.enumerable});return e};var v=e=>u(p({},"__esModule",{value:!0}),e);var I={};T(I,{sendAnalytics:()=>P,setClientId:()=>h,setSessionId:()=>w});module.exports=v(I);var m=require("cookies-next");var a=()=>String(Date.now())+String(Math.floor(Math.random()*9e8)+1e8);var w=()=>{let e=a();(0,m.setCookie)("st_session_id",e)},h=()=>{let e=a();(0,m.setCookie)("st_client_id",e,{maxAge:31536e3})};var o=require("cookies-next");var _=e=>{var s,n;if(typeof window<"u"){let r=window.location.pathname,i=window.location.href,t={event:e.event,st_event_id:(s=e.params)==null?void 0:s.st_event_id,abTestGroup:(n=e.params)==null?void 0:n.abTestGroup,page_path:r,page_url:i};e.params.st_session_id&&(t.st_session_id=e.params.st_session_id),e.params.st_client_id&&(t.st_client_id=e.params.st_client_id),e.params.project&&(t.project=e.params.project),e.params.lot_id&&(t.lot_id=e.params.lot_id),process.env.NEXT_PUBLIC_IS_TEST==="false"&&(window.dataLayer=window.dataLayer||[],window.dataLayer.push(t),console.log("dataLayerPush:",t))}};var c=e=>{if(typeof ym<"u"&&typeof window<"u"){let s=process.env.NEXT_PUBLIC_IS_TEST==="false";(typeof process.env.NEXT_PUBLIC_YM_COUNTER>"u"||!process.env.NEXT_PUBLIC_YM_COUNTER)&&console.log("Yandex counter \u043D\u0435 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D \u0432 \u043A\u043E\u043D\u0444\u0438\u0433\u0435 .env.local"),s&&(ym(process.env.NEXT_PUBLIC_YM_COUNTER,"reachGoal",e.target,e.params),console.log("Yandex Metrika "+process.env.NEXT_PUBLIC_YM_COUNTER+" reachGoal: "+e.target,e.params))}else console.log("Yandex Metrika \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430")};var l=async e=>{if(typeof window<"u"){let s=process.env.NEXT_PUBLIC_IS_TEST==="false",n="https://stone.ru/api/analytics/send-event",r=window.location.pathname,i=window.location.href,t=new FormData;t.append("event",e.event),t.append("name",e.name),t.append("payload",JSON.stringify({...e.params,page_path:r,page_url:i})),(s?navigator.sendBeacon(n,t):null)||console.log("error send anal")}else return};var P=e=>{let s=process.env.NEXT_PUBLIC_IS_TEST==="false";e.params=e.params||{},e.params.st_event_id=a();let n=String((0,o.getCookie)("_ym_uid"));n&&n!=""&&(e.params.ym_client_id=n);let r=String((0,o.getCookie)("_ga"));r&&r!=""&&(e.params.ga_client_id=r);let i=String((0,o.getCookie)("st_client_id"));i&&i!=""&&(e.params.st_client_id=i);let t=String((0,o.getCookie)("st_session_id"));t&&t!=""&&(e.params.st_session_id=t),s&&(_({event:e.event,params:e.params}),c({target:e.event,params:e.params}),l({event:e.event,name:e.name,params:e.params}))};0&&(module.exports={sendAnalytics,setClientId,setSessionId});
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/utils/utils.ts"],"sourcesContent":["export * from './utils/utils'","import { setCookie } from \"cookies-next\"\n\nexport const makeTimeBasedUID = () => {\n return String(Date.now()) + String(Math.floor(Math.random() * (999999999 - 100000000 + 1)) + 100000000);\n}\n\nexport const setSessionId = () => {\n const newId = makeTimeBasedUID()\n setCookie('st_session_id', newId)\n}\n\nexport const setClientId = () => {\n const newId = makeTimeBasedUID()\n //на год\n setCookie('st_client_id', newId, { maxAge: 31536000 })\n}"],"mappings":"4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,EAAA,gBAAAC,EAAA,iBAAAC,IAAA,eAAAC,EAAAL,GCAA,IAAAM,EAA0B,wBAEbC,EAAmB,IACvB,OAAO,KAAK,IAAI,CAAC,EAAI,OAAO,KAAK,MAAM,KAAK,OAAO,GAAK,UAAY,IAAY,EAAE,EAAI,GAAS,EAG3FC,EAAe,IAAM,CAChC,IAAMC,EAAQF,EAAiB,KAC/B,aAAU,gBAAiBE,CAAK,CAClC,EAEaC,EAAc,IAAM,CAC/B,IAAMD,EAAQF,EAAiB,KAE/B,aAAU,eAAgBE,EAAO,CAAE,OAAQ,OAAS,CAAC,CACvD","names":["src_exports","__export","makeTimeBasedUID","setClientId","setSessionId","__toCommonJS","import_cookies_next","makeTimeBasedUID","setSessionId","newId","setClientId"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/utils/setId.ts","../src/utils/makeUID.ts","../src/sendAnalytics/sendAnalytics.ts","../src/dataLayerPush/dataLayerPush.ts","../src/ymTarget/ymaTarget.ts","../src/sendAnalyticsToAPI/sendAnalyticsToAPI.ts"],"sourcesContent":["export * from './utils/setId'\nexport * from './sendAnalytics/sendAnalytics'\n","import { setCookie } from 'cookies-next'\nimport { makeTimeBasedUID } from './makeUID'\n\nexport const setSessionId = (): void => {\n\tconst newId = makeTimeBasedUID()\n\tsetCookie('st_session_id', newId)\n}\n\nexport const setClientId = (): void => {\n\tconst newId = makeTimeBasedUID()\n\t//на год\n\tsetCookie('st_client_id', newId, { maxAge: 31536000 })\n}\n\n","export const makeTimeBasedUID = (): string => {\n\treturn (\n\t\tString(Date.now()) + String(Math.floor(Math.random() * (999999999 - 100000000 + 1)) + 100000000)\n\t)\n}","import { getCookie } from 'cookies-next'\nimport { TAnalyticsData } from '../types/analytics'\nimport { dataLayerPush } from '../dataLayerPush/dataLayerPush'\nimport { ymTarget } from '../ymTarget/ymaTarget'\nimport { sendAnalyticsToAPI } from '../sendAnalyticsToAPI/sendAnalyticsToAPI'\nimport { makeTimeBasedUID } from '../utils/makeUID'\n\nexport const sendAnalytics = (data: TAnalyticsData) => {\n\tconst isProd = process.env.NEXT_PUBLIC_IS_TEST === 'false'\n\n\tdata.params = data.params || {}\n\t//event_id - Уникальный ID события\n\tdata.params.st_event_id = makeTimeBasedUID()\n\n\tconst _ym_uid = String(getCookie('_ym_uid'))\n\tif (_ym_uid && _ym_uid != '') {\n\t\tdata.params.ym_client_id = _ym_uid\n\t}\n\tconst _ga = String(getCookie('_ga'))\n\tif (_ga && _ga != '') {\n\t\tdata.params.ga_client_id = _ga\n\t}\n\tconst st_client_id = String(getCookie('st_client_id'))\n\tif (st_client_id && st_client_id != '') {\n\t\tdata.params.st_client_id = st_client_id\n\t}\n\tconst st_session_id = String(getCookie('st_session_id'))\n\tif (st_session_id && st_session_id != '') {\n\t\tdata.params.st_session_id = st_session_id\n\t}\n\n\tif (isProd) {\n\t\tdataLayerPush({ event: data.event, params: data.params })\n\t\tymTarget({ target: data.event, params: data.params })\n\t\tsendAnalyticsToAPI({ event: data.event, name: data.name, params: data.params })\n\t}\n}\n\n","import { TAnalyticsVisitParams } from '../types/analytics'\n\nexport type TGADataLayer = {\n\tevent: string\n\tparams: TAnalyticsVisitParams\n}\n\nexport type DataLayerPush = {\n\tevent: string\n\tpage_path: string\n\tpage_url: string\n\tst_event_id?: string\n\tst_client_id?: string\n\tst_session_id?: string\n\tabTestGroup?: string\n\tproject?: string\n\tlot_id?: string | number\n}\n\ndeclare global {\n\tinterface Window {\n\t\tdataLayer: DataLayerPush[]\n\t}\n}\n\nexport const dataLayerPush = (data: TGADataLayer) => {\n\tif (typeof window !== 'undefined') {\n\t\tconst pathname = window.location.pathname\n\t\tconst href = window.location.href\n\t\tconst layerEvent: DataLayerPush = {\n\t\t\tevent: data.event,\n\t\t\tst_event_id: data.params?.st_event_id,\n\t\t\tabTestGroup: data.params?.abTestGroup,\n\t\t\tpage_path: pathname,\n\t\t\tpage_url: href,\n\t\t}\n\t\tif (data.params.st_session_id) {\n\t\t\tlayerEvent.st_session_id = data.params.st_session_id\n\t\t}\n\t\tif (data.params.st_client_id) {\n\t\t\tlayerEvent.st_client_id = data.params.st_client_id\n\t\t}\n\t\tif (data.params.project) {\n\t\t\tlayerEvent.project = data.params.project\n\t\t}\n\t\tif (data.params.lot_id) {\n\t\t\tlayerEvent.lot_id = data.params.lot_id\n\t\t}\n\t\tconst isNeedSend = process.env.NEXT_PUBLIC_IS_TEST === 'false'\n\t\tif (isNeedSend) {\n\t\t\twindow.dataLayer = window.dataLayer || []\n\t\t\twindow.dataLayer.push(layerEvent)\n\t\t\tconsole.log('dataLayerPush:', layerEvent)\n\t\t}\n\t}\n}\n\n","import { TAnalyticsVisitParams } from '../types/analytics'\n\nexport type TYMTarget = {\n\ttarget: string\n\tparams: TAnalyticsVisitParams\n}\n\ndeclare let ym: any\n/**\n * Отправка события в Яндек метрику\n * @param data\n */\nexport const ymTarget = (data: TYMTarget) => {\n\tif (typeof ym !== 'undefined' && typeof window !== 'undefined') {\n\t\tconst isNeedSend = process.env.NEXT_PUBLIC_IS_TEST === 'false'\n\t\tif (\n\t\t\ttypeof process.env.NEXT_PUBLIC_YM_COUNTER == 'undefined' ||\n\t\t\t!process.env.NEXT_PUBLIC_YM_COUNTER\n\t\t) {\n\t\t\tconsole.log('Yandex counter не определен в конфиге .env.local')\n\t\t}\n\t\tif (isNeedSend) {\n\t\t\tym(process.env.NEXT_PUBLIC_YM_COUNTER, 'reachGoal', data.target, data.params)\n\n\t\t\tconsole.log(\n\t\t\t\t'Yandex Metrika ' + process.env.NEXT_PUBLIC_YM_COUNTER + ' reachGoal: ' + data.target,\n\t\t\t\tdata.params\n\t\t\t)\n\t\t}\n\t} else {\n\t\tconsole.log('Yandex Metrika не найдена')\n\t}\n}\n","import { TAnalyticsVisitParams } from '../types/analytics'\n\nexport type TAnalyticsApiData = {\n\tevent: string\n\tname: string\n\tmouse_X?: string\n\tmouse_Y?: string\n\tparams: TAnalyticsVisitParams\n}\n\nexport const sendAnalyticsToAPI = async (data: TAnalyticsApiData) => {\n\tif (typeof window !== 'undefined') {\n\t\tconst isNeedSend = process.env.NEXT_PUBLIC_IS_TEST === 'false'\n\t\tconst url = `https://stone.ru/api/analytics/send-event`\n\t\tconst pathname = window.location.pathname\n\t\tconst href = window.location.href\n\t\tconst formData = new FormData()\n\t\tformData.append('event', data.event)\n\t\tformData.append('name', data.name)\n\t\tformData.append(\n\t\t\t'payload',\n\t\t\tJSON.stringify({ ...data.params, page_path: pathname, page_url: href })\n\t\t)\n\t\t// const formData = {\n\t\t// \tevent: data.event,\n\t\t// \tname: data.name,\n\t\t// \tpayload: { ...data.params, ...{ page_path: pathname, page_url: href } },\n\t\t// }\n\t\tconst result = isNeedSend ? navigator.sendBeacon(url, formData) : null\n\t\tif (result) {\n\t\t} else {\n\t\t\tconsole.log('error send anal')\n\t\t}\n\t} else return\n}\n\n"],"mappings":"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","names":["src_exports","__export","sendAnalytics","setClientId","setSessionId","__toCommonJS","import_cookies_next","makeTimeBasedUID","setSessionId","newId","makeTimeBasedUID","setClientId","import_cookies_next","dataLayerPush","data","_a","_b","pathname","href","layerEvent","ymTarget","data","isNeedSend","sendAnalyticsToAPI","data","isNeedSend","url","pathname","href","formData","sendAnalytics","data","isProd","makeTimeBasedUID","_ym_uid","_ga","st_client_id","st_session_id","dataLayerPush","ymTarget","sendAnalyticsToAPI"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stone-analytics",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "send stanal",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
package/dist/index.d.mts DELETED
@@ -1,5 +0,0 @@
1
- declare const makeTimeBasedUID: () => string;
2
- declare const setSessionId: () => void;
3
- declare const setClientId: () => void;
4
-
5
- export { makeTimeBasedUID, setClientId, setSessionId };
package/dist/index.mjs DELETED
@@ -1,2 +0,0 @@
1
- import{setCookie as e}from"cookies-next";var o=()=>String(Date.now())+String(Math.floor(Math.random()*(999999999-1e8+1))+1e8),s=()=>{let t=o();e("st_session_id",t)},r=()=>{let t=o();e("st_client_id",t,{maxAge:31536e3})};export{o as makeTimeBasedUID,r as setClientId,s as setSessionId};
2
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/utils.ts"],"sourcesContent":["import { setCookie } from \"cookies-next\"\n\nexport const makeTimeBasedUID = () => {\n return String(Date.now()) + String(Math.floor(Math.random() * (999999999 - 100000000 + 1)) + 100000000);\n}\n\nexport const setSessionId = () => {\n const newId = makeTimeBasedUID()\n setCookie('st_session_id', newId)\n}\n\nexport const setClientId = () => {\n const newId = makeTimeBasedUID()\n //на год\n setCookie('st_client_id', newId, { maxAge: 31536000 })\n}"],"mappings":"AAAA,OAAS,aAAAA,MAAiB,eAEnB,IAAMC,EAAmB,IACvB,OAAO,KAAK,IAAI,CAAC,EAAI,OAAO,KAAK,MAAM,KAAK,OAAO,GAAK,UAAY,IAAY,EAAE,EAAI,GAAS,EAG3FC,EAAe,IAAM,CAChC,IAAMC,EAAQF,EAAiB,EAC/BD,EAAU,gBAAiBG,CAAK,CAClC,EAEaC,EAAc,IAAM,CAC/B,IAAMD,EAAQF,EAAiB,EAE/BD,EAAU,eAAgBG,EAAO,CAAE,OAAQ,OAAS,CAAC,CACvD","names":["setCookie","makeTimeBasedUID","setSessionId","newId","setClientId"]}