@shware/analytics 0.1.14 → 0.1.16

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.
Files changed (53) hide show
  1. package/dist/index.cjs +17 -172
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +7 -501
  4. package/dist/index.d.ts +7 -501
  5. package/dist/index.mjs +5 -148
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/next/index.cjs +3 -3
  8. package/dist/next/index.cjs.map +1 -1
  9. package/dist/next/index.mjs +1 -1
  10. package/dist/next/index.mjs.map +1 -1
  11. package/dist/react-router/index.cjs +3 -3
  12. package/dist/react-router/index.cjs.map +1 -1
  13. package/dist/react-router/index.mjs +1 -1
  14. package/dist/react-router/index.mjs.map +1 -1
  15. package/dist/schema/index.cjs +85 -0
  16. package/dist/schema/index.cjs.map +1 -0
  17. package/dist/schema/index.d.cts +177 -0
  18. package/dist/schema/index.d.ts +177 -0
  19. package/dist/schema/index.mjs +58 -0
  20. package/dist/schema/index.mjs.map +1 -0
  21. package/dist/setup/index.cjs +63 -0
  22. package/dist/setup/index.cjs.map +1 -0
  23. package/dist/setup/index.d.cts +29 -0
  24. package/dist/setup/index.d.ts +29 -0
  25. package/dist/setup/index.mjs +27 -0
  26. package/dist/setup/index.mjs.map +1 -0
  27. package/dist/track/ga.cjs +102 -0
  28. package/dist/track/ga.cjs.map +1 -0
  29. package/dist/track/ga.d.cts +4 -0
  30. package/dist/track/ga.d.ts +4 -0
  31. package/dist/track/ga.mjs +76 -0
  32. package/dist/track/ga.mjs.map +1 -0
  33. package/dist/track/index.cjs +65 -0
  34. package/dist/track/index.cjs.map +1 -0
  35. package/dist/track/index.d.cts +10 -0
  36. package/dist/track/index.d.ts +10 -0
  37. package/dist/track/index.mjs +40 -0
  38. package/dist/track/index.mjs.map +1 -0
  39. package/dist/types/index.cjs +19 -0
  40. package/dist/types/index.cjs.map +1 -0
  41. package/dist/types/index.d.cts +327 -0
  42. package/dist/types/index.d.ts +327 -0
  43. package/dist/types/index.mjs +1 -0
  44. package/dist/types/index.mjs.map +1 -0
  45. package/dist/visitor/index.cjs +77 -0
  46. package/dist/visitor/index.cjs.map +1 -0
  47. package/dist/visitor/index.d.cts +6 -0
  48. package/dist/visitor/index.d.ts +6 -0
  49. package/dist/visitor/index.mjs +51 -0
  50. package/dist/visitor/index.mjs.map +1 -0
  51. package/dist/web/index.d.cts +1 -50
  52. package/dist/web/index.d.ts +1 -50
  53. package/package.json +1 -1
@@ -27,7 +27,7 @@ module.exports = __toCommonJS(next_exports);
27
27
  var import_navigation = require("next/navigation");
28
28
  var import_web_vitals = require("next/web-vitals");
29
29
  var import_react = require("react");
30
- var import__ = require("../index.cjs");
30
+ var import_track = require("../track/index.cjs");
31
31
  function Analytics() {
32
32
  const pathname = (0, import_navigation.usePathname)();
33
33
  const params = (0, import_navigation.useSearchParams)();
@@ -43,7 +43,7 @@ function Analytics() {
43
43
  utm_term: params.get("utm_term"),
44
44
  utm_content: params.get("utm_content")
45
45
  };
46
- (0, import__.track)("page_view", properties, { enableThirdPartyTracking: false });
46
+ (0, import_track.track)("page_view", properties, { enableThirdPartyTracking: false });
47
47
  }, [pathname, params]);
48
48
  (0, import_web_vitals.useReportWebVitals)((metric) => {
49
49
  const properties = {
@@ -55,7 +55,7 @@ function Analytics() {
55
55
  non_interaction: true
56
56
  // avoids affecting bounce rate.
57
57
  };
58
- (0, import__.track)(metric.name, properties);
58
+ (0, import_track.track)(metric.name, properties);
59
59
  });
60
60
  return null;
61
61
  }
@@ -1 +1 @@
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":[]}
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 '../track/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,mBAAsB;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,4BAAM,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,4BAAM,OAAO,MAA2B,UAAU;AAAA,EACpD,CAAC;AAED,SAAO;AACT;","names":[]}
@@ -4,7 +4,7 @@
4
4
  import { usePathname, useSearchParams } from "next/navigation";
5
5
  import { useReportWebVitals } from "next/web-vitals";
6
6
  import { useEffect } from "react";
7
- import { track } from "../index.mjs";
7
+ import { track } from "../track/index.mjs";
8
8
  function Analytics() {
9
9
  const pathname = usePathname();
10
10
  const params = useSearchParams();
@@ -1 +1 @@
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":[]}
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 '../track/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":[]}
@@ -26,7 +26,7 @@ module.exports = __toCommonJS(react_router_exports);
26
26
  var import_react = require("react");
27
27
  var import_react_router = require("react-router");
28
28
  var import_web_vitals = require("web-vitals");
29
- var import__ = require("../index.cjs");
29
+ var import_track = require("../track/index.cjs");
30
30
  function useReportWebVitals(reportWebVitalsFn) {
31
31
  (0, import_react.useEffect)(() => {
32
32
  (0, import_web_vitals.onCLS)(reportWebVitalsFn);
@@ -52,7 +52,7 @@ function Analytics() {
52
52
  utm_term: params.get("utm_term"),
53
53
  utm_content: params.get("utm_content")
54
54
  };
55
- (0, import__.track)("page_view", properties, { enableThirdPartyTracking: false });
55
+ (0, import_track.track)("page_view", properties, { enableThirdPartyTracking: false });
56
56
  }, [pathname, params]);
57
57
  useReportWebVitals((metric) => {
58
58
  const properties = {
@@ -64,7 +64,7 @@ function Analytics() {
64
64
  non_interaction: true
65
65
  // avoids affecting bounce rate.
66
66
  };
67
- (0, import__.track)(metric.name, properties);
67
+ (0, import_track.track)(metric.name, properties);
68
68
  });
69
69
  return null;
70
70
  }
@@ -1 +1 @@
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
+ {"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 '../track/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,mBAAsB;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,4BAAM,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,4BAAM,OAAO,MAA2B,UAAU;AAAA,EACpD,CAAC;AAED,SAAO;AACT;","names":[]}
@@ -2,7 +2,7 @@
2
2
  import { useEffect } from "react";
3
3
  import { useLocation, useSearchParams } from "react-router";
4
4
  import { onLCP, onFID, onCLS, onINP, onFCP, onTTFB } from "web-vitals";
5
- import { track } from "../index.mjs";
5
+ import { track } from "../track/index.mjs";
6
6
  function useReportWebVitals(reportWebVitalsFn) {
7
7
  useEffect(() => {
8
8
  onCLS(reportWebVitalsFn);
@@ -1 +1 @@
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":[]}
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 '../track/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":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/schema/index.ts
21
+ var schema_exports = {};
22
+ __export(schema_exports, {
23
+ createTrackEventSchema: () => createTrackEventSchema,
24
+ createVisitorSchema: () => createVisitorSchema,
25
+ updateVisitorSchema: () => updateVisitorSchema
26
+ });
27
+ module.exports = __toCommonJS(schema_exports);
28
+ var import_zod = require("zod");
29
+ var createTrackEventSchema = import_zod.z.object({
30
+ name: import_zod.z.string().trim().min(1).max(64),
31
+ visitor_id: import_zod.z.coerce.bigint(),
32
+ tags: import_zod.z.object({
33
+ os: import_zod.z.string().optional(),
34
+ os_name: import_zod.z.string().optional(),
35
+ os_version: import_zod.z.string().optional(),
36
+ browser: import_zod.z.string().optional(),
37
+ browser_name: import_zod.z.string().optional(),
38
+ browser_version: import_zod.z.string().optional(),
39
+ platform: import_zod.z.enum(["ios", "android", "web", "macos", "windows", "linux", "unknown"]).optional(),
40
+ device: import_zod.z.string().optional(),
41
+ device_id: import_zod.z.string().trim().min(1).max(36).optional(),
42
+ device_type: import_zod.z.string().optional(),
43
+ device_vendor: import_zod.z.string().optional(),
44
+ device_pixel_ratio: import_zod.z.string().optional(),
45
+ screen_resolution: import_zod.z.string().regex(/^\d+x\d+$/).transform((v) => v).optional(),
46
+ release: import_zod.z.string().optional(),
47
+ language: import_zod.z.string().optional(),
48
+ timezone: import_zod.z.string().optional(),
49
+ environment: import_zod.z.enum(["development", "production"]).optional(),
50
+ source_url: import_zod.z.string().optional(),
51
+ source: import_zod.z.enum(["web", "app", "offline"]).optional(),
52
+ fbc: import_zod.z.string().optional(),
53
+ fbp: import_zod.z.string().optional(),
54
+ gclid: import_zod.z.string().optional(),
55
+ utm_source: import_zod.z.string().optional(),
56
+ utm_medium: import_zod.z.string().optional(),
57
+ utm_campaign: import_zod.z.string().optional(),
58
+ utm_term: import_zod.z.string().optional(),
59
+ utm_content: import_zod.z.string().optional()
60
+ }),
61
+ properties: import_zod.z.record(
62
+ import_zod.z.string().trim().min(1).max(128),
63
+ import_zod.z.union([import_zod.z.string().max(512), import_zod.z.number(), import_zod.z.boolean(), import_zod.z.null()])
64
+ ).refine((data) => Object.keys(data).length <= 64)
65
+ });
66
+ var createVisitorSchema = import_zod.z.object({
67
+ device_id: import_zod.z.string().trim().min(1).max(36),
68
+ properties: import_zod.z.record(
69
+ import_zod.z.string().trim().min(1).max(128),
70
+ import_zod.z.union([import_zod.z.string().max(512), import_zod.z.number(), import_zod.z.boolean(), import_zod.z.null()])
71
+ ).refine((data) => Object.keys(data).length <= 64)
72
+ });
73
+ var updateVisitorSchema = import_zod.z.object({
74
+ properties: import_zod.z.record(
75
+ import_zod.z.string().trim().min(1).max(128),
76
+ import_zod.z.union([import_zod.z.string().max(512), import_zod.z.number(), import_zod.z.boolean(), import_zod.z.null()])
77
+ ).refine((data) => Object.keys(data).length <= 64)
78
+ });
79
+ // Annotate the CommonJS export names for ESM import in node:
80
+ 0 && (module.exports = {
81
+ createTrackEventSchema,
82
+ createVisitorSchema,
83
+ updateVisitorSchema
84
+ });
85
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const createTrackEventSchema = z.object({\n name: z.string().trim().min(1).max(64),\n visitor_id: z.coerce.bigint(),\n tags: z.object({\n os: z.string().optional(),\n os_name: z.string().optional(),\n os_version: z.string().optional(),\n browser: z.string().optional(),\n browser_name: z.string().optional(),\n browser_version: z.string().optional(),\n platform: z.enum(['ios', 'android', 'web', 'macos', 'windows', 'linux', 'unknown']).optional(),\n device: z.string().optional(),\n device_id: z.string().trim().min(1).max(36).optional(),\n device_type: z.string().optional(),\n device_vendor: z.string().optional(),\n device_pixel_ratio: z.string().optional(),\n screen_resolution: z\n .string()\n .regex(/^\\d+x\\d+$/)\n .transform((v) => v as `${number}x${number}`)\n .optional(),\n release: z.string().optional(),\n language: z.string().optional(),\n timezone: z.string().optional(),\n environment: z.enum(['development', 'production']).optional(),\n source_url: z.string().optional(),\n source: z.enum(['web', 'app', 'offline']).optional(),\n fbc: z.string().optional(),\n fbp: z.string().optional(),\n gclid: z.string().optional(),\n utm_source: z.string().optional(),\n utm_medium: z.string().optional(),\n utm_campaign: z.string().optional(),\n utm_term: z.string().optional(),\n utm_content: z.string().optional(),\n }),\n properties: z\n .record(\n z.string().trim().min(1).max(128),\n z.union([z.string().max(512), z.number(), z.boolean(), z.null()])\n )\n .refine((data) => Object.keys(data).length <= 64),\n});\n\nexport const createVisitorSchema = z.object({\n device_id: z.string().trim().min(1).max(36),\n properties: z\n .record(\n z.string().trim().min(1).max(128),\n z.union([z.string().max(512), z.number(), z.boolean(), z.null()])\n )\n .refine((data) => Object.keys(data).length <= 64),\n});\n\nexport const updateVisitorSchema = z.object({\n properties: z\n .record(\n z.string().trim().min(1).max(128),\n z.union([z.string().max(512), z.number(), z.boolean(), z.null()])\n )\n .refine((data) => Object.keys(data).length <= 64),\n});\n"],"mappings":"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","names":[]}
@@ -0,0 +1,177 @@
1
+ import { z } from 'zod';
2
+
3
+ declare const createTrackEventSchema: z.ZodObject<{
4
+ name: z.ZodString;
5
+ visitor_id: z.ZodBigInt;
6
+ tags: z.ZodObject<{
7
+ os: z.ZodOptional<z.ZodString>;
8
+ os_name: z.ZodOptional<z.ZodString>;
9
+ os_version: z.ZodOptional<z.ZodString>;
10
+ browser: z.ZodOptional<z.ZodString>;
11
+ browser_name: z.ZodOptional<z.ZodString>;
12
+ browser_version: z.ZodOptional<z.ZodString>;
13
+ platform: z.ZodOptional<z.ZodEnum<["ios", "android", "web", "macos", "windows", "linux", "unknown"]>>;
14
+ device: z.ZodOptional<z.ZodString>;
15
+ device_id: z.ZodOptional<z.ZodString>;
16
+ device_type: z.ZodOptional<z.ZodString>;
17
+ device_vendor: z.ZodOptional<z.ZodString>;
18
+ device_pixel_ratio: z.ZodOptional<z.ZodString>;
19
+ screen_resolution: z.ZodOptional<z.ZodEffects<z.ZodString, `${number}x${number}`, string>>;
20
+ release: z.ZodOptional<z.ZodString>;
21
+ language: z.ZodOptional<z.ZodString>;
22
+ timezone: z.ZodOptional<z.ZodString>;
23
+ environment: z.ZodOptional<z.ZodEnum<["development", "production"]>>;
24
+ source_url: z.ZodOptional<z.ZodString>;
25
+ source: z.ZodOptional<z.ZodEnum<["web", "app", "offline"]>>;
26
+ fbc: z.ZodOptional<z.ZodString>;
27
+ fbp: z.ZodOptional<z.ZodString>;
28
+ gclid: z.ZodOptional<z.ZodString>;
29
+ utm_source: z.ZodOptional<z.ZodString>;
30
+ utm_medium: z.ZodOptional<z.ZodString>;
31
+ utm_campaign: z.ZodOptional<z.ZodString>;
32
+ utm_term: z.ZodOptional<z.ZodString>;
33
+ utm_content: z.ZodOptional<z.ZodString>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ os?: string | undefined;
36
+ os_name?: string | undefined;
37
+ os_version?: string | undefined;
38
+ browser?: string | undefined;
39
+ browser_name?: string | undefined;
40
+ browser_version?: string | undefined;
41
+ platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
42
+ device?: string | undefined;
43
+ device_id?: string | undefined;
44
+ device_type?: string | undefined;
45
+ device_vendor?: string | undefined;
46
+ device_pixel_ratio?: string | undefined;
47
+ screen_resolution?: `${number}x${number}` | undefined;
48
+ release?: string | undefined;
49
+ language?: string | undefined;
50
+ timezone?: string | undefined;
51
+ environment?: "development" | "production" | undefined;
52
+ source_url?: string | undefined;
53
+ source?: "web" | "app" | "offline" | undefined;
54
+ fbc?: string | undefined;
55
+ fbp?: string | undefined;
56
+ gclid?: string | undefined;
57
+ utm_source?: string | undefined;
58
+ utm_medium?: string | undefined;
59
+ utm_campaign?: string | undefined;
60
+ utm_term?: string | undefined;
61
+ utm_content?: string | undefined;
62
+ }, {
63
+ os?: string | undefined;
64
+ os_name?: string | undefined;
65
+ os_version?: string | undefined;
66
+ browser?: string | undefined;
67
+ browser_name?: string | undefined;
68
+ browser_version?: string | undefined;
69
+ platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
70
+ device?: string | undefined;
71
+ device_id?: string | undefined;
72
+ device_type?: string | undefined;
73
+ device_vendor?: string | undefined;
74
+ device_pixel_ratio?: string | undefined;
75
+ screen_resolution?: string | undefined;
76
+ release?: string | undefined;
77
+ language?: string | undefined;
78
+ timezone?: string | undefined;
79
+ environment?: "development" | "production" | undefined;
80
+ source_url?: string | undefined;
81
+ source?: "web" | "app" | "offline" | undefined;
82
+ fbc?: string | undefined;
83
+ fbp?: string | undefined;
84
+ gclid?: string | undefined;
85
+ utm_source?: string | undefined;
86
+ utm_medium?: string | undefined;
87
+ utm_campaign?: string | undefined;
88
+ utm_term?: string | undefined;
89
+ utm_content?: string | undefined;
90
+ }>;
91
+ properties: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, Record<string, string | number | boolean | null>, Record<string, string | number | boolean | null>>;
92
+ }, "strip", z.ZodTypeAny, {
93
+ visitor_id: bigint;
94
+ name: string;
95
+ tags: {
96
+ os?: string | undefined;
97
+ os_name?: string | undefined;
98
+ os_version?: string | undefined;
99
+ browser?: string | undefined;
100
+ browser_name?: string | undefined;
101
+ browser_version?: string | undefined;
102
+ platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
103
+ device?: string | undefined;
104
+ device_id?: string | undefined;
105
+ device_type?: string | undefined;
106
+ device_vendor?: string | undefined;
107
+ device_pixel_ratio?: string | undefined;
108
+ screen_resolution?: `${number}x${number}` | undefined;
109
+ release?: string | undefined;
110
+ language?: string | undefined;
111
+ timezone?: string | undefined;
112
+ environment?: "development" | "production" | undefined;
113
+ source_url?: string | undefined;
114
+ source?: "web" | "app" | "offline" | undefined;
115
+ fbc?: string | undefined;
116
+ fbp?: string | undefined;
117
+ gclid?: string | undefined;
118
+ utm_source?: string | undefined;
119
+ utm_medium?: string | undefined;
120
+ utm_campaign?: string | undefined;
121
+ utm_term?: string | undefined;
122
+ utm_content?: string | undefined;
123
+ };
124
+ properties: Record<string, string | number | boolean | null>;
125
+ }, {
126
+ visitor_id: bigint;
127
+ name: string;
128
+ tags: {
129
+ os?: string | undefined;
130
+ os_name?: string | undefined;
131
+ os_version?: string | undefined;
132
+ browser?: string | undefined;
133
+ browser_name?: string | undefined;
134
+ browser_version?: string | undefined;
135
+ platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
136
+ device?: string | undefined;
137
+ device_id?: string | undefined;
138
+ device_type?: string | undefined;
139
+ device_vendor?: string | undefined;
140
+ device_pixel_ratio?: string | undefined;
141
+ screen_resolution?: string | undefined;
142
+ release?: string | undefined;
143
+ language?: string | undefined;
144
+ timezone?: string | undefined;
145
+ environment?: "development" | "production" | undefined;
146
+ source_url?: string | undefined;
147
+ source?: "web" | "app" | "offline" | undefined;
148
+ fbc?: string | undefined;
149
+ fbp?: string | undefined;
150
+ gclid?: string | undefined;
151
+ utm_source?: string | undefined;
152
+ utm_medium?: string | undefined;
153
+ utm_campaign?: string | undefined;
154
+ utm_term?: string | undefined;
155
+ utm_content?: string | undefined;
156
+ };
157
+ properties: Record<string, string | number | boolean | null>;
158
+ }>;
159
+ declare const createVisitorSchema: z.ZodObject<{
160
+ device_id: z.ZodString;
161
+ properties: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, Record<string, string | number | boolean | null>, Record<string, string | number | boolean | null>>;
162
+ }, "strip", z.ZodTypeAny, {
163
+ device_id: string;
164
+ properties: Record<string, string | number | boolean | null>;
165
+ }, {
166
+ device_id: string;
167
+ properties: Record<string, string | number | boolean | null>;
168
+ }>;
169
+ declare const updateVisitorSchema: z.ZodObject<{
170
+ properties: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, Record<string, string | number | boolean | null>, Record<string, string | number | boolean | null>>;
171
+ }, "strip", z.ZodTypeAny, {
172
+ properties: Record<string, string | number | boolean | null>;
173
+ }, {
174
+ properties: Record<string, string | number | boolean | null>;
175
+ }>;
176
+
177
+ export { createTrackEventSchema, createVisitorSchema, updateVisitorSchema };
@@ -0,0 +1,177 @@
1
+ import { z } from 'zod';
2
+
3
+ declare const createTrackEventSchema: z.ZodObject<{
4
+ name: z.ZodString;
5
+ visitor_id: z.ZodBigInt;
6
+ tags: z.ZodObject<{
7
+ os: z.ZodOptional<z.ZodString>;
8
+ os_name: z.ZodOptional<z.ZodString>;
9
+ os_version: z.ZodOptional<z.ZodString>;
10
+ browser: z.ZodOptional<z.ZodString>;
11
+ browser_name: z.ZodOptional<z.ZodString>;
12
+ browser_version: z.ZodOptional<z.ZodString>;
13
+ platform: z.ZodOptional<z.ZodEnum<["ios", "android", "web", "macos", "windows", "linux", "unknown"]>>;
14
+ device: z.ZodOptional<z.ZodString>;
15
+ device_id: z.ZodOptional<z.ZodString>;
16
+ device_type: z.ZodOptional<z.ZodString>;
17
+ device_vendor: z.ZodOptional<z.ZodString>;
18
+ device_pixel_ratio: z.ZodOptional<z.ZodString>;
19
+ screen_resolution: z.ZodOptional<z.ZodEffects<z.ZodString, `${number}x${number}`, string>>;
20
+ release: z.ZodOptional<z.ZodString>;
21
+ language: z.ZodOptional<z.ZodString>;
22
+ timezone: z.ZodOptional<z.ZodString>;
23
+ environment: z.ZodOptional<z.ZodEnum<["development", "production"]>>;
24
+ source_url: z.ZodOptional<z.ZodString>;
25
+ source: z.ZodOptional<z.ZodEnum<["web", "app", "offline"]>>;
26
+ fbc: z.ZodOptional<z.ZodString>;
27
+ fbp: z.ZodOptional<z.ZodString>;
28
+ gclid: z.ZodOptional<z.ZodString>;
29
+ utm_source: z.ZodOptional<z.ZodString>;
30
+ utm_medium: z.ZodOptional<z.ZodString>;
31
+ utm_campaign: z.ZodOptional<z.ZodString>;
32
+ utm_term: z.ZodOptional<z.ZodString>;
33
+ utm_content: z.ZodOptional<z.ZodString>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ os?: string | undefined;
36
+ os_name?: string | undefined;
37
+ os_version?: string | undefined;
38
+ browser?: string | undefined;
39
+ browser_name?: string | undefined;
40
+ browser_version?: string | undefined;
41
+ platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
42
+ device?: string | undefined;
43
+ device_id?: string | undefined;
44
+ device_type?: string | undefined;
45
+ device_vendor?: string | undefined;
46
+ device_pixel_ratio?: string | undefined;
47
+ screen_resolution?: `${number}x${number}` | undefined;
48
+ release?: string | undefined;
49
+ language?: string | undefined;
50
+ timezone?: string | undefined;
51
+ environment?: "development" | "production" | undefined;
52
+ source_url?: string | undefined;
53
+ source?: "web" | "app" | "offline" | undefined;
54
+ fbc?: string | undefined;
55
+ fbp?: string | undefined;
56
+ gclid?: string | undefined;
57
+ utm_source?: string | undefined;
58
+ utm_medium?: string | undefined;
59
+ utm_campaign?: string | undefined;
60
+ utm_term?: string | undefined;
61
+ utm_content?: string | undefined;
62
+ }, {
63
+ os?: string | undefined;
64
+ os_name?: string | undefined;
65
+ os_version?: string | undefined;
66
+ browser?: string | undefined;
67
+ browser_name?: string | undefined;
68
+ browser_version?: string | undefined;
69
+ platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
70
+ device?: string | undefined;
71
+ device_id?: string | undefined;
72
+ device_type?: string | undefined;
73
+ device_vendor?: string | undefined;
74
+ device_pixel_ratio?: string | undefined;
75
+ screen_resolution?: string | undefined;
76
+ release?: string | undefined;
77
+ language?: string | undefined;
78
+ timezone?: string | undefined;
79
+ environment?: "development" | "production" | undefined;
80
+ source_url?: string | undefined;
81
+ source?: "web" | "app" | "offline" | undefined;
82
+ fbc?: string | undefined;
83
+ fbp?: string | undefined;
84
+ gclid?: string | undefined;
85
+ utm_source?: string | undefined;
86
+ utm_medium?: string | undefined;
87
+ utm_campaign?: string | undefined;
88
+ utm_term?: string | undefined;
89
+ utm_content?: string | undefined;
90
+ }>;
91
+ properties: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, Record<string, string | number | boolean | null>, Record<string, string | number | boolean | null>>;
92
+ }, "strip", z.ZodTypeAny, {
93
+ visitor_id: bigint;
94
+ name: string;
95
+ tags: {
96
+ os?: string | undefined;
97
+ os_name?: string | undefined;
98
+ os_version?: string | undefined;
99
+ browser?: string | undefined;
100
+ browser_name?: string | undefined;
101
+ browser_version?: string | undefined;
102
+ platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
103
+ device?: string | undefined;
104
+ device_id?: string | undefined;
105
+ device_type?: string | undefined;
106
+ device_vendor?: string | undefined;
107
+ device_pixel_ratio?: string | undefined;
108
+ screen_resolution?: `${number}x${number}` | undefined;
109
+ release?: string | undefined;
110
+ language?: string | undefined;
111
+ timezone?: string | undefined;
112
+ environment?: "development" | "production" | undefined;
113
+ source_url?: string | undefined;
114
+ source?: "web" | "app" | "offline" | undefined;
115
+ fbc?: string | undefined;
116
+ fbp?: string | undefined;
117
+ gclid?: string | undefined;
118
+ utm_source?: string | undefined;
119
+ utm_medium?: string | undefined;
120
+ utm_campaign?: string | undefined;
121
+ utm_term?: string | undefined;
122
+ utm_content?: string | undefined;
123
+ };
124
+ properties: Record<string, string | number | boolean | null>;
125
+ }, {
126
+ visitor_id: bigint;
127
+ name: string;
128
+ tags: {
129
+ os?: string | undefined;
130
+ os_name?: string | undefined;
131
+ os_version?: string | undefined;
132
+ browser?: string | undefined;
133
+ browser_name?: string | undefined;
134
+ browser_version?: string | undefined;
135
+ platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
136
+ device?: string | undefined;
137
+ device_id?: string | undefined;
138
+ device_type?: string | undefined;
139
+ device_vendor?: string | undefined;
140
+ device_pixel_ratio?: string | undefined;
141
+ screen_resolution?: string | undefined;
142
+ release?: string | undefined;
143
+ language?: string | undefined;
144
+ timezone?: string | undefined;
145
+ environment?: "development" | "production" | undefined;
146
+ source_url?: string | undefined;
147
+ source?: "web" | "app" | "offline" | undefined;
148
+ fbc?: string | undefined;
149
+ fbp?: string | undefined;
150
+ gclid?: string | undefined;
151
+ utm_source?: string | undefined;
152
+ utm_medium?: string | undefined;
153
+ utm_campaign?: string | undefined;
154
+ utm_term?: string | undefined;
155
+ utm_content?: string | undefined;
156
+ };
157
+ properties: Record<string, string | number | boolean | null>;
158
+ }>;
159
+ declare const createVisitorSchema: z.ZodObject<{
160
+ device_id: z.ZodString;
161
+ properties: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, Record<string, string | number | boolean | null>, Record<string, string | number | boolean | null>>;
162
+ }, "strip", z.ZodTypeAny, {
163
+ device_id: string;
164
+ properties: Record<string, string | number | boolean | null>;
165
+ }, {
166
+ device_id: string;
167
+ properties: Record<string, string | number | boolean | null>;
168
+ }>;
169
+ declare const updateVisitorSchema: z.ZodObject<{
170
+ properties: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, Record<string, string | number | boolean | null>, Record<string, string | number | boolean | null>>;
171
+ }, "strip", z.ZodTypeAny, {
172
+ properties: Record<string, string | number | boolean | null>;
173
+ }, {
174
+ properties: Record<string, string | number | boolean | null>;
175
+ }>;
176
+
177
+ export { createTrackEventSchema, createVisitorSchema, updateVisitorSchema };
@@ -0,0 +1,58 @@
1
+ // src/schema/index.ts
2
+ import { z } from "zod";
3
+ var createTrackEventSchema = z.object({
4
+ name: z.string().trim().min(1).max(64),
5
+ visitor_id: z.coerce.bigint(),
6
+ tags: z.object({
7
+ os: z.string().optional(),
8
+ os_name: z.string().optional(),
9
+ os_version: z.string().optional(),
10
+ browser: z.string().optional(),
11
+ browser_name: z.string().optional(),
12
+ browser_version: z.string().optional(),
13
+ platform: z.enum(["ios", "android", "web", "macos", "windows", "linux", "unknown"]).optional(),
14
+ device: z.string().optional(),
15
+ device_id: z.string().trim().min(1).max(36).optional(),
16
+ device_type: z.string().optional(),
17
+ device_vendor: z.string().optional(),
18
+ device_pixel_ratio: z.string().optional(),
19
+ screen_resolution: z.string().regex(/^\d+x\d+$/).transform((v) => v).optional(),
20
+ release: z.string().optional(),
21
+ language: z.string().optional(),
22
+ timezone: z.string().optional(),
23
+ environment: z.enum(["development", "production"]).optional(),
24
+ source_url: z.string().optional(),
25
+ source: z.enum(["web", "app", "offline"]).optional(),
26
+ fbc: z.string().optional(),
27
+ fbp: z.string().optional(),
28
+ gclid: z.string().optional(),
29
+ utm_source: z.string().optional(),
30
+ utm_medium: z.string().optional(),
31
+ utm_campaign: z.string().optional(),
32
+ utm_term: z.string().optional(),
33
+ utm_content: z.string().optional()
34
+ }),
35
+ properties: z.record(
36
+ z.string().trim().min(1).max(128),
37
+ z.union([z.string().max(512), z.number(), z.boolean(), z.null()])
38
+ ).refine((data) => Object.keys(data).length <= 64)
39
+ });
40
+ var createVisitorSchema = z.object({
41
+ device_id: z.string().trim().min(1).max(36),
42
+ properties: z.record(
43
+ z.string().trim().min(1).max(128),
44
+ z.union([z.string().max(512), z.number(), z.boolean(), z.null()])
45
+ ).refine((data) => Object.keys(data).length <= 64)
46
+ });
47
+ var updateVisitorSchema = z.object({
48
+ properties: z.record(
49
+ z.string().trim().min(1).max(128),
50
+ z.union([z.string().max(512), z.number(), z.boolean(), z.null()])
51
+ ).refine((data) => Object.keys(data).length <= 64)
52
+ });
53
+ export {
54
+ createTrackEventSchema,
55
+ createVisitorSchema,
56
+ updateVisitorSchema
57
+ };
58
+ //# sourceMappingURL=index.mjs.map