@shware/analytics 2.7.0 → 2.8.1

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 (92) hide show
  1. package/README.md +4 -0
  2. package/dist/next/index.cjs +32 -43
  3. package/dist/next/index.cjs.map +1 -1
  4. package/dist/next/index.d.cts +8 -14
  5. package/dist/next/index.d.ts +8 -14
  6. package/dist/next/index.mjs +31 -39
  7. package/dist/next/index.mjs.map +1 -1
  8. package/dist/react-router/index.cjs +32 -43
  9. package/dist/react-router/index.cjs.map +1 -1
  10. package/dist/react-router/index.d.cts +8 -14
  11. package/dist/react-router/index.d.ts +8 -14
  12. package/dist/react-router/index.mjs +31 -39
  13. package/dist/react-router/index.mjs.map +1 -1
  14. package/dist/schema/index.cjs +85 -148
  15. package/dist/schema/index.cjs.map +1 -1
  16. package/dist/schema/index.d.cts +81 -1
  17. package/dist/schema/index.d.ts +81 -1
  18. package/dist/schema/index.mjs +83 -148
  19. package/dist/schema/index.mjs.map +1 -1
  20. package/dist/server/{conversions-api.cjs → meta-conversions-api.cjs} +5 -5
  21. package/dist/server/meta-conversions-api.cjs.map +1 -0
  22. package/dist/server/{conversions-api.mjs → meta-conversions-api.mjs} +2 -2
  23. package/dist/server/meta-conversions-api.mjs.map +1 -0
  24. package/dist/server/reddit-conversions-api.cjs +88 -0
  25. package/dist/server/reddit-conversions-api.cjs.map +1 -0
  26. package/dist/server/reddit-conversions-api.d.cts +75 -0
  27. package/dist/server/reddit-conversions-api.d.ts +75 -0
  28. package/dist/server/reddit-conversions-api.mjs +62 -0
  29. package/dist/server/reddit-conversions-api.mjs.map +1 -0
  30. package/dist/third-parties/google-analytics.cjs +48 -0
  31. package/dist/third-parties/google-analytics.cjs.map +1 -0
  32. package/dist/third-parties/google-analytics.d.cts +12 -0
  33. package/dist/third-parties/google-analytics.d.ts +12 -0
  34. package/dist/third-parties/google-analytics.mjs +22 -0
  35. package/dist/third-parties/google-analytics.mjs.map +1 -0
  36. package/dist/third-parties/hotjar.cjs +2 -0
  37. package/dist/third-parties/hotjar.cjs.map +1 -0
  38. package/dist/third-parties/hotjar.d.cts +2 -0
  39. package/dist/third-parties/hotjar.d.ts +2 -0
  40. package/dist/third-parties/hotjar.mjs +1 -0
  41. package/dist/third-parties/hotjar.mjs.map +1 -0
  42. package/dist/third-parties/index.cjs +43 -0
  43. package/dist/third-parties/index.cjs.map +1 -0
  44. package/dist/third-parties/index.d.cts +8 -0
  45. package/dist/third-parties/index.d.ts +8 -0
  46. package/dist/third-parties/index.mjs +13 -0
  47. package/dist/third-parties/index.mjs.map +1 -0
  48. package/dist/third-parties/meta-pixel.cjs +68 -0
  49. package/dist/third-parties/meta-pixel.cjs.map +1 -0
  50. package/dist/third-parties/meta-pixel.d.cts +13 -0
  51. package/dist/third-parties/meta-pixel.d.ts +13 -0
  52. package/dist/third-parties/meta-pixel.mjs +42 -0
  53. package/dist/third-parties/meta-pixel.mjs.map +1 -0
  54. package/dist/third-parties/reddit-pixel.cjs +60 -0
  55. package/dist/third-parties/reddit-pixel.cjs.map +1 -0
  56. package/dist/third-parties/reddit-pixel.d.cts +13 -0
  57. package/dist/third-parties/reddit-pixel.d.ts +13 -0
  58. package/dist/third-parties/reddit-pixel.mjs +34 -0
  59. package/dist/third-parties/reddit-pixel.mjs.map +1 -0
  60. package/dist/track/fbq.cjs.map +1 -1
  61. package/dist/track/fbq.d.cts +2 -2
  62. package/dist/track/fbq.d.ts +2 -2
  63. package/dist/track/fbq.mjs.map +1 -1
  64. package/dist/track/rdt.cjs +104 -0
  65. package/dist/track/rdt.cjs.map +1 -0
  66. package/dist/track/rdt.d.cts +94 -0
  67. package/dist/track/rdt.d.ts +94 -0
  68. package/dist/track/rdt.mjs +78 -0
  69. package/dist/track/rdt.mjs.map +1 -0
  70. package/dist/track/types.cjs.map +1 -1
  71. package/dist/track/types.d.cts +4 -3
  72. package/dist/track/types.d.ts +4 -3
  73. package/dist/{react/index.cjs → utils/field.cjs} +11 -9
  74. package/dist/utils/field.cjs.map +1 -0
  75. package/dist/utils/field.d.cts +3 -0
  76. package/dist/utils/field.d.ts +3 -0
  77. package/dist/utils/field.mjs +10 -0
  78. package/dist/utils/field.mjs.map +1 -0
  79. package/dist/web/index.cjs +3 -0
  80. package/dist/web/index.cjs.map +1 -1
  81. package/dist/web/index.mjs +3 -0
  82. package/dist/web/index.mjs.map +1 -1
  83. package/package.json +15 -10
  84. package/dist/react/index.cjs.map +0 -1
  85. package/dist/react/index.d.cts +0 -3
  86. package/dist/react/index.d.ts +0 -3
  87. package/dist/react/index.mjs +0 -8
  88. package/dist/react/index.mjs.map +0 -1
  89. package/dist/server/conversions-api.cjs.map +0 -1
  90. package/dist/server/conversions-api.mjs.map +0 -1
  91. /package/dist/server/{conversions-api.d.cts → meta-conversions-api.d.cts} +0 -0
  92. /package/dist/server/{conversions-api.d.ts → meta-conversions-api.d.ts} +0 -0
@@ -3,7 +3,6 @@ import { useEffect } from "react";
3
3
  import { useLocation } from "react-router";
4
4
  import { onCLS, onFCP, onINP, onLCP, onTTFB } from "web-vitals";
5
5
  import { usePageViewAnalytics } from "../hooks/use-page-view-analytics.mjs";
6
- import { mapFBEvent } from "../track/fbq.mjs";
7
6
  import { track } from "../track/index.mjs";
8
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
8
  function useReportWebVitals(reportWebVitalsFn) {
@@ -15,41 +14,12 @@ function useReportWebVitals(reportWebVitalsFn) {
15
14
  onTTFB(reportWebVitalsFn);
16
15
  }, [reportWebVitalsFn]);
17
16
  }
18
- function sendGAEvent(name, properties) {
19
- if (typeof window === "undefined" || !window.gtag) {
20
- console.warn("gtag has not been initialized");
21
- return;
22
- }
23
- window.gtag("event", name, properties);
24
- }
25
- function setGAUser({ user_id, data, properties }) {
26
- if (!window.gtag) {
27
- console.warn("GA has not been initialized");
28
- return;
29
- }
30
- if (user_id) window.gtag("set", "user_id", user_id);
31
- if (data) window.gtag("set", "user_data", data);
32
- if (properties) window.gtag("set", "user_properties", properties);
33
- }
34
- function sendFBEvent(name, properties, event_id) {
35
- if (typeof window === "undefined" || !window.fbq) {
36
- console.warn("fbq has not been initialized");
37
- return;
38
- }
39
- const { fbq } = window;
40
- const options = { eventID: event_id };
41
- const [type, fbEventName, fbEventProperties] = mapFBEvent(name, properties);
42
- if (type === "track") {
43
- fbq(type, fbEventName, fbEventProperties, options);
44
- } else {
45
- fbq(type, fbEventName, fbEventProperties, options);
46
- }
47
- }
48
17
  function Analytics({
49
18
  gaId,
50
19
  nonce,
51
20
  debugMode,
52
- pixelId,
21
+ metaPixelId,
22
+ redditPixelId,
53
23
  hotjarId,
54
24
  facebookAppId,
55
25
  reportWebVitals = true
@@ -98,11 +68,11 @@ function Analytics({
98
68
  }
99
69
  )
100
70
  ] }),
101
- pixelId && /* @__PURE__ */ jsx(
71
+ metaPixelId && /* @__PURE__ */ jsx(
102
72
  "script",
103
73
  {
104
74
  async: true,
105
- id: "pixel",
75
+ id: "meta-pixel",
106
76
  dangerouslySetInnerHTML: {
107
77
  __html: `
108
78
  !(function (f, b, e, v, n, t, s) {
@@ -121,11 +91,36 @@ function Analytics({
121
91
  s = b.getElementsByTagName(e)[0];
122
92
  s.parentNode.insertBefore(t, s);
123
93
  })(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');
124
- fbq('init', '${pixelId}');
94
+ fbq('init', '${metaPixelId}');
125
95
  fbq('track', 'PageView');`
126
96
  }
127
97
  }
128
98
  ),
99
+ redditPixelId && /* @__PURE__ */ jsx(
100
+ "script",
101
+ {
102
+ async: true,
103
+ id: "reddit-pixel",
104
+ dangerouslySetInnerHTML: {
105
+ __html: `
106
+ !function(w,d) {
107
+ if(!w.rdt) {
108
+ var p = w.rdt = function() {
109
+ p.sendEvent ? p.sendEvent.apply(p,arguments) : p.callQueue.push(arguments)
110
+ };
111
+ p.callQueue = [];
112
+ var t = d.createElement("script");
113
+ t.src = "https://www.redditstatic.com/ads/pixel.js";
114
+ t.async = !0;
115
+ var s = d.getElementsByTagName("script")[0];
116
+ s.parentNode.insertBefore(t,s)
117
+ }
118
+ }(window, document);
119
+ rdt('init', '${redditPixelId}');
120
+ rdt('track', 'PageVisit');`
121
+ }
122
+ }
123
+ ),
129
124
  hotjarId && /* @__PURE__ */ jsx(
130
125
  "script",
131
126
  {
@@ -148,9 +143,6 @@ function Analytics({
148
143
  ] });
149
144
  }
150
145
  export {
151
- Analytics,
152
- sendFBEvent,
153
- sendGAEvent,
154
- setGAUser
146
+ Analytics
155
147
  };
156
148
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation } from 'react-router';\nimport { type Metric, onCLS, onFCP, onINP, onLCP, onTTFB } from 'web-vitals';\nimport { usePageViewAnalytics } from '../hooks/use-page-view-analytics';\nimport { mapFBEvent } from '../track/fbq';\nimport { track } from '../track/index';\nimport type { Pixel, PixelId } from '../track/fbq';\nimport type { GaId, Gtag, GtmId } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport type { UpdateVisitorDTO } from '../visitor/types';\n\ntype HotjarId = `${number}`;\n\nfunction useReportWebVitals(reportWebVitalsFn: (metric: Metric) => void) {\n useEffect(() => {\n onCLS(reportWebVitalsFn);\n onLCP(reportWebVitalsFn);\n onINP(reportWebVitalsFn);\n onFCP(reportWebVitalsFn);\n onTTFB(reportWebVitalsFn);\n }, [reportWebVitalsFn]);\n}\n\ndeclare global {\n interface Window extends Gtag, Pixel {}\n}\n\ninterface Props {\n gaId?: GaId;\n gtmId?: GtmId;\n pixelId?: PixelId;\n hotjarId?: HotjarId;\n facebookAppId?: string;\n nonce?: string;\n debugMode?: boolean;\n reportWebVitals?: boolean;\n}\n\nexport function sendGAEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>\n) {\n if (typeof window === 'undefined' || !window.gtag) {\n console.warn('gtag has not been initialized');\n return;\n }\n window.gtag('event', name, properties);\n}\n\nexport function setGAUser({ user_id, data, properties }: UpdateVisitorDTO) {\n if (!window.gtag) {\n console.warn('GA has not been initialized');\n return;\n }\n if (user_id) window.gtag('set', 'user_id', user_id);\n if (data) window.gtag('set', 'user_data', data);\n if (properties) window.gtag('set', 'user_properties', properties);\n}\n\nexport function sendFBEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n event_id?: string\n) {\n if (typeof window === 'undefined' || !window.fbq) {\n console.warn('fbq has not been initialized');\n return;\n }\n const { fbq } = window;\n const options = { eventID: event_id };\n const [type, fbEventName, fbEventProperties] = mapFBEvent(name, properties);\n if (type === 'track') {\n fbq(type, fbEventName, fbEventProperties, options);\n } else {\n fbq(type, fbEventName, fbEventProperties, options);\n }\n}\n\nexport function Analytics({\n gaId,\n nonce,\n debugMode,\n pixelId,\n hotjarId,\n facebookAppId,\n reportWebVitals = true,\n}: Props) {\n const { pathname } = useLocation();\n usePageViewAnalytics(pathname);\n\n useReportWebVitals((metric) => {\n if (!reportWebVitals) return;\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, properties);\n });\n\n return (\n <>\n {facebookAppId && <meta property=\"fb:app_id\" content={facebookAppId} />}\n {gaId && (\n <>\n <script\n async\n id=\"gtag\"\n nonce={nonce}\n src={`https://www.googletagmanager.com/gtag/js?id=${gaId}`}\n />\n <script\n async\n nonce={nonce}\n id=\"gtag-init\"\n dangerouslySetInnerHTML={{\n __html: `\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '${gaId}'${debugMode ? \" ,{ 'debug_mode': true }\" : ''});\n `,\n }}\n />\n </>\n )}\n {pixelId && (\n <script\n async\n id=\"pixel\"\n dangerouslySetInnerHTML={{\n __html: `\n !(function (f, b, e, v, n, t, s) {\n if (f.fbq) return;\n n = f.fbq = function () {\n n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);\n };\n if (!f._fbq) f._fbq = n;\n n.push = n;\n n.loaded = !0;\n n.version = '2.0';\n n.queue = [];\n t = b.createElement(e);\n t.async = !0;\n t.src = v;\n s = b.getElementsByTagName(e)[0];\n s.parentNode.insertBefore(t, s);\n })(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');\n fbq('init', '${pixelId}');\n fbq('track', 'PageView');`,\n }}\n />\n )}\n {hotjarId && (\n <script\n async\n id=\"hotjar\"\n dangerouslySetInnerHTML={{\n __html: `\n (function(h,o,t,j,a,r){\n h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\n h._hjSettings={hjid:${hotjarId},hjsv:6};\n a=o.getElementsByTagName('head')[0];\n r=o.createElement('script');r.async=1;\n r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\n a.appendChild(r);\n })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');\n `,\n }}\n />\n )}\n </>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation } from 'react-router';\nimport { type Metric, onCLS, onFCP, onINP, onLCP, onTTFB } from 'web-vitals';\nimport { usePageViewAnalytics } from '../hooks/use-page-view-analytics';\nimport { track } from '../track/index';\nimport type { PixelId as MetaPixelId } from '../track/fbq';\nimport type { GaId, GtmId } from '../track/gtag';\nimport type { PixelId as RedditPixelId } from '../track/rdt';\n\ntype HotjarId = `${number}`;\n\nfunction useReportWebVitals(reportWebVitalsFn: (metric: Metric) => void) {\n useEffect(() => {\n onCLS(reportWebVitalsFn);\n onLCP(reportWebVitalsFn);\n onINP(reportWebVitalsFn);\n onFCP(reportWebVitalsFn);\n onTTFB(reportWebVitalsFn);\n }, [reportWebVitalsFn]);\n}\n\ninterface Props {\n gaId?: GaId;\n gtmId?: GtmId;\n metaPixelId?: MetaPixelId;\n redditPixelId?: RedditPixelId;\n hotjarId?: HotjarId;\n facebookAppId?: string;\n nonce?: string;\n debugMode?: boolean;\n reportWebVitals?: boolean;\n}\n\nexport function Analytics({\n gaId,\n nonce,\n debugMode,\n metaPixelId,\n redditPixelId,\n hotjarId,\n facebookAppId,\n reportWebVitals = true,\n}: Props) {\n const { pathname } = useLocation();\n usePageViewAnalytics(pathname);\n\n useReportWebVitals((metric) => {\n if (!reportWebVitals) return;\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, properties);\n });\n\n return (\n <>\n {facebookAppId && <meta property=\"fb:app_id\" content={facebookAppId} />}\n {gaId && (\n <>\n <script\n async\n id=\"gtag\"\n nonce={nonce}\n src={`https://www.googletagmanager.com/gtag/js?id=${gaId}`}\n />\n <script\n async\n nonce={nonce}\n id=\"gtag-init\"\n dangerouslySetInnerHTML={{\n __html: `\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', '${gaId}'${debugMode ? \" ,{ 'debug_mode': true }\" : ''});\n `,\n }}\n />\n </>\n )}\n {metaPixelId && (\n <script\n async\n id=\"meta-pixel\"\n dangerouslySetInnerHTML={{\n __html: `\n !(function (f, b, e, v, n, t, s) {\n if (f.fbq) return;\n n = f.fbq = function () {\n n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);\n };\n if (!f._fbq) f._fbq = n;\n n.push = n;\n n.loaded = !0;\n n.version = '2.0';\n n.queue = [];\n t = b.createElement(e);\n t.async = !0;\n t.src = v;\n s = b.getElementsByTagName(e)[0];\n s.parentNode.insertBefore(t, s);\n })(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');\n fbq('init', '${metaPixelId}');\n fbq('track', 'PageView');`,\n }}\n />\n )}\n {redditPixelId && (\n <script\n async\n id=\"reddit-pixel\"\n dangerouslySetInnerHTML={{\n __html: `\n !function(w,d) {\n if(!w.rdt) {\n var p = w.rdt = function() {\n p.sendEvent ? p.sendEvent.apply(p,arguments) : p.callQueue.push(arguments)\n };\n p.callQueue = [];\n var t = d.createElement(\"script\");\n t.src = \"https://www.redditstatic.com/ads/pixel.js\";\n t.async = !0;\n var s = d.getElementsByTagName(\"script\")[0];\n s.parentNode.insertBefore(t,s)\n }\n }(window, document);\n rdt('init', '${redditPixelId}');\n rdt('track', 'PageVisit');`,\n }}\n />\n )}\n {hotjarId && (\n <script\n async\n id=\"hotjar\"\n dangerouslySetInnerHTML={{\n __html: `\n (function(h,o,t,j,a,r){\n h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\n h._hjSettings={hjid:${hotjarId},hjsv:6};\n a=o.getElementsByTagName('head')[0];\n r=o.createElement('script');r.async=1;\n r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\n a.appendChild(r);\n })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');\n `,\n }}\n />\n )}\n </>\n );\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,SAAS,mBAAmB;AAC5B,SAAsB,OAAO,OAAO,OAAO,OAAO,cAAc;AAChE,SAAS,4BAA4B;AACrC,SAAS,aAAa;AAyDE,SAEhB,UAFgB,KAEhB,YAFgB;AAlDxB,SAAS,mBAAmB,mBAA6C;AACvE,YAAU,MAAM;AACd,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,WAAO,iBAAiB;AAAA,EAC1B,GAAG,CAAC,iBAAiB,CAAC;AACxB;AAcO,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAkB;AACpB,GAAU;AACR,QAAM,EAAE,SAAS,IAAI,YAAY;AACjC,uBAAqB,QAAQ;AAE7B,qBAAmB,CAAC,WAAW;AAC7B,QAAI,CAAC,gBAAiB;AACtB,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,MAAM,UAAU;AAAA,EAC/B,CAAC;AAED,SACE,iCACG;AAAA,qBAAiB,oBAAC,UAAK,UAAS,aAAY,SAAS,eAAe;AAAA,IACpE,QACC,iCACE;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAK;AAAA,UACL,IAAG;AAAA,UACH;AAAA,UACA,KAAK,+CAA+C,IAAI;AAAA;AAAA,MAC1D;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,OAAK;AAAA,UACL;AAAA,UACA,IAAG;AAAA,UACH,yBAAyB;AAAA,YACvB,QAAQ;AAAA;AAAA;AAAA;AAAA,gCAIU,IAAI,IAAI,YAAY,6BAA6B,EAAE;AAAA;AAAA,UAEvE;AAAA;AAAA,MACF;AAAA,OACF;AAAA,IAED,eACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAK;AAAA,QACL,IAAG;AAAA,QACH,yBAAyB;AAAA,UACvB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAiBO,WAAW;AAAA;AAAA,QAE5B;AAAA;AAAA,IACF;AAAA,IAED,iBACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAK;AAAA,QACL,IAAG;AAAA,QACH,yBAAyB;AAAA,UACvB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAcO,aAAa;AAAA;AAAA,QAE9B;AAAA;AAAA,IACF;AAAA,IAED,YACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAK;AAAA,QACL,IAAG;AAAA,QACH,yBAAyB;AAAA,UACvB,QAAQ;AAAA;AAAA;AAAA,oCAGgB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAOlC;AAAA;AAAA,IACF;AAAA,KAEJ;AAEJ;","names":[]}
@@ -25,6 +25,8 @@ __export(schema_exports, {
25
25
  createTrackEventSchema: () => createTrackEventSchema,
26
26
  createTrackEventSchemaV1: () => createTrackEventSchemaV1,
27
27
  createVisitorSchema: () => createVisitorSchema,
28
+ propertiesSchema: () => propertiesSchema,
29
+ tagsSchema: () => tagsSchema,
28
30
  updateVisitorSchema: () => updateVisitorSchema
29
31
  });
30
32
  module.exports = __toCommonJS(schema_exports);
@@ -35,85 +37,90 @@ var items = (0, import_mini.array)(
35
37
  (0, import_mini.union)([(0, import_mini.string)().check((0, import_mini.maxLength)(512)), (0, import_mini.number)(), (0, import_mini.boolean)(), (0, import_mini.null)()])
36
38
  )
37
39
  );
40
+ var tagsSchema = (0, import_mini.object)({
41
+ os: (0, import_mini.optional)((0, import_mini.string)()),
42
+ os_name: (0, import_mini.optional)((0, import_mini.string)()),
43
+ os_version: (0, import_mini.optional)((0, import_mini.string)()),
44
+ browser: (0, import_mini.optional)((0, import_mini.string)()),
45
+ browser_name: (0, import_mini.optional)((0, import_mini.string)()),
46
+ browser_version: (0, import_mini.optional)((0, import_mini.string)()),
47
+ platform: (0, import_mini.optional)((0, import_mini.enum)(["ios", "android", "web", "macos", "windows", "linux", "unknown"])),
48
+ device: (0, import_mini.optional)((0, import_mini.string)()),
49
+ device_id: (0, import_mini.optional)((0, import_mini.string)().check((0, import_mini.trim)(), (0, import_mini.minLength)(1), (0, import_mini.maxLength)(36))),
50
+ device_type: (0, import_mini.optional)((0, import_mini.string)()),
51
+ device_vendor: (0, import_mini.optional)((0, import_mini.string)()),
52
+ device_pixel_ratio: (0, import_mini.optional)((0, import_mini.string)()),
53
+ screen_width: (0, import_mini.optional)((0, import_mini.number)()),
54
+ screen_height: (0, import_mini.optional)((0, import_mini.number)()),
55
+ screen_resolution: (0, import_mini.optional)(
56
+ (0, import_mini.pipe)(
57
+ (0, import_mini.string)().check((0, import_mini.regex)(/^\d+x\d+$/)),
58
+ (0, import_mini.transform)((v) => v)
59
+ )
60
+ ),
61
+ release: (0, import_mini.optional)((0, import_mini.string)()),
62
+ language: (0, import_mini.optional)((0, import_mini.string)()),
63
+ time_zone: (0, import_mini.optional)((0, import_mini.string)()),
64
+ environment: (0, import_mini.optional)((0, import_mini.enum)(["development", "production"])),
65
+ source_url: (0, import_mini.optional)((0, import_mini.string)()),
66
+ source: (0, import_mini.optional)((0, import_mini.enum)(["web", "app", "offline"])),
67
+ // app info
68
+ advertising_id: (0, import_mini.optional)((0, import_mini.string)()),
69
+ install_referrer: (0, import_mini.optional)((0, import_mini.string)()),
70
+ // meta ads
71
+ fbc: (0, import_mini.optional)((0, import_mini.string)()),
72
+ fbp: (0, import_mini.optional)((0, import_mini.string)()),
73
+ fbclid: (0, import_mini.optional)((0, import_mini.string)()),
74
+ ad_id: (0, import_mini.optional)((0, import_mini.string)()),
75
+ ad_name: (0, import_mini.optional)((0, import_mini.string)()),
76
+ adset_id: (0, import_mini.optional)((0, import_mini.string)()),
77
+ adset_name: (0, import_mini.optional)((0, import_mini.string)()),
78
+ campaign_id: (0, import_mini.optional)((0, import_mini.string)()),
79
+ campaign_name: (0, import_mini.optional)((0, import_mini.string)()),
80
+ placement: (0, import_mini.optional)((0, import_mini.string)()),
81
+ site_source_name: (0, import_mini.optional)((0, import_mini.string)()),
82
+ // google ads
83
+ gclid: (0, import_mini.optional)((0, import_mini.string)()),
84
+ gclsrc: (0, import_mini.optional)((0, import_mini.string)()),
85
+ gad_source: (0, import_mini.optional)((0, import_mini.string)()),
86
+ gad_campaignid: (0, import_mini.optional)((0, import_mini.string)()),
87
+ // reddit ads
88
+ rdt_cid: (0, import_mini.optional)((0, import_mini.string)()),
89
+ rdt_uuid: (0, import_mini.optional)((0, import_mini.string)()),
90
+ // click ids
91
+ dclid: (0, import_mini.optional)((0, import_mini.string)()),
92
+ ko_click_id: (0, import_mini.optional)((0, import_mini.string)()),
93
+ li_fat_id: (0, import_mini.optional)((0, import_mini.string)()),
94
+ msclkid: (0, import_mini.optional)((0, import_mini.string)()),
95
+ sccid: (0, import_mini.optional)((0, import_mini.string)()),
96
+ ttclid: (0, import_mini.optional)((0, import_mini.string)()),
97
+ twclid: (0, import_mini.optional)((0, import_mini.string)()),
98
+ wbraid: (0, import_mini.optional)((0, import_mini.string)()),
99
+ yclid: (0, import_mini.optional)((0, import_mini.string)()),
100
+ // utm params
101
+ utm_source: (0, import_mini.optional)((0, import_mini.string)()),
102
+ utm_medium: (0, import_mini.optional)((0, import_mini.string)()),
103
+ utm_campaign: (0, import_mini.optional)((0, import_mini.string)()),
104
+ utm_term: (0, import_mini.optional)((0, import_mini.string)()),
105
+ utm_content: (0, import_mini.optional)((0, import_mini.string)()),
106
+ utm_id: (0, import_mini.optional)((0, import_mini.string)()),
107
+ utm_source_platform: (0, import_mini.optional)((0, import_mini.string)()),
108
+ utm_creative_format: (0, import_mini.optional)((0, import_mini.string)()),
109
+ utm_marketing_tactic: (0, import_mini.optional)((0, import_mini.string)())
110
+ });
111
+ var propertiesSchema = (0, import_mini.optional)(
112
+ (0, import_mini.record)(
113
+ (0, import_mini.string)().check((0, import_mini.trim)(), (0, import_mini.minLength)(1), (0, import_mini.maxLength)(128)),
114
+ (0, import_mini.union)([(0, import_mini.string)().check((0, import_mini.maxLength)(512)), (0, import_mini.number)(), (0, import_mini.boolean)(), (0, import_mini.null)(), items])
115
+ ).check((0, import_mini.refine)((data) => Object.keys(data).length <= 64))
116
+ );
38
117
  var createTrackEventSchemaV1 = (0, import_mini.array)(
39
118
  (0, import_mini.object)({
40
119
  name: (0, import_mini.string)().check((0, import_mini.trim)(), (0, import_mini.minLength)(1), (0, import_mini.maxLength)(64)),
41
120
  visitor_id: import_mini.coerce.bigint(),
42
121
  timestamp: import_mini.iso.datetime(),
43
- tags: (0, import_mini.object)({
44
- os: (0, import_mini.optional)((0, import_mini.string)()),
45
- os_name: (0, import_mini.optional)((0, import_mini.string)()),
46
- os_version: (0, import_mini.optional)((0, import_mini.string)()),
47
- browser: (0, import_mini.optional)((0, import_mini.string)()),
48
- browser_name: (0, import_mini.optional)((0, import_mini.string)()),
49
- browser_version: (0, import_mini.optional)((0, import_mini.string)()),
50
- platform: (0, import_mini.optional)((0, import_mini.enum)(["ios", "android", "web", "macos", "windows", "linux", "unknown"])),
51
- device: (0, import_mini.optional)((0, import_mini.string)()),
52
- device_id: (0, import_mini.optional)((0, import_mini.string)().check((0, import_mini.trim)(), (0, import_mini.minLength)(1), (0, import_mini.maxLength)(36))),
53
- device_type: (0, import_mini.optional)((0, import_mini.string)()),
54
- device_vendor: (0, import_mini.optional)((0, import_mini.string)()),
55
- device_pixel_ratio: (0, import_mini.optional)((0, import_mini.string)()),
56
- screen_width: (0, import_mini.optional)((0, import_mini.number)()),
57
- screen_height: (0, import_mini.optional)((0, import_mini.number)()),
58
- screen_resolution: (0, import_mini.optional)(
59
- (0, import_mini.pipe)(
60
- (0, import_mini.string)().check((0, import_mini.regex)(/^\d+x\d+$/)),
61
- (0, import_mini.transform)((v) => v)
62
- )
63
- ),
64
- release: (0, import_mini.optional)((0, import_mini.string)()),
65
- language: (0, import_mini.optional)((0, import_mini.string)()),
66
- time_zone: (0, import_mini.optional)((0, import_mini.string)()),
67
- environment: (0, import_mini.optional)((0, import_mini.enum)(["development", "production"])),
68
- source_url: (0, import_mini.optional)((0, import_mini.string)()),
69
- source: (0, import_mini.optional)((0, import_mini.enum)(["web", "app", "offline"])),
70
- // app info
71
- advertising_id: (0, import_mini.optional)((0, import_mini.string)()),
72
- install_referrer: (0, import_mini.optional)((0, import_mini.string)()),
73
- // meta ads
74
- fbc: (0, import_mini.optional)((0, import_mini.string)()),
75
- fbp: (0, import_mini.optional)((0, import_mini.string)()),
76
- fbclid: (0, import_mini.optional)((0, import_mini.string)()),
77
- ad_id: (0, import_mini.optional)((0, import_mini.string)()),
78
- ad_name: (0, import_mini.optional)((0, import_mini.string)()),
79
- adset_id: (0, import_mini.optional)((0, import_mini.string)()),
80
- adset_name: (0, import_mini.optional)((0, import_mini.string)()),
81
- campaign_id: (0, import_mini.optional)((0, import_mini.string)()),
82
- campaign_name: (0, import_mini.optional)((0, import_mini.string)()),
83
- placement: (0, import_mini.optional)((0, import_mini.string)()),
84
- site_source_name: (0, import_mini.optional)((0, import_mini.string)()),
85
- // google ads
86
- gclid: (0, import_mini.optional)((0, import_mini.string)()),
87
- gclsrc: (0, import_mini.optional)((0, import_mini.string)()),
88
- gad_source: (0, import_mini.optional)((0, import_mini.string)()),
89
- gad_campaignid: (0, import_mini.optional)((0, import_mini.string)()),
90
- // click ids
91
- dclid: (0, import_mini.optional)((0, import_mini.string)()),
92
- ko_click_id: (0, import_mini.optional)((0, import_mini.string)()),
93
- li_fat_id: (0, import_mini.optional)((0, import_mini.string)()),
94
- msclkid: (0, import_mini.optional)((0, import_mini.string)()),
95
- sccid: (0, import_mini.optional)((0, import_mini.string)()),
96
- ttclid: (0, import_mini.optional)((0, import_mini.string)()),
97
- twclid: (0, import_mini.optional)((0, import_mini.string)()),
98
- wbraid: (0, import_mini.optional)((0, import_mini.string)()),
99
- yclid: (0, import_mini.optional)((0, import_mini.string)()),
100
- // utm params
101
- utm_source: (0, import_mini.optional)((0, import_mini.string)()),
102
- utm_medium: (0, import_mini.optional)((0, import_mini.string)()),
103
- utm_campaign: (0, import_mini.optional)((0, import_mini.string)()),
104
- utm_term: (0, import_mini.optional)((0, import_mini.string)()),
105
- utm_content: (0, import_mini.optional)((0, import_mini.string)()),
106
- utm_id: (0, import_mini.optional)((0, import_mini.string)()),
107
- utm_source_platform: (0, import_mini.optional)((0, import_mini.string)()),
108
- utm_creative_format: (0, import_mini.optional)((0, import_mini.string)()),
109
- utm_marketing_tactic: (0, import_mini.optional)((0, import_mini.string)())
110
- }),
111
- properties: (0, import_mini.optional)(
112
- (0, import_mini.record)(
113
- (0, import_mini.string)().check((0, import_mini.trim)(), (0, import_mini.minLength)(1), (0, import_mini.maxLength)(128)),
114
- (0, import_mini.union)([(0, import_mini.string)().check((0, import_mini.maxLength)(512)), (0, import_mini.number)(), (0, import_mini.boolean)(), (0, import_mini.null)(), items])
115
- ).check((0, import_mini.refine)((data) => Object.keys(data).length <= 64))
116
- )
122
+ tags: tagsSchema,
123
+ properties: propertiesSchema
117
124
  })
118
125
  ).check((0, import_mini.minLength)(1), (0, import_mini.maxLength)(100));
119
126
  var createTrackEventSchema = (0, import_mini.array)(
@@ -121,80 +128,8 @@ var createTrackEventSchema = (0, import_mini.array)(
121
128
  name: (0, import_mini.string)().check((0, import_mini.trim)(), (0, import_mini.minLength)(1), (0, import_mini.maxLength)(64)),
122
129
  visitor_id: (0, import_mini.uuid)(),
123
130
  timestamp: import_mini.iso.datetime(),
124
- tags: (0, import_mini.object)({
125
- os: (0, import_mini.optional)((0, import_mini.string)()),
126
- os_name: (0, import_mini.optional)((0, import_mini.string)()),
127
- os_version: (0, import_mini.optional)((0, import_mini.string)()),
128
- browser: (0, import_mini.optional)((0, import_mini.string)()),
129
- browser_name: (0, import_mini.optional)((0, import_mini.string)()),
130
- browser_version: (0, import_mini.optional)((0, import_mini.string)()),
131
- platform: (0, import_mini.optional)((0, import_mini.enum)(["ios", "android", "web", "macos", "windows", "linux", "unknown"])),
132
- device: (0, import_mini.optional)((0, import_mini.string)()),
133
- device_id: (0, import_mini.optional)((0, import_mini.string)().check((0, import_mini.trim)(), (0, import_mini.minLength)(1), (0, import_mini.maxLength)(36))),
134
- device_type: (0, import_mini.optional)((0, import_mini.string)()),
135
- device_vendor: (0, import_mini.optional)((0, import_mini.string)()),
136
- device_pixel_ratio: (0, import_mini.optional)((0, import_mini.string)()),
137
- screen_width: (0, import_mini.optional)((0, import_mini.number)()),
138
- screen_height: (0, import_mini.optional)((0, import_mini.number)()),
139
- screen_resolution: (0, import_mini.optional)(
140
- (0, import_mini.pipe)(
141
- (0, import_mini.string)().check((0, import_mini.regex)(/^\d+x\d+$/)),
142
- (0, import_mini.transform)((v) => v)
143
- )
144
- ),
145
- release: (0, import_mini.optional)((0, import_mini.string)()),
146
- language: (0, import_mini.optional)((0, import_mini.string)()),
147
- time_zone: (0, import_mini.optional)((0, import_mini.string)()),
148
- environment: (0, import_mini.optional)((0, import_mini.enum)(["development", "production"])),
149
- source_url: (0, import_mini.optional)((0, import_mini.string)()),
150
- source: (0, import_mini.optional)((0, import_mini.enum)(["web", "app", "offline"])),
151
- // app info
152
- advertising_id: (0, import_mini.optional)((0, import_mini.string)()),
153
- install_referrer: (0, import_mini.optional)((0, import_mini.string)()),
154
- // meta ads
155
- fbc: (0, import_mini.optional)((0, import_mini.string)()),
156
- fbp: (0, import_mini.optional)((0, import_mini.string)()),
157
- fbclid: (0, import_mini.optional)((0, import_mini.string)()),
158
- ad_id: (0, import_mini.optional)((0, import_mini.string)()),
159
- ad_name: (0, import_mini.optional)((0, import_mini.string)()),
160
- adset_id: (0, import_mini.optional)((0, import_mini.string)()),
161
- adset_name: (0, import_mini.optional)((0, import_mini.string)()),
162
- campaign_id: (0, import_mini.optional)((0, import_mini.string)()),
163
- campaign_name: (0, import_mini.optional)((0, import_mini.string)()),
164
- placement: (0, import_mini.optional)((0, import_mini.string)()),
165
- site_source_name: (0, import_mini.optional)((0, import_mini.string)()),
166
- // google ads
167
- gclid: (0, import_mini.optional)((0, import_mini.string)()),
168
- gclsrc: (0, import_mini.optional)((0, import_mini.string)()),
169
- gad_source: (0, import_mini.optional)((0, import_mini.string)()),
170
- gad_campaignid: (0, import_mini.optional)((0, import_mini.string)()),
171
- // click ids
172
- dclid: (0, import_mini.optional)((0, import_mini.string)()),
173
- ko_click_id: (0, import_mini.optional)((0, import_mini.string)()),
174
- li_fat_id: (0, import_mini.optional)((0, import_mini.string)()),
175
- msclkid: (0, import_mini.optional)((0, import_mini.string)()),
176
- sccid: (0, import_mini.optional)((0, import_mini.string)()),
177
- ttclid: (0, import_mini.optional)((0, import_mini.string)()),
178
- twclid: (0, import_mini.optional)((0, import_mini.string)()),
179
- wbraid: (0, import_mini.optional)((0, import_mini.string)()),
180
- yclid: (0, import_mini.optional)((0, import_mini.string)()),
181
- // utm params
182
- utm_source: (0, import_mini.optional)((0, import_mini.string)()),
183
- utm_medium: (0, import_mini.optional)((0, import_mini.string)()),
184
- utm_campaign: (0, import_mini.optional)((0, import_mini.string)()),
185
- utm_term: (0, import_mini.optional)((0, import_mini.string)()),
186
- utm_content: (0, import_mini.optional)((0, import_mini.string)()),
187
- utm_id: (0, import_mini.optional)((0, import_mini.string)()),
188
- utm_source_platform: (0, import_mini.optional)((0, import_mini.string)()),
189
- utm_creative_format: (0, import_mini.optional)((0, import_mini.string)()),
190
- utm_marketing_tactic: (0, import_mini.optional)((0, import_mini.string)())
191
- }),
192
- properties: (0, import_mini.optional)(
193
- (0, import_mini.record)(
194
- (0, import_mini.string)().check((0, import_mini.trim)(), (0, import_mini.minLength)(1), (0, import_mini.maxLength)(128)),
195
- (0, import_mini.union)([(0, import_mini.string)().check((0, import_mini.maxLength)(512)), (0, import_mini.number)(), (0, import_mini.boolean)(), (0, import_mini.null)(), items])
196
- ).check((0, import_mini.refine)((data) => Object.keys(data).length <= 64))
197
- )
131
+ tags: tagsSchema,
132
+ properties: propertiesSchema
198
133
  })
199
134
  ).check((0, import_mini.minLength)(1), (0, import_mini.maxLength)(100));
200
135
  var createVisitorSchema = (0, import_mini.object)({
@@ -274,6 +209,8 @@ var createLinkSchema = (0, import_mini.object)({
274
209
  createTrackEventSchema,
275
210
  createTrackEventSchemaV1,
276
211
  createVisitorSchema,
212
+ propertiesSchema,
213
+ tagsSchema,
277
214
  updateVisitorSchema
278
215
  });
279
216
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import {\n enum as _enum,\n null as _null,\n array,\n boolean,\n coerce,\n email,\n iso,\n maxLength,\n minLength,\n number,\n object,\n optional,\n pipe,\n record,\n refine,\n regex,\n string,\n transform,\n trim,\n union,\n url,\n uuid,\n type z,\n} from 'zod/mini';\n\nconst items = array(\n record(\n string().check(trim(), minLength(1), maxLength(128)),\n union([string().check(maxLength(512)), number(), boolean(), _null()])\n )\n);\n\n/** @deprecated */\nexport const createTrackEventSchemaV1 = array(\n object({\n name: string().check(trim(), minLength(1), maxLength(64)),\n visitor_id: coerce.bigint(),\n timestamp: iso.datetime(),\n tags: object({\n os: optional(string()),\n os_name: optional(string()),\n os_version: optional(string()),\n browser: optional(string()),\n browser_name: optional(string()),\n browser_version: optional(string()),\n platform: optional(_enum(['ios', 'android', 'web', 'macos', 'windows', 'linux', 'unknown'])),\n device: optional(string()),\n device_id: optional(string().check(trim(), minLength(1), maxLength(36))),\n device_type: optional(string()),\n device_vendor: optional(string()),\n device_pixel_ratio: optional(string()),\n screen_width: optional(number()),\n screen_height: optional(number()),\n screen_resolution: optional(\n pipe(\n string().check(regex(/^\\d+x\\d+$/)),\n transform((v) => v as `${number}x${number}`)\n )\n ),\n release: optional(string()),\n language: optional(string()),\n time_zone: optional(string()),\n environment: optional(_enum(['development', 'production'])),\n source_url: optional(string()),\n source: optional(_enum(['web', 'app', 'offline'])),\n // app info\n advertising_id: optional(string()),\n install_referrer: optional(string()),\n // meta ads\n fbc: optional(string()),\n fbp: optional(string()),\n fbclid: optional(string()),\n ad_id: optional(string()),\n ad_name: optional(string()),\n adset_id: optional(string()),\n adset_name: optional(string()),\n campaign_id: optional(string()),\n campaign_name: optional(string()),\n placement: optional(string()),\n site_source_name: optional(string()),\n // google ads\n gclid: optional(string()),\n gclsrc: optional(string()),\n gad_source: optional(string()),\n gad_campaignid: optional(string()),\n // click ids\n dclid: optional(string()),\n ko_click_id: optional(string()),\n li_fat_id: optional(string()),\n msclkid: optional(string()),\n sccid: optional(string()),\n ttclid: optional(string()),\n twclid: optional(string()),\n wbraid: optional(string()),\n yclid: optional(string()),\n // utm params\n utm_source: optional(string()),\n utm_medium: optional(string()),\n utm_campaign: optional(string()),\n utm_term: optional(string()),\n utm_content: optional(string()),\n utm_id: optional(string()),\n utm_source_platform: optional(string()),\n utm_creative_format: optional(string()),\n utm_marketing_tactic: optional(string()),\n }),\n properties: optional(\n record(\n string().check(trim(), minLength(1), maxLength(128)),\n union([string().check(maxLength(512)), number(), boolean(), _null(), items])\n ).check(refine((data) => Object.keys(data).length <= 64))\n ),\n })\n).check(minLength(1), maxLength(100));\n\nexport const createTrackEventSchema = array(\n object({\n name: string().check(trim(), minLength(1), maxLength(64)),\n visitor_id: uuid(),\n timestamp: iso.datetime(),\n tags: object({\n os: optional(string()),\n os_name: optional(string()),\n os_version: optional(string()),\n browser: optional(string()),\n browser_name: optional(string()),\n browser_version: optional(string()),\n platform: optional(_enum(['ios', 'android', 'web', 'macos', 'windows', 'linux', 'unknown'])),\n device: optional(string()),\n device_id: optional(string().check(trim(), minLength(1), maxLength(36))),\n device_type: optional(string()),\n device_vendor: optional(string()),\n device_pixel_ratio: optional(string()),\n screen_width: optional(number()),\n screen_height: optional(number()),\n screen_resolution: optional(\n pipe(\n string().check(regex(/^\\d+x\\d+$/)),\n transform((v) => v as `${number}x${number}`)\n )\n ),\n release: optional(string()),\n language: optional(string()),\n time_zone: optional(string()),\n environment: optional(_enum(['development', 'production'])),\n source_url: optional(string()),\n source: optional(_enum(['web', 'app', 'offline'])),\n // app info\n advertising_id: optional(string()),\n install_referrer: optional(string()),\n // meta ads\n fbc: optional(string()),\n fbp: optional(string()),\n fbclid: optional(string()),\n ad_id: optional(string()),\n ad_name: optional(string()),\n adset_id: optional(string()),\n adset_name: optional(string()),\n campaign_id: optional(string()),\n campaign_name: optional(string()),\n placement: optional(string()),\n site_source_name: optional(string()),\n // google ads\n gclid: optional(string()),\n gclsrc: optional(string()),\n gad_source: optional(string()),\n gad_campaignid: optional(string()),\n // click ids\n dclid: optional(string()),\n ko_click_id: optional(string()),\n li_fat_id: optional(string()),\n msclkid: optional(string()),\n sccid: optional(string()),\n ttclid: optional(string()),\n twclid: optional(string()),\n wbraid: optional(string()),\n yclid: optional(string()),\n // utm params\n utm_source: optional(string()),\n utm_medium: optional(string()),\n utm_campaign: optional(string()),\n utm_term: optional(string()),\n utm_content: optional(string()),\n utm_id: optional(string()),\n utm_source_platform: optional(string()),\n utm_creative_format: optional(string()),\n utm_marketing_tactic: optional(string()),\n }),\n properties: optional(\n record(\n string().check(trim(), minLength(1), maxLength(128)),\n union([string().check(maxLength(512)), number(), boolean(), _null(), items])\n ).check(refine((data) => Object.keys(data).length <= 64))\n ),\n })\n).check(minLength(1), maxLength(100));\n\nexport const createVisitorSchema = object({\n device_id: string().check(trim(), minLength(1), maxLength(36)),\n properties: optional(\n record(\n string().check(trim(), minLength(1), maxLength(128)),\n union([string().check(maxLength(512)), number(), boolean(), _null()])\n ).check(refine((data) => Object.keys(data).length <= 64))\n ),\n});\n\nexport const updateVisitorSchema = object({\n user_id: optional(uuid()),\n properties: optional(\n record(\n string().check(trim(), minLength(1), maxLength(128)),\n union([string().check(maxLength(512)), number(), boolean(), _null()])\n ).check(refine((data) => Object.keys(data).length <= 64))\n ),\n});\n\nexport const createFeedbackSchema = object({\n name: string().check(minLength(1), maxLength(256)),\n email: email().check(maxLength(320)),\n message: string().check(minLength(1), maxLength(65536)),\n});\n\nconst noEmptyString = pipe(\n string().check(maxLength(256)),\n transform((v) => (v ? v : undefined))\n);\n\n/**\n * The schema for creating a link.\n * @see https://support.google.com/analytics/answer/10917952\n * */\nexport const createLinkSchema = object({\n /** The URL that the user is redirected to. */\n url: url().check(minLength(1), maxLength(1024)), // required\n\n /**\n * Campaign ID. Used to identify a specific campaign or promotion. This is a required key for GA4\n * data import. Use the same IDs that you use when uploading campaign cost data.\n */\n utm_id: optional(noEmptyString),\n\n /** Referrer, for example: google, newsletter4, billboard */\n utm_source: string().check(minLength(1), maxLength(256)), // required\n\n /** Marketing medium, for example: cpc, banner, email */\n utm_medium: string().check(minLength(1), maxLength(256)), // required\n\n /** Product, slogan, promo code, for example: spring_sale */\n utm_campaign: string().check(minLength(1), maxLength(256)), // required\n\n /** Paid keyword */\n utm_term: optional(noEmptyString),\n\n /**\n * Use to differentiate creatives. For example, if you have two call-to-action links within the\n * same email message, you can use utm_content and set different values for each so you can tell\n * which version is more effective.\n */\n utm_content: optional(noEmptyString),\n\n /**\n * The platform responsible for directing traffic to a given Analytics property (such as a buying\n * platform that sets budgets and targeting criteria or a platform that manages organic traffic\n * data). For example: Search Ads 360 or Display & Video 360.\n */\n utm_source_platform: optional(noEmptyString),\n\n /**\n * Type of creative, for example: display, native, video, search, utm_creative_format is not\n * currently reported in Google Analytics 4 properties.\n */\n utm_creative_format: optional(noEmptyString),\n\n /**\n * Targeting criteria applied to a campaign, for example: remarketing, prospecting,\n * utm_marketing_tactic is not currently reported in Google Analytics 4 properties.\n * */\n utm_marketing_tactic: optional(noEmptyString),\n});\n\nexport type CreateFeedbackDTO = z.output<typeof createFeedbackSchema>;\nexport type CreateLinkDTO = z.output<typeof createLinkSchema>;\n"],"mappings":"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","names":["_null","_enum"]}
1
+ {"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import {\n enum as _enum,\n null as _null,\n array,\n boolean,\n coerce,\n email,\n iso,\n maxLength,\n minLength,\n number,\n object,\n optional,\n pipe,\n record,\n refine,\n regex,\n string,\n transform,\n trim,\n union,\n url,\n uuid,\n type z,\n} from 'zod/mini';\n\nconst items = array(\n record(\n string().check(trim(), minLength(1), maxLength(128)),\n union([string().check(maxLength(512)), number(), boolean(), _null()])\n )\n);\n\nexport const tagsSchema = object({\n os: optional(string()),\n os_name: optional(string()),\n os_version: optional(string()),\n browser: optional(string()),\n browser_name: optional(string()),\n browser_version: optional(string()),\n platform: optional(_enum(['ios', 'android', 'web', 'macos', 'windows', 'linux', 'unknown'])),\n device: optional(string()),\n device_id: optional(string().check(trim(), minLength(1), maxLength(36))),\n device_type: optional(string()),\n device_vendor: optional(string()),\n device_pixel_ratio: optional(string()),\n screen_width: optional(number()),\n screen_height: optional(number()),\n screen_resolution: optional(\n pipe(\n string().check(regex(/^\\d+x\\d+$/)),\n transform((v) => v as `${number}x${number}`)\n )\n ),\n release: optional(string()),\n language: optional(string()),\n time_zone: optional(string()),\n environment: optional(_enum(['development', 'production'])),\n source_url: optional(string()),\n source: optional(_enum(['web', 'app', 'offline'])),\n // app info\n advertising_id: optional(string()),\n install_referrer: optional(string()),\n // meta ads\n fbc: optional(string()),\n fbp: optional(string()),\n fbclid: optional(string()),\n ad_id: optional(string()),\n ad_name: optional(string()),\n adset_id: optional(string()),\n adset_name: optional(string()),\n campaign_id: optional(string()),\n campaign_name: optional(string()),\n placement: optional(string()),\n site_source_name: optional(string()),\n // google ads\n gclid: optional(string()),\n gclsrc: optional(string()),\n gad_source: optional(string()),\n gad_campaignid: optional(string()),\n // reddit ads\n rdt_cid: optional(string()),\n rdt_uuid: optional(string()),\n // click ids\n dclid: optional(string()),\n ko_click_id: optional(string()),\n li_fat_id: optional(string()),\n msclkid: optional(string()),\n sccid: optional(string()),\n ttclid: optional(string()),\n twclid: optional(string()),\n wbraid: optional(string()),\n yclid: optional(string()),\n // utm params\n utm_source: optional(string()),\n utm_medium: optional(string()),\n utm_campaign: optional(string()),\n utm_term: optional(string()),\n utm_content: optional(string()),\n utm_id: optional(string()),\n utm_source_platform: optional(string()),\n utm_creative_format: optional(string()),\n utm_marketing_tactic: optional(string()),\n});\n\nexport const propertiesSchema = optional(\n record(\n string().check(trim(), minLength(1), maxLength(128)),\n union([string().check(maxLength(512)), number(), boolean(), _null(), items])\n ).check(refine((data) => Object.keys(data).length <= 64))\n);\n\n/** @deprecated */\nexport const createTrackEventSchemaV1 = array(\n object({\n name: string().check(trim(), minLength(1), maxLength(64)),\n visitor_id: coerce.bigint(),\n timestamp: iso.datetime(),\n tags: tagsSchema,\n properties: propertiesSchema,\n })\n).check(minLength(1), maxLength(100));\n\nexport const createTrackEventSchema = array(\n object({\n name: string().check(trim(), minLength(1), maxLength(64)),\n visitor_id: uuid(),\n timestamp: iso.datetime(),\n tags: tagsSchema,\n properties: propertiesSchema,\n })\n).check(minLength(1), maxLength(100));\n\nexport const createVisitorSchema = object({\n device_id: string().check(trim(), minLength(1), maxLength(36)),\n properties: optional(\n record(\n string().check(trim(), minLength(1), maxLength(128)),\n union([string().check(maxLength(512)), number(), boolean(), _null()])\n ).check(refine((data) => Object.keys(data).length <= 64))\n ),\n});\n\nexport const updateVisitorSchema = object({\n user_id: optional(uuid()),\n properties: optional(\n record(\n string().check(trim(), minLength(1), maxLength(128)),\n union([string().check(maxLength(512)), number(), boolean(), _null()])\n ).check(refine((data) => Object.keys(data).length <= 64))\n ),\n});\n\nexport const createFeedbackSchema = object({\n name: string().check(minLength(1), maxLength(256)),\n email: email().check(maxLength(320)),\n message: string().check(minLength(1), maxLength(65536)),\n});\n\nconst noEmptyString = pipe(\n string().check(maxLength(256)),\n transform((v) => (v ? v : undefined))\n);\n\n/**\n * The schema for creating a link.\n * @see https://support.google.com/analytics/answer/10917952\n * */\nexport const createLinkSchema = object({\n /** The URL that the user is redirected to. */\n url: url().check(minLength(1), maxLength(1024)), // required\n\n /**\n * Campaign ID. Used to identify a specific campaign or promotion. This is a required key for GA4\n * data import. Use the same IDs that you use when uploading campaign cost data.\n */\n utm_id: optional(noEmptyString),\n\n /** Referrer, for example: google, newsletter4, billboard */\n utm_source: string().check(minLength(1), maxLength(256)), // required\n\n /** Marketing medium, for example: cpc, banner, email */\n utm_medium: string().check(minLength(1), maxLength(256)), // required\n\n /** Product, slogan, promo code, for example: spring_sale */\n utm_campaign: string().check(minLength(1), maxLength(256)), // required\n\n /** Paid keyword */\n utm_term: optional(noEmptyString),\n\n /**\n * Use to differentiate creatives. For example, if you have two call-to-action links within the\n * same email message, you can use utm_content and set different values for each so you can tell\n * which version is more effective.\n */\n utm_content: optional(noEmptyString),\n\n /**\n * The platform responsible for directing traffic to a given Analytics property (such as a buying\n * platform that sets budgets and targeting criteria or a platform that manages organic traffic\n * data). For example: Search Ads 360 or Display & Video 360.\n */\n utm_source_platform: optional(noEmptyString),\n\n /**\n * Type of creative, for example: display, native, video, search, utm_creative_format is not\n * currently reported in Google Analytics 4 properties.\n */\n utm_creative_format: optional(noEmptyString),\n\n /**\n * Targeting criteria applied to a campaign, for example: remarketing, prospecting,\n * utm_marketing_tactic is not currently reported in Google Analytics 4 properties.\n * */\n utm_marketing_tactic: optional(noEmptyString),\n});\n\nexport type CreateFeedbackDTO = z.output<typeof createFeedbackSchema>;\nexport type CreateLinkDTO = z.output<typeof createLinkSchema>;\n"],"mappings":"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","names":["_null","_enum"]}
@@ -1,5 +1,81 @@
1
1
  import { z, iso } from 'zod/mini';
2
2
 
3
+ declare const tagsSchema: z.ZodMiniObject<{
4
+ os: z.ZodMiniOptional<z.ZodMiniString<string>>;
5
+ os_name: z.ZodMiniOptional<z.ZodMiniString<string>>;
6
+ os_version: z.ZodMiniOptional<z.ZodMiniString<string>>;
7
+ browser: z.ZodMiniOptional<z.ZodMiniString<string>>;
8
+ browser_name: z.ZodMiniOptional<z.ZodMiniString<string>>;
9
+ browser_version: z.ZodMiniOptional<z.ZodMiniString<string>>;
10
+ platform: z.ZodMiniOptional<z.ZodMiniEnum<{
11
+ ios: "ios";
12
+ android: "android";
13
+ web: "web";
14
+ macos: "macos";
15
+ windows: "windows";
16
+ linux: "linux";
17
+ unknown: "unknown";
18
+ }>>;
19
+ device: z.ZodMiniOptional<z.ZodMiniString<string>>;
20
+ device_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
21
+ device_type: z.ZodMiniOptional<z.ZodMiniString<string>>;
22
+ device_vendor: z.ZodMiniOptional<z.ZodMiniString<string>>;
23
+ device_pixel_ratio: z.ZodMiniOptional<z.ZodMiniString<string>>;
24
+ screen_width: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
25
+ screen_height: z.ZodMiniOptional<z.ZodMiniNumber<number>>;
26
+ screen_resolution: z.ZodMiniOptional<z.ZodMiniPipe<z.ZodMiniString<string>, z.ZodMiniTransform<`${number}x${number}`, string>>>;
27
+ release: z.ZodMiniOptional<z.ZodMiniString<string>>;
28
+ language: z.ZodMiniOptional<z.ZodMiniString<string>>;
29
+ time_zone: z.ZodMiniOptional<z.ZodMiniString<string>>;
30
+ environment: z.ZodMiniOptional<z.ZodMiniEnum<{
31
+ development: "development";
32
+ production: "production";
33
+ }>>;
34
+ source_url: z.ZodMiniOptional<z.ZodMiniString<string>>;
35
+ source: z.ZodMiniOptional<z.ZodMiniEnum<{
36
+ web: "web";
37
+ app: "app";
38
+ offline: "offline";
39
+ }>>;
40
+ advertising_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
41
+ install_referrer: z.ZodMiniOptional<z.ZodMiniString<string>>;
42
+ fbc: z.ZodMiniOptional<z.ZodMiniString<string>>;
43
+ fbp: z.ZodMiniOptional<z.ZodMiniString<string>>;
44
+ fbclid: z.ZodMiniOptional<z.ZodMiniString<string>>;
45
+ ad_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
46
+ ad_name: z.ZodMiniOptional<z.ZodMiniString<string>>;
47
+ adset_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
48
+ adset_name: z.ZodMiniOptional<z.ZodMiniString<string>>;
49
+ campaign_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
50
+ campaign_name: z.ZodMiniOptional<z.ZodMiniString<string>>;
51
+ placement: z.ZodMiniOptional<z.ZodMiniString<string>>;
52
+ site_source_name: z.ZodMiniOptional<z.ZodMiniString<string>>;
53
+ gclid: z.ZodMiniOptional<z.ZodMiniString<string>>;
54
+ gclsrc: z.ZodMiniOptional<z.ZodMiniString<string>>;
55
+ gad_source: z.ZodMiniOptional<z.ZodMiniString<string>>;
56
+ gad_campaignid: z.ZodMiniOptional<z.ZodMiniString<string>>;
57
+ rdt_cid: z.ZodMiniOptional<z.ZodMiniString<string>>;
58
+ rdt_uuid: z.ZodMiniOptional<z.ZodMiniString<string>>;
59
+ dclid: z.ZodMiniOptional<z.ZodMiniString<string>>;
60
+ ko_click_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
61
+ li_fat_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
62
+ msclkid: z.ZodMiniOptional<z.ZodMiniString<string>>;
63
+ sccid: z.ZodMiniOptional<z.ZodMiniString<string>>;
64
+ ttclid: z.ZodMiniOptional<z.ZodMiniString<string>>;
65
+ twclid: z.ZodMiniOptional<z.ZodMiniString<string>>;
66
+ wbraid: z.ZodMiniOptional<z.ZodMiniString<string>>;
67
+ yclid: z.ZodMiniOptional<z.ZodMiniString<string>>;
68
+ utm_source: z.ZodMiniOptional<z.ZodMiniString<string>>;
69
+ utm_medium: z.ZodMiniOptional<z.ZodMiniString<string>>;
70
+ utm_campaign: z.ZodMiniOptional<z.ZodMiniString<string>>;
71
+ utm_term: z.ZodMiniOptional<z.ZodMiniString<string>>;
72
+ utm_content: z.ZodMiniOptional<z.ZodMiniString<string>>;
73
+ utm_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
74
+ utm_source_platform: z.ZodMiniOptional<z.ZodMiniString<string>>;
75
+ utm_creative_format: z.ZodMiniOptional<z.ZodMiniString<string>>;
76
+ utm_marketing_tactic: z.ZodMiniOptional<z.ZodMiniString<string>>;
77
+ }, z.core.$strip>;
78
+ declare const propertiesSchema: z.ZodMiniOptional<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>, z.ZodMiniBoolean<boolean>, z.ZodMiniNull, z.ZodMiniArray<z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniUnion<readonly [z.ZodMiniString<string>, z.ZodMiniNumber<number>, z.ZodMiniBoolean<boolean>, z.ZodMiniNull]>>>]>>>;
3
79
  /** @deprecated */
4
80
  declare const createTrackEventSchemaV1: z.ZodMiniArray<z.ZodMiniObject<{
5
81
  name: z.ZodMiniString<string>;
@@ -59,6 +135,8 @@ declare const createTrackEventSchemaV1: z.ZodMiniArray<z.ZodMiniObject<{
59
135
  gclsrc: z.ZodMiniOptional<z.ZodMiniString<string>>;
60
136
  gad_source: z.ZodMiniOptional<z.ZodMiniString<string>>;
61
137
  gad_campaignid: z.ZodMiniOptional<z.ZodMiniString<string>>;
138
+ rdt_cid: z.ZodMiniOptional<z.ZodMiniString<string>>;
139
+ rdt_uuid: z.ZodMiniOptional<z.ZodMiniString<string>>;
62
140
  dclid: z.ZodMiniOptional<z.ZodMiniString<string>>;
63
141
  ko_click_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
64
142
  li_fat_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -138,6 +216,8 @@ declare const createTrackEventSchema: z.ZodMiniArray<z.ZodMiniObject<{
138
216
  gclsrc: z.ZodMiniOptional<z.ZodMiniString<string>>;
139
217
  gad_source: z.ZodMiniOptional<z.ZodMiniString<string>>;
140
218
  gad_campaignid: z.ZodMiniOptional<z.ZodMiniString<string>>;
219
+ rdt_cid: z.ZodMiniOptional<z.ZodMiniString<string>>;
220
+ rdt_uuid: z.ZodMiniOptional<z.ZodMiniString<string>>;
141
221
  dclid: z.ZodMiniOptional<z.ZodMiniString<string>>;
142
222
  ko_click_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
143
223
  li_fat_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
@@ -218,4 +298,4 @@ declare const createLinkSchema: z.ZodMiniObject<{
218
298
  type CreateFeedbackDTO = z.output<typeof createFeedbackSchema>;
219
299
  type CreateLinkDTO = z.output<typeof createLinkSchema>;
220
300
 
221
- export { type CreateFeedbackDTO, type CreateLinkDTO, createFeedbackSchema, createLinkSchema, createTrackEventSchema, createTrackEventSchemaV1, createVisitorSchema, updateVisitorSchema };
301
+ export { type CreateFeedbackDTO, type CreateLinkDTO, createFeedbackSchema, createLinkSchema, createTrackEventSchema, createTrackEventSchemaV1, createVisitorSchema, propertiesSchema, tagsSchema, updateVisitorSchema };