stone-analytics 0.0.11 → 0.0.12

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
@@ -7,7 +7,6 @@ type TAnalyticsData = {
7
7
  params?: TAnalyticsVisitParams;
8
8
  };
9
9
  type TAnalyticsVisitParams = {
10
- abTestGroup?: string;
11
10
  st_event_id?: string;
12
11
  st_client_id?: string;
13
12
  st_session_id?: string;
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var m=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var g=(e,t)=>{for(var s in t)m(e,s,{get:t[s],enumerable:!0})},u=(e,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of T(t))!f.call(e,n)&&n!==s&&m(e,n,{get:()=>t[n],enumerable:!(i=y(t,n))||i.enumerable});return e};var v=e=>u(m({},"__esModule",{value:!0}),e);var A={};g(A,{sendAnalytics:()=>P,setClientId:()=>w,setSessionId:()=>h});module.exports=v(A);var _=require("cookies-next");var a=()=>String(Date.now())+String(Math.floor(Math.random()*9e8)+1e8);var h=()=>{let e=a();(0,_.setCookie)("st_session_id",e)},w=()=>{let e=a();(0,_.setCookie)("st_client_id",e,{maxAge:31536e3})};var p=require("cookies-next");var c=e=>{var t,s;if(typeof window<"u"){let i=process.env.NEXT_PUBLIC_IS_TEST==="true",n=window.location.pathname,r=window.location.href,o={event:e.event,st_event_id:(t=e.params)==null?void 0:t.st_event_id,abTestGroup:(s=e.params)==null?void 0:s.abTestGroup,page_path:n,page_url:r};e.params.st_session_id&&(o.st_session_id=e.params.st_session_id),e.params.st_client_id&&(o.st_client_id=e.params.st_client_id),e.params.project&&(o.project=e.params.project),e.params.lot_id&&(o.lot_id=e.params.lot_id),i||(window.dataLayer=window.dataLayer||[],window.dataLayer.push(o),console.log("dataLayerPush:",o))}};var l=e=>{if(typeof ym<"u"&&typeof window<"u"){let t=process.env.NEXT_PUBLIC_IS_TEST==="true";(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"),t||(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 d=async e=>{if(typeof window<"u"){let t=process.env.NEXT_PUBLIC_IS_TEST==="false",s="https://stone.ru/api/analytics/send-event",i=window.location.pathname,n=window.location.href,r={event:e.event,name:e.name,payload:{...e.params,page_path:i,page_url:n}};try{t&&(await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}),console.log("sendAnalyticsToAPI:",r))}catch{console.log("can't sendAnalyticsToAPI")}}else return};var P=e=>{let t=process.env.NEXT_PUBLIC_IS_TEST==="true";e.params=e.params||{},e.params.st_event_id=a();let s=String((0,p.getCookie)("_ym_uid"));s&&s!=""&&(e.params.ym_client_id=s);let i=String((0,p.getCookie)("_ga"));i&&i!=""&&(e.params.ga_client_id=i);let n=String((0,p.getCookie)("st_client_id"));n&&n!=""&&(e.params.st_client_id=n);let r=String((0,p.getCookie)("st_session_id"));r&&r!=""&&(e.params.st_session_id=r),t||(c({event:e.event,params:e.params}),l({target:e.event,params:e.params}),d({event:e.event,name:e.name,params:e.params}))};0&&(module.exports={sendAnalytics,setClientId,setSessionId});
1
+ var m=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var f=(e,t)=>{for(var s in t)m(e,s,{get:t[s],enumerable:!0})},u=(e,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of T(t))!g.call(e,n)&&n!==s&&m(e,n,{get:()=>t[n],enumerable:!(i=y(t,n))||i.enumerable});return e};var v=e=>u(m({},"__esModule",{value:!0}),e);var A={};f(A,{sendAnalytics:()=>P,setClientId:()=>w,setSessionId:()=>h});module.exports=v(A);var _=require("cookies-next");var a=()=>String(Date.now())+String(Math.floor(Math.random()*9e8)+1e8);var h=()=>{let e=a();(0,_.setCookie)("st_session_id",e)},w=()=>{let e=a();(0,_.setCookie)("st_client_id",e,{maxAge:31536e3})};var p=require("cookies-next");var c=e=>{var t,s;if(typeof window<"u"){let i=process.env.NEXT_PUBLIC_IS_TEST==="true",n=window.location.pathname,r=window.location.href,o={event:e.event,st_event_id:(t=e.params)==null?void 0:t.st_event_id,abTestGroup:(s=e.params)==null?void 0:s.abTestGroup,page_path:n,page_url:r};e.params.st_session_id&&(o.st_session_id=e.params.st_session_id),e.params.st_client_id&&(o.st_client_id=e.params.st_client_id),e.params.project&&(o.project=e.params.project),e.params.lot_id&&(o.lot_id=e.params.lot_id),i||(window.dataLayer=window.dataLayer||[],window.dataLayer.push(o),console.log("dataLayerPush:",o))}};var l=e=>{if(typeof ym<"u"&&typeof window<"u"){let t=process.env.NEXT_PUBLIC_IS_TEST==="true";(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"),t||(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 d=async e=>{if(typeof window<"u"){let t=process.env.NEXT_PUBLIC_IS_TEST==="true",s="https://stone.ru/api/analytics/send-event",i=window.location.pathname,n=window.location.href,r={event:e.event,name:e.name,payload:{...e.params,page_path:i,page_url:n}};try{t&&(await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}),console.log("sendAnalyticsToAPI:",r))}catch{console.log("can't sendAnalyticsToAPI")}}else return};var P=e=>{let t=process.env.NEXT_PUBLIC_IS_TEST==="true";e.params=e.params||{},e.params.st_event_id=a();let s=String((0,p.getCookie)("_ym_uid"));s&&s!=""&&(e.params.ym_client_id=s);let i=String((0,p.getCookie)("_ga"));i&&i!=""&&(e.params.ga_client_id=i);let n=String((0,p.getCookie)("st_client_id"));n&&n!=""&&(e.params.st_client_id=n);let r=String((0,p.getCookie)("st_session_id"));r&&r!=""&&(e.params.st_session_id=r),t||(c({event:e.event,params:e.params}),l({target:e.event,params:e.params}),d({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/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 isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\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 (!isTest) {\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 isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\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\n\t\tif (!isTest) {\n\t\t\twindow.dataLayer = window.dataLayer || []\n\t\t\twindow.dataLayer.push(layerEvent)\n\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 isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\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 (!isTest) {\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\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\n\t\tconst 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\ttry {\n\t\t\tif (isNeedSend) {\n\t\t\t\tawait fetch(url, {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify(formData),\n\t\t\t\t})\n\t\t\t\tconsole.log('sendAnalyticsToAPI:', formData)\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(\"can't sendAnalyticsToAPI\")\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","isTest","pathname","href","layerEvent","ymTarget","data","isTest","sendAnalyticsToAPI","data","isNeedSend","url","pathname","href","formData","sendAnalytics","data","isTest","makeTimeBasedUID","_ym_uid","_ga","st_client_id","st_session_id","dataLayerPush","ymTarget","sendAnalyticsToAPI"]}
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 isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\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 (!isTest) {\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 isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\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\n\t\tif (!isTest) {\n\t\t\twindow.dataLayer = window.dataLayer || []\n\t\t\twindow.dataLayer.push(layerEvent)\n\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 isTest = process.env.NEXT_PUBLIC_IS_TEST === 'true'\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 (!isTest) {\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\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 === 'true'\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\n\t\tconst 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\ttry {\n\t\t\tif (isNeedSend) {\n\t\t\t\tawait fetch(url, {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify(formData),\n\t\t\t\t})\n\t\t\t\tconsole.log('sendAnalyticsToAPI:', formData)\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(\"can't sendAnalyticsToAPI\")\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","isTest","pathname","href","layerEvent","ymTarget","data","isTest","sendAnalyticsToAPI","data","isNeedSend","url","pathname","href","formData","sendAnalytics","data","isTest","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.11",
3
+ "version": "0.0.12",
4
4
  "description": "send stanal",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
@@ -22,9 +22,11 @@
22
22
  "prepublishOnly": "npm run build"
23
23
  },
24
24
  "dependencies": {
25
- "cookies-next": "^2.1.2"
25
+ "cookies-next": "^2.1.2",
26
+ "react": "18.2.0"
26
27
  },
27
28
  "devDependencies": {
29
+ "@types/react": "19.0.1",
28
30
  "tsup": "^7.0.0",
29
31
  "typescript": "^5.8.2"
30
32
  },