@shware/analytics 2.0.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +3 -1
- package/dist/index.mjs.map +1 -1
- package/dist/next/index.cjs +9 -1
- package/dist/next/index.cjs.map +1 -1
- package/dist/next/index.d.cts +2 -1
- package/dist/next/index.d.ts +2 -1
- package/dist/next/index.mjs +9 -1
- package/dist/next/index.mjs.map +1 -1
- package/dist/react-router/index.cjs +9 -1
- package/dist/react-router/index.cjs.map +1 -1
- package/dist/react-router/index.d.cts +2 -1
- package/dist/react-router/index.d.ts +2 -1
- package/dist/react-router/index.mjs +9 -1
- package/dist/react-router/index.mjs.map +1 -1
- package/dist/schema/index.cjs +45 -0
- package/dist/schema/index.cjs.map +1 -1
- package/dist/schema/index.d.cts +44 -1
- package/dist/schema/index.d.ts +44 -1
- package/dist/schema/index.mjs +46 -1
- package/dist/schema/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -21,6 +21,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var index_exports = {};
|
|
22
22
|
__export(index_exports, {
|
|
23
23
|
createFeedbackSchema: () => import_schema.createFeedbackSchema,
|
|
24
|
+
createLinkSchema: () => import_schema.createLinkSchema,
|
|
24
25
|
createTrackEventSchema: () => import_schema.createTrackEventSchema,
|
|
25
26
|
createTrackEventSchemaV1: () => import_schema.createTrackEventSchemaV1,
|
|
26
27
|
createVisitorSchema: () => import_schema.createVisitorSchema,
|
|
@@ -44,6 +45,7 @@ var import_stripe = require("./utils/stripe.cjs");
|
|
|
44
45
|
// Annotate the CommonJS export names for ESM import in node:
|
|
45
46
|
0 && (module.exports = {
|
|
46
47
|
createFeedbackSchema,
|
|
48
|
+
createLinkSchema,
|
|
47
49
|
createTrackEventSchema,
|
|
48
50
|
createTrackEventSchemaV1,
|
|
49
51
|
createVisitorSchema,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { setupAnalytics } from './setup/index';\nexport { track, trackAsync } from './track/index';\nexport { getVisitor, setVisitor, setUserId } from './visitor/index';\nexport { sendFeedback } from './feedback/index';\nexport {\n createTrackEventSchemaV1,\n createTrackEventSchema,\n createVisitorSchema,\n updateVisitorSchema,\n createFeedbackSchema,\n type CreateFeedbackDTO,\n} from './schema/index';\nexport { stripeMinorUnits } from './utils/stripe';\nexport type {\n TrackProperties,\n TrackTags,\n AllowedPropertyValues,\n UserProvidedData,\n} from './track/types';\nexport type { VisitorProperties } from './visitor/types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA+B;AAC/B,mBAAkC;AAClC,qBAAkD;AAClD,sBAA6B;AAC7B,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { setupAnalytics } from './setup/index';\nexport { track, trackAsync } from './track/index';\nexport { getVisitor, setVisitor, setUserId } from './visitor/index';\nexport { sendFeedback } from './feedback/index';\nexport {\n createTrackEventSchemaV1,\n createTrackEventSchema,\n createVisitorSchema,\n updateVisitorSchema,\n createFeedbackSchema,\n createLinkSchema,\n type CreateFeedbackDTO,\n} from './schema/index';\nexport { stripeMinorUnits } from './utils/stripe';\nexport type {\n TrackProperties,\n TrackTags,\n AllowedPropertyValues,\n UserProvidedData,\n} from './track/types';\nexport type { VisitorProperties } from './visitor/types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA+B;AAC/B,mBAAkC;AAClC,qBAAkD;AAClD,sBAA6B;AAC7B,oBAQO;AACP,oBAAiC;","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -2,7 +2,7 @@ export { setupAnalytics } from './setup/index.cjs';
|
|
|
2
2
|
export { track, trackAsync } from './track/index.cjs';
|
|
3
3
|
export { getVisitor, setUserId, setVisitor } from './visitor/index.cjs';
|
|
4
4
|
export { sendFeedback } from './feedback/index.cjs';
|
|
5
|
-
export { CreateFeedbackDTO, createFeedbackSchema, createTrackEventSchema, createTrackEventSchemaV1, createVisitorSchema, updateVisitorSchema } from './schema/index.cjs';
|
|
5
|
+
export { CreateFeedbackDTO, createFeedbackSchema, createLinkSchema, createTrackEventSchema, createTrackEventSchemaV1, createVisitorSchema, updateVisitorSchema } from './schema/index.cjs';
|
|
6
6
|
export { stripeMinorUnits } from './utils/stripe.cjs';
|
|
7
7
|
export { AllowedPropertyValues, TrackProperties, TrackTags, UserProvidedData } from './track/types.cjs';
|
|
8
8
|
export { VisitorProperties } from './visitor/types.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { setupAnalytics } from './setup/index.js';
|
|
|
2
2
|
export { track, trackAsync } from './track/index.js';
|
|
3
3
|
export { getVisitor, setUserId, setVisitor } from './visitor/index.js';
|
|
4
4
|
export { sendFeedback } from './feedback/index.js';
|
|
5
|
-
export { CreateFeedbackDTO, createFeedbackSchema, createTrackEventSchema, createTrackEventSchemaV1, createVisitorSchema, updateVisitorSchema } from './schema/index.js';
|
|
5
|
+
export { CreateFeedbackDTO, createFeedbackSchema, createLinkSchema, createTrackEventSchema, createTrackEventSchemaV1, createVisitorSchema, updateVisitorSchema } from './schema/index.js';
|
|
6
6
|
export { stripeMinorUnits } from './utils/stripe.js';
|
|
7
7
|
export { AllowedPropertyValues, TrackProperties, TrackTags, UserProvidedData } from './track/types.js';
|
|
8
8
|
export { VisitorProperties } from './visitor/types.js';
|
package/dist/index.mjs
CHANGED
|
@@ -8,11 +8,13 @@ import {
|
|
|
8
8
|
createTrackEventSchema,
|
|
9
9
|
createVisitorSchema,
|
|
10
10
|
updateVisitorSchema,
|
|
11
|
-
createFeedbackSchema
|
|
11
|
+
createFeedbackSchema,
|
|
12
|
+
createLinkSchema
|
|
12
13
|
} from "./schema/index.mjs";
|
|
13
14
|
import { stripeMinorUnits } from "./utils/stripe.mjs";
|
|
14
15
|
export {
|
|
15
16
|
createFeedbackSchema,
|
|
17
|
+
createLinkSchema,
|
|
16
18
|
createTrackEventSchema,
|
|
17
19
|
createTrackEventSchemaV1,
|
|
18
20
|
createVisitorSchema,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { setupAnalytics } from './setup/index';\nexport { track, trackAsync } from './track/index';\nexport { getVisitor, setVisitor, setUserId } from './visitor/index';\nexport { sendFeedback } from './feedback/index';\nexport {\n createTrackEventSchemaV1,\n createTrackEventSchema,\n createVisitorSchema,\n updateVisitorSchema,\n createFeedbackSchema,\n type CreateFeedbackDTO,\n} from './schema/index';\nexport { stripeMinorUnits } from './utils/stripe';\nexport type {\n TrackProperties,\n TrackTags,\n AllowedPropertyValues,\n UserProvidedData,\n} from './track/types';\nexport type { VisitorProperties } from './visitor/types';\n"],"mappings":";AAAA,SAAS,sBAAsB;AAC/B,SAAS,OAAO,kBAAkB;AAClC,SAAS,YAAY,YAAY,iBAAiB;AAClD,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,wBAAwB;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { setupAnalytics } from './setup/index';\nexport { track, trackAsync } from './track/index';\nexport { getVisitor, setVisitor, setUserId } from './visitor/index';\nexport { sendFeedback } from './feedback/index';\nexport {\n createTrackEventSchemaV1,\n createTrackEventSchema,\n createVisitorSchema,\n updateVisitorSchema,\n createFeedbackSchema,\n createLinkSchema,\n type CreateFeedbackDTO,\n} from './schema/index';\nexport { stripeMinorUnits } from './utils/stripe';\nexport type {\n TrackProperties,\n TrackTags,\n AllowedPropertyValues,\n UserProvidedData,\n} from './track/types';\nexport type { VisitorProperties } from './visitor/types';\n"],"mappings":";AAAA,SAAS,sBAAsB;AAC/B,SAAS,OAAO,kBAAkB;AAClC,SAAS,YAAY,YAAY,iBAAiB;AAClD,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,wBAAwB;","names":[]}
|
package/dist/next/index.cjs
CHANGED
|
@@ -64,7 +64,14 @@ function sendFBEvent(name, properties, event_id) {
|
|
|
64
64
|
fbq(type, fbEventName, fbEventProperties, options);
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
function Analytics({
|
|
67
|
+
function Analytics({
|
|
68
|
+
gaId,
|
|
69
|
+
nonce,
|
|
70
|
+
debugMode,
|
|
71
|
+
pixelId,
|
|
72
|
+
facebookAppId,
|
|
73
|
+
reportWebVitals = true
|
|
74
|
+
}) {
|
|
68
75
|
const pathname = (0, import_navigation.usePathname)();
|
|
69
76
|
(0, import_react.useEffect)(() => {
|
|
70
77
|
const params = new URLSearchParams(document.location.search);
|
|
@@ -84,6 +91,7 @@ function Analytics({ gaId, nonce, debugMode, pixelId, facebookAppId }) {
|
|
|
84
91
|
(0, import_track.track)("page_view", properties, { enableThirdPartyTracking: false });
|
|
85
92
|
}, [pathname]);
|
|
86
93
|
(0, import_web_vitals.useReportWebVitals)((metric) => {
|
|
94
|
+
if (!reportWebVitals) return;
|
|
87
95
|
const properties = {
|
|
88
96
|
id: metric.id,
|
|
89
97
|
rating: metric.rating,
|
package/dist/next/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname } from 'next/navigation';\nimport Script from 'next/script';\nimport { useReportWebVitals } from 'next/web-vitals';\nimport { useEffect } from 'react';\nimport { mapFBEvent } from '../track/fbq';\nimport { track } from '../track/index';\nimport type { Pixel, PixelId } from '../track/fbq';\nimport type { Gtag, GaId, GtmId } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\n\ndeclare global {\n interface Window extends Gtag, Pixel {}\n}\n\ninterface Props {\n gaId?: GaId;\n gtmId?: GtmId;\n pixelId?: PixelId;\n facebookAppId?: string;\n nonce?: string;\n debugMode?: boolean;\n}\n\nexport function sendGAEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>\n) {\n if (!window.gtag) {\n console.warn('GA has not been initialized');\n return;\n }\n window.gtag('event', name, 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({
|
|
1
|
+
{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname } from 'next/navigation';\nimport Script from 'next/script';\nimport { useReportWebVitals } from 'next/web-vitals';\nimport { useEffect } from 'react';\nimport { mapFBEvent } from '../track/fbq';\nimport { track } from '../track/index';\nimport type { Pixel, PixelId } from '../track/fbq';\nimport type { Gtag, GaId, GtmId } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\n\ndeclare global {\n interface Window extends Gtag, Pixel {}\n}\n\ninterface Props {\n gaId?: GaId;\n gtmId?: GtmId;\n pixelId?: PixelId;\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 (!window.gtag) {\n console.warn('GA has not been initialized');\n return;\n }\n window.gtag('event', name, 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 facebookAppId,\n reportWebVitals = true,\n}: Props) {\n const pathname = usePathname();\n\n useEffect(() => {\n const params = new URLSearchParams(document.location.search);\n const properties = {\n pathname,\n referrer: document.referrer,\n fbclid: params.get('fbclid'),\n gclid: params.get('gclid'),\n gad_source: params.get('gad_source'),\n gad_campaignid: params.get('gad_campaignid'),\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]);\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 id=\"gtag\"\n nonce={nonce}\n src={`https://www.googletagmanager.com/gtag/js?id=${gaId}`}\n />\n <Script\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 <>\n <Script\n id=\"pixel\"\n strategy=\"afterInteractive\"\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 )}\n </>\n );\n}\n"],"mappings":"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","names":["Script"]}
|
package/dist/next/index.d.cts
CHANGED
|
@@ -14,9 +14,10 @@ interface Props {
|
|
|
14
14
|
facebookAppId?: string;
|
|
15
15
|
nonce?: string;
|
|
16
16
|
debugMode?: boolean;
|
|
17
|
+
reportWebVitals?: boolean;
|
|
17
18
|
}
|
|
18
19
|
declare function sendGAEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>): void;
|
|
19
20
|
declare function sendFBEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>, event_id?: string): void;
|
|
20
|
-
declare function Analytics({ gaId, nonce, debugMode, pixelId, facebookAppId }: Props): react_jsx_runtime.JSX.Element;
|
|
21
|
+
declare function Analytics({ gaId, nonce, debugMode, pixelId, facebookAppId, reportWebVitals, }: Props): react_jsx_runtime.JSX.Element;
|
|
21
22
|
|
|
22
23
|
export { Analytics, sendFBEvent, sendGAEvent };
|
package/dist/next/index.d.ts
CHANGED
|
@@ -14,9 +14,10 @@ interface Props {
|
|
|
14
14
|
facebookAppId?: string;
|
|
15
15
|
nonce?: string;
|
|
16
16
|
debugMode?: boolean;
|
|
17
|
+
reportWebVitals?: boolean;
|
|
17
18
|
}
|
|
18
19
|
declare function sendGAEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>): void;
|
|
19
20
|
declare function sendFBEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>, event_id?: string): void;
|
|
20
|
-
declare function Analytics({ gaId, nonce, debugMode, pixelId, facebookAppId }: Props): react_jsx_runtime.JSX.Element;
|
|
21
|
+
declare function Analytics({ gaId, nonce, debugMode, pixelId, facebookAppId, reportWebVitals, }: Props): react_jsx_runtime.JSX.Element;
|
|
21
22
|
|
|
22
23
|
export { Analytics, sendFBEvent, sendGAEvent };
|
package/dist/next/index.mjs
CHANGED
|
@@ -29,7 +29,14 @@ function sendFBEvent(name, properties, event_id) {
|
|
|
29
29
|
fbq(type, fbEventName, fbEventProperties, options);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
function Analytics({
|
|
32
|
+
function Analytics({
|
|
33
|
+
gaId,
|
|
34
|
+
nonce,
|
|
35
|
+
debugMode,
|
|
36
|
+
pixelId,
|
|
37
|
+
facebookAppId,
|
|
38
|
+
reportWebVitals = true
|
|
39
|
+
}) {
|
|
33
40
|
const pathname = usePathname();
|
|
34
41
|
useEffect(() => {
|
|
35
42
|
const params = new URLSearchParams(document.location.search);
|
|
@@ -49,6 +56,7 @@ function Analytics({ gaId, nonce, debugMode, pixelId, facebookAppId }) {
|
|
|
49
56
|
track("page_view", properties, { enableThirdPartyTracking: false });
|
|
50
57
|
}, [pathname]);
|
|
51
58
|
useReportWebVitals((metric) => {
|
|
59
|
+
if (!reportWebVitals) return;
|
|
52
60
|
const properties = {
|
|
53
61
|
id: metric.id,
|
|
54
62
|
rating: metric.rating,
|
package/dist/next/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname } from 'next/navigation';\nimport Script from 'next/script';\nimport { useReportWebVitals } from 'next/web-vitals';\nimport { useEffect } from 'react';\nimport { mapFBEvent } from '../track/fbq';\nimport { track } from '../track/index';\nimport type { Pixel, PixelId } from '../track/fbq';\nimport type { Gtag, GaId, GtmId } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\n\ndeclare global {\n interface Window extends Gtag, Pixel {}\n}\n\ninterface Props {\n gaId?: GaId;\n gtmId?: GtmId;\n pixelId?: PixelId;\n facebookAppId?: string;\n nonce?: string;\n debugMode?: boolean;\n}\n\nexport function sendGAEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>\n) {\n if (!window.gtag) {\n console.warn('GA has not been initialized');\n return;\n }\n window.gtag('event', name, 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({
|
|
1
|
+
{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname } from 'next/navigation';\nimport Script from 'next/script';\nimport { useReportWebVitals } from 'next/web-vitals';\nimport { useEffect } from 'react';\nimport { mapFBEvent } from '../track/fbq';\nimport { track } from '../track/index';\nimport type { Pixel, PixelId } from '../track/fbq';\nimport type { Gtag, GaId, GtmId } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\n\ndeclare global {\n interface Window extends Gtag, Pixel {}\n}\n\ninterface Props {\n gaId?: GaId;\n gtmId?: GtmId;\n pixelId?: PixelId;\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 (!window.gtag) {\n console.warn('GA has not been initialized');\n return;\n }\n window.gtag('event', name, 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 facebookAppId,\n reportWebVitals = true,\n}: Props) {\n const pathname = usePathname();\n\n useEffect(() => {\n const params = new URLSearchParams(document.location.search);\n const properties = {\n pathname,\n referrer: document.referrer,\n fbclid: params.get('fbclid'),\n gclid: params.get('gclid'),\n gad_source: params.get('gad_source'),\n gad_campaignid: params.get('gad_campaignid'),\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]);\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 id=\"gtag\"\n nonce={nonce}\n src={`https://www.googletagmanager.com/gtag/js?id=${gaId}`}\n />\n <Script\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 <>\n <Script\n id=\"pixel\"\n strategy=\"afterInteractive\"\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 )}\n </>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -61,7 +61,14 @@ function sendFBEvent(name, properties, event_id) {
|
|
|
61
61
|
fbq(type, fbEventName, fbEventProperties, options);
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
function Analytics({
|
|
64
|
+
function Analytics({
|
|
65
|
+
gaId,
|
|
66
|
+
nonce,
|
|
67
|
+
debugMode,
|
|
68
|
+
pixelId,
|
|
69
|
+
facebookAppId,
|
|
70
|
+
reportWebVitals = true
|
|
71
|
+
}) {
|
|
65
72
|
const { pathname } = (0, import_react_router.useLocation)();
|
|
66
73
|
const [params] = (0, import_react_router.useSearchParams)();
|
|
67
74
|
(0, import_react.useEffect)(() => {
|
|
@@ -81,6 +88,7 @@ function Analytics({ gaId, nonce, debugMode, pixelId, facebookAppId }) {
|
|
|
81
88
|
(0, import_track.track)("page_view", properties, { enableThirdPartyTracking: false });
|
|
82
89
|
}, [pathname, params]);
|
|
83
90
|
useReportWebVitals((metric) => {
|
|
91
|
+
if (!reportWebVitals) return;
|
|
84
92
|
const properties = {
|
|
85
93
|
id: metric.id,
|
|
86
94
|
rating: metric.rating,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useSearchParams } from 'react-router';\nimport { onLCP, onCLS, onINP, onFCP, onTTFB, type Metric } from 'web-vitals';\nimport { mapFBEvent } from '../track/fbq';\nimport { track } from '../track/index';\nimport type { Pixel, PixelId } from '../track/fbq';\nimport type { Gtag, GaId, GtmId } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\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 facebookAppId?: string;\n nonce?: string;\n debugMode?: 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 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({
|
|
1
|
+
{"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useSearchParams } from 'react-router';\nimport { onLCP, onCLS, onINP, onFCP, onTTFB, type Metric } from 'web-vitals';\nimport { mapFBEvent } from '../track/fbq';\nimport { track } from '../track/index';\nimport type { Pixel, PixelId } from '../track/fbq';\nimport type { Gtag, GaId, GtmId } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\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 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 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 facebookAppId,\n reportWebVitals = true,\n}: Props) {\n const { pathname } = useLocation();\n const [params] = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n fbclid: params.get('fbclid'),\n gclid: params.get('gclid'),\n gad_source: params.get('gad_source'),\n gad_campaignid: params.get('gad_campaignid'),\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 /**\n * Pixel:\n * Each time the Pixel loads, it automatically calls fbq('track', 'PageView') to track a\n * PageView standard event.\n */\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\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 <>\n <script\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 )}\n </>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -14,9 +14,10 @@ interface Props {
|
|
|
14
14
|
facebookAppId?: string;
|
|
15
15
|
nonce?: string;
|
|
16
16
|
debugMode?: boolean;
|
|
17
|
+
reportWebVitals?: boolean;
|
|
17
18
|
}
|
|
18
19
|
declare function sendGAEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>): void;
|
|
19
20
|
declare function sendFBEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>, event_id?: string): void;
|
|
20
|
-
declare function Analytics({ gaId, nonce, debugMode, pixelId, facebookAppId }: Props): react_jsx_runtime.JSX.Element;
|
|
21
|
+
declare function Analytics({ gaId, nonce, debugMode, pixelId, facebookAppId, reportWebVitals, }: Props): react_jsx_runtime.JSX.Element;
|
|
21
22
|
|
|
22
23
|
export { Analytics, sendFBEvent, sendGAEvent };
|
|
@@ -14,9 +14,10 @@ interface Props {
|
|
|
14
14
|
facebookAppId?: string;
|
|
15
15
|
nonce?: string;
|
|
16
16
|
debugMode?: boolean;
|
|
17
|
+
reportWebVitals?: boolean;
|
|
17
18
|
}
|
|
18
19
|
declare function sendGAEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>): void;
|
|
19
20
|
declare function sendFBEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>, event_id?: string): void;
|
|
20
|
-
declare function Analytics({ gaId, nonce, debugMode, pixelId, facebookAppId }: Props): react_jsx_runtime.JSX.Element;
|
|
21
|
+
declare function Analytics({ gaId, nonce, debugMode, pixelId, facebookAppId, reportWebVitals, }: Props): react_jsx_runtime.JSX.Element;
|
|
21
22
|
|
|
22
23
|
export { Analytics, sendFBEvent, sendGAEvent };
|
|
@@ -35,7 +35,14 @@ function sendFBEvent(name, properties, event_id) {
|
|
|
35
35
|
fbq(type, fbEventName, fbEventProperties, options);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
function Analytics({
|
|
38
|
+
function Analytics({
|
|
39
|
+
gaId,
|
|
40
|
+
nonce,
|
|
41
|
+
debugMode,
|
|
42
|
+
pixelId,
|
|
43
|
+
facebookAppId,
|
|
44
|
+
reportWebVitals = true
|
|
45
|
+
}) {
|
|
39
46
|
const { pathname } = useLocation();
|
|
40
47
|
const [params] = useSearchParams();
|
|
41
48
|
useEffect(() => {
|
|
@@ -55,6 +62,7 @@ function Analytics({ gaId, nonce, debugMode, pixelId, facebookAppId }) {
|
|
|
55
62
|
track("page_view", properties, { enableThirdPartyTracking: false });
|
|
56
63
|
}, [pathname, params]);
|
|
57
64
|
useReportWebVitals((metric) => {
|
|
65
|
+
if (!reportWebVitals) return;
|
|
58
66
|
const properties = {
|
|
59
67
|
id: metric.id,
|
|
60
68
|
rating: metric.rating,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useSearchParams } from 'react-router';\nimport { onLCP, onCLS, onINP, onFCP, onTTFB, type Metric } from 'web-vitals';\nimport { mapFBEvent } from '../track/fbq';\nimport { track } from '../track/index';\nimport type { Pixel, PixelId } from '../track/fbq';\nimport type { Gtag, GaId, GtmId } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\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 facebookAppId?: string;\n nonce?: string;\n debugMode?: 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 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({
|
|
1
|
+
{"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useSearchParams } from 'react-router';\nimport { onLCP, onCLS, onINP, onFCP, onTTFB, type Metric } from 'web-vitals';\nimport { mapFBEvent } from '../track/fbq';\nimport { track } from '../track/index';\nimport type { Pixel, PixelId } from '../track/fbq';\nimport type { Gtag, GaId, GtmId } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\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 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 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 facebookAppId,\n reportWebVitals = true,\n}: Props) {\n const { pathname } = useLocation();\n const [params] = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n fbclid: params.get('fbclid'),\n gclid: params.get('gclid'),\n gad_source: params.get('gad_source'),\n gad_campaignid: params.get('gad_campaignid'),\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 /**\n * Pixel:\n * Each time the Pixel loads, it automatically calls fbq('track', 'PageView') to track a\n * PageView standard event.\n */\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\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 <>\n <script\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 )}\n </>\n );\n}\n"],"mappings":"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","names":[]}
|
package/dist/schema/index.cjs
CHANGED
|
@@ -21,6 +21,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var schema_exports = {};
|
|
22
22
|
__export(schema_exports, {
|
|
23
23
|
createFeedbackSchema: () => createFeedbackSchema,
|
|
24
|
+
createLinkSchema: () => createLinkSchema,
|
|
24
25
|
createTrackEventSchema: () => createTrackEventSchema,
|
|
25
26
|
createTrackEventSchemaV1: () => createTrackEventSchemaV1,
|
|
26
27
|
createVisitorSchema: () => createVisitorSchema,
|
|
@@ -153,9 +154,53 @@ var createFeedbackSchema = (0, import_v4_mini.object)({
|
|
|
153
154
|
email: (0, import_v4_mini.email)().check((0, import_v4_mini.maxLength)(320)),
|
|
154
155
|
message: (0, import_v4_mini.string)().check((0, import_v4_mini.minLength)(1), (0, import_v4_mini.maxLength)(65536))
|
|
155
156
|
});
|
|
157
|
+
var createLinkSchema = (0, import_v4_mini.object)({
|
|
158
|
+
/** The URL that the user is redirected to. */
|
|
159
|
+
url: (0, import_v4_mini.url)(),
|
|
160
|
+
// required
|
|
161
|
+
/**
|
|
162
|
+
* Campaign ID. Used to identify a specific campaign or promotion. This is a required key for GA4
|
|
163
|
+
* data import. Use the same IDs that you use when uploading campaign cost data.
|
|
164
|
+
*/
|
|
165
|
+
utm_id: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
|
|
166
|
+
/** Referrer, for example: google, newsletter4, billboard */
|
|
167
|
+
utm_source: (0, import_v4_mini.string)(),
|
|
168
|
+
// required
|
|
169
|
+
/** Marketing medium, for example: cpc, banner, email */
|
|
170
|
+
utm_medium: (0, import_v4_mini.string)(),
|
|
171
|
+
// required
|
|
172
|
+
/** Product, slogan, promo code, for example: spring_sale */
|
|
173
|
+
utm_campaign: (0, import_v4_mini.string)(),
|
|
174
|
+
// required
|
|
175
|
+
/** Paid keyword */
|
|
176
|
+
utm_term: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
|
|
177
|
+
/**
|
|
178
|
+
* Use to differentiate creatives. For example, if you have two call-to-action links within the
|
|
179
|
+
* same email message, you can use utm_content and set different values for each so you can tell
|
|
180
|
+
* which version is more effective.
|
|
181
|
+
*/
|
|
182
|
+
utm_content: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
|
|
183
|
+
/**
|
|
184
|
+
* The platform responsible for directing traffic to a given Analytics property (such as a buying
|
|
185
|
+
* platform that sets budgets and targeting criteria or a platform that manages organic traffic
|
|
186
|
+
* data). For example: Search Ads 360 or Display & Video 360.
|
|
187
|
+
*/
|
|
188
|
+
utm_source_platform: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
|
|
189
|
+
/**
|
|
190
|
+
* Type of creative, for example: display, native, video, search, utm_creative_format is not
|
|
191
|
+
* currently reported in Google Analytics 4 properties.
|
|
192
|
+
*/
|
|
193
|
+
utm_creative_format: (0, import_v4_mini.optional)((0, import_v4_mini.string)()),
|
|
194
|
+
/**
|
|
195
|
+
* Targeting criteria applied to a campaign, for example: remarketing, prospecting,
|
|
196
|
+
* utm_marketing_tactic is not currently reported in Google Analytics 4 properties.
|
|
197
|
+
* */
|
|
198
|
+
utm_marketing_tactic: (0, import_v4_mini.optional)((0, import_v4_mini.string)())
|
|
199
|
+
});
|
|
156
200
|
// Annotate the CommonJS export names for ESM import in node:
|
|
157
201
|
0 && (module.exports = {
|
|
158
202
|
createFeedbackSchema,
|
|
203
|
+
createLinkSchema,
|
|
159
204
|
createTrackEventSchema,
|
|
160
205
|
createTrackEventSchemaV1,
|
|
161
206
|
createVisitorSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import {\n optional,\n object,\n string,\n regex,\n number,\n boolean,\n null as _null,\n coerce,\n enum as _enum,\n trim,\n union,\n record,\n array,\n iso,\n minLength,\n maxLength,\n refine,\n pipe,\n transform,\n email,\n type z,\n uuid,\n} from 'zod/v4-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_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 fbc: optional(string()),\n fbp: optional(string()),\n gclid: optional(string()),\n advertising_id: optional(string()),\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 }),\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_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 fbc: optional(string()),\n fbp: optional(string()),\n gclid: optional(string()),\n advertising_id: optional(string()),\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 }),\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\nexport type CreateFeedbackDTO = z.output<typeof createFeedbackSchema>;\n"],"mappings":"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","names":["_null","_enum"]}
|
|
1
|
+
{"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import {\n optional,\n object,\n string,\n regex,\n number,\n boolean,\n null as _null,\n coerce,\n enum as _enum,\n trim,\n union,\n record,\n array,\n iso,\n minLength,\n maxLength,\n refine,\n pipe,\n transform,\n email,\n type z,\n uuid,\n url,\n} from 'zod/v4-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_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 fbc: optional(string()),\n fbp: optional(string()),\n gclid: optional(string()),\n advertising_id: optional(string()),\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 }),\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_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 fbc: optional(string()),\n fbp: optional(string()),\n gclid: optional(string()),\n advertising_id: optional(string()),\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 }),\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\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(), // 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(string()),\n\n /** Referrer, for example: google, newsletter4, billboard */\n utm_source: string(), // required\n\n /** Marketing medium, for example: cpc, banner, email */\n utm_medium: string(), // required\n\n /** Product, slogan, promo code, for example: spring_sale */\n utm_campaign: string(), // required\n\n /** Paid keyword */\n utm_term: optional(string()),\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(string()),\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(string()),\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(string()),\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(string()),\n});\n\nexport type CreateFeedbackDTO = z.output<typeof createFeedbackSchema>;\n"],"mappings":"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","names":["_null","_enum"]}
|
package/dist/schema/index.d.cts
CHANGED
|
@@ -116,6 +116,49 @@ declare const createFeedbackSchema: z.ZodMiniObject<{
|
|
|
116
116
|
email: z.ZodMiniEmail;
|
|
117
117
|
message: z.ZodMiniString<string>;
|
|
118
118
|
}, z.core.$strip>;
|
|
119
|
+
/**
|
|
120
|
+
* The schema for creating a link.
|
|
121
|
+
* @see https://support.google.com/analytics/answer/10917952
|
|
122
|
+
* */
|
|
123
|
+
declare const createLinkSchema: z.ZodMiniObject<{
|
|
124
|
+
/** The URL that the user is redirected to. */
|
|
125
|
+
url: z.ZodMiniURL;
|
|
126
|
+
/**
|
|
127
|
+
* Campaign ID. Used to identify a specific campaign or promotion. This is a required key for GA4
|
|
128
|
+
* data import. Use the same IDs that you use when uploading campaign cost data.
|
|
129
|
+
*/
|
|
130
|
+
utm_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
131
|
+
/** Referrer, for example: google, newsletter4, billboard */
|
|
132
|
+
utm_source: z.ZodMiniString<string>;
|
|
133
|
+
/** Marketing medium, for example: cpc, banner, email */
|
|
134
|
+
utm_medium: z.ZodMiniString<string>;
|
|
135
|
+
/** Product, slogan, promo code, for example: spring_sale */
|
|
136
|
+
utm_campaign: z.ZodMiniString<string>;
|
|
137
|
+
/** Paid keyword */
|
|
138
|
+
utm_term: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
139
|
+
/**
|
|
140
|
+
* Use to differentiate creatives. For example, if you have two call-to-action links within the
|
|
141
|
+
* same email message, you can use utm_content and set different values for each so you can tell
|
|
142
|
+
* which version is more effective.
|
|
143
|
+
*/
|
|
144
|
+
utm_content: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
145
|
+
/**
|
|
146
|
+
* The platform responsible for directing traffic to a given Analytics property (such as a buying
|
|
147
|
+
* platform that sets budgets and targeting criteria or a platform that manages organic traffic
|
|
148
|
+
* data). For example: Search Ads 360 or Display & Video 360.
|
|
149
|
+
*/
|
|
150
|
+
utm_source_platform: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
151
|
+
/**
|
|
152
|
+
* Type of creative, for example: display, native, video, search, utm_creative_format is not
|
|
153
|
+
* currently reported in Google Analytics 4 properties.
|
|
154
|
+
*/
|
|
155
|
+
utm_creative_format: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
156
|
+
/**
|
|
157
|
+
* Targeting criteria applied to a campaign, for example: remarketing, prospecting,
|
|
158
|
+
* utm_marketing_tactic is not currently reported in Google Analytics 4 properties.
|
|
159
|
+
* */
|
|
160
|
+
utm_marketing_tactic: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
161
|
+
}, z.core.$strip>;
|
|
119
162
|
type CreateFeedbackDTO = z.output<typeof createFeedbackSchema>;
|
|
120
163
|
|
|
121
|
-
export { type CreateFeedbackDTO, createFeedbackSchema, createTrackEventSchema, createTrackEventSchemaV1, createVisitorSchema, updateVisitorSchema };
|
|
164
|
+
export { type CreateFeedbackDTO, createFeedbackSchema, createLinkSchema, createTrackEventSchema, createTrackEventSchemaV1, createVisitorSchema, updateVisitorSchema };
|
package/dist/schema/index.d.ts
CHANGED
|
@@ -116,6 +116,49 @@ declare const createFeedbackSchema: z.ZodMiniObject<{
|
|
|
116
116
|
email: z.ZodMiniEmail;
|
|
117
117
|
message: z.ZodMiniString<string>;
|
|
118
118
|
}, z.core.$strip>;
|
|
119
|
+
/**
|
|
120
|
+
* The schema for creating a link.
|
|
121
|
+
* @see https://support.google.com/analytics/answer/10917952
|
|
122
|
+
* */
|
|
123
|
+
declare const createLinkSchema: z.ZodMiniObject<{
|
|
124
|
+
/** The URL that the user is redirected to. */
|
|
125
|
+
url: z.ZodMiniURL;
|
|
126
|
+
/**
|
|
127
|
+
* Campaign ID. Used to identify a specific campaign or promotion. This is a required key for GA4
|
|
128
|
+
* data import. Use the same IDs that you use when uploading campaign cost data.
|
|
129
|
+
*/
|
|
130
|
+
utm_id: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
131
|
+
/** Referrer, for example: google, newsletter4, billboard */
|
|
132
|
+
utm_source: z.ZodMiniString<string>;
|
|
133
|
+
/** Marketing medium, for example: cpc, banner, email */
|
|
134
|
+
utm_medium: z.ZodMiniString<string>;
|
|
135
|
+
/** Product, slogan, promo code, for example: spring_sale */
|
|
136
|
+
utm_campaign: z.ZodMiniString<string>;
|
|
137
|
+
/** Paid keyword */
|
|
138
|
+
utm_term: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
139
|
+
/**
|
|
140
|
+
* Use to differentiate creatives. For example, if you have two call-to-action links within the
|
|
141
|
+
* same email message, you can use utm_content and set different values for each so you can tell
|
|
142
|
+
* which version is more effective.
|
|
143
|
+
*/
|
|
144
|
+
utm_content: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
145
|
+
/**
|
|
146
|
+
* The platform responsible for directing traffic to a given Analytics property (such as a buying
|
|
147
|
+
* platform that sets budgets and targeting criteria or a platform that manages organic traffic
|
|
148
|
+
* data). For example: Search Ads 360 or Display & Video 360.
|
|
149
|
+
*/
|
|
150
|
+
utm_source_platform: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
151
|
+
/**
|
|
152
|
+
* Type of creative, for example: display, native, video, search, utm_creative_format is not
|
|
153
|
+
* currently reported in Google Analytics 4 properties.
|
|
154
|
+
*/
|
|
155
|
+
utm_creative_format: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
156
|
+
/**
|
|
157
|
+
* Targeting criteria applied to a campaign, for example: remarketing, prospecting,
|
|
158
|
+
* utm_marketing_tactic is not currently reported in Google Analytics 4 properties.
|
|
159
|
+
* */
|
|
160
|
+
utm_marketing_tactic: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
161
|
+
}, z.core.$strip>;
|
|
119
162
|
type CreateFeedbackDTO = z.output<typeof createFeedbackSchema>;
|
|
120
163
|
|
|
121
|
-
export { type CreateFeedbackDTO, createFeedbackSchema, createTrackEventSchema, createTrackEventSchemaV1, createVisitorSchema, updateVisitorSchema };
|
|
164
|
+
export { type CreateFeedbackDTO, createFeedbackSchema, createLinkSchema, createTrackEventSchema, createTrackEventSchemaV1, createVisitorSchema, updateVisitorSchema };
|
package/dist/schema/index.mjs
CHANGED
|
@@ -20,7 +20,8 @@ import {
|
|
|
20
20
|
pipe,
|
|
21
21
|
transform,
|
|
22
22
|
email,
|
|
23
|
-
uuid
|
|
23
|
+
uuid,
|
|
24
|
+
url
|
|
24
25
|
} from "zod/v4-mini";
|
|
25
26
|
var items = array(
|
|
26
27
|
record(
|
|
@@ -147,8 +148,52 @@ var createFeedbackSchema = object({
|
|
|
147
148
|
email: email().check(maxLength(320)),
|
|
148
149
|
message: string().check(minLength(1), maxLength(65536))
|
|
149
150
|
});
|
|
151
|
+
var createLinkSchema = object({
|
|
152
|
+
/** The URL that the user is redirected to. */
|
|
153
|
+
url: url(),
|
|
154
|
+
// required
|
|
155
|
+
/**
|
|
156
|
+
* Campaign ID. Used to identify a specific campaign or promotion. This is a required key for GA4
|
|
157
|
+
* data import. Use the same IDs that you use when uploading campaign cost data.
|
|
158
|
+
*/
|
|
159
|
+
utm_id: optional(string()),
|
|
160
|
+
/** Referrer, for example: google, newsletter4, billboard */
|
|
161
|
+
utm_source: string(),
|
|
162
|
+
// required
|
|
163
|
+
/** Marketing medium, for example: cpc, banner, email */
|
|
164
|
+
utm_medium: string(),
|
|
165
|
+
// required
|
|
166
|
+
/** Product, slogan, promo code, for example: spring_sale */
|
|
167
|
+
utm_campaign: string(),
|
|
168
|
+
// required
|
|
169
|
+
/** Paid keyword */
|
|
170
|
+
utm_term: optional(string()),
|
|
171
|
+
/**
|
|
172
|
+
* Use to differentiate creatives. For example, if you have two call-to-action links within the
|
|
173
|
+
* same email message, you can use utm_content and set different values for each so you can tell
|
|
174
|
+
* which version is more effective.
|
|
175
|
+
*/
|
|
176
|
+
utm_content: optional(string()),
|
|
177
|
+
/**
|
|
178
|
+
* The platform responsible for directing traffic to a given Analytics property (such as a buying
|
|
179
|
+
* platform that sets budgets and targeting criteria or a platform that manages organic traffic
|
|
180
|
+
* data). For example: Search Ads 360 or Display & Video 360.
|
|
181
|
+
*/
|
|
182
|
+
utm_source_platform: optional(string()),
|
|
183
|
+
/**
|
|
184
|
+
* Type of creative, for example: display, native, video, search, utm_creative_format is not
|
|
185
|
+
* currently reported in Google Analytics 4 properties.
|
|
186
|
+
*/
|
|
187
|
+
utm_creative_format: optional(string()),
|
|
188
|
+
/**
|
|
189
|
+
* Targeting criteria applied to a campaign, for example: remarketing, prospecting,
|
|
190
|
+
* utm_marketing_tactic is not currently reported in Google Analytics 4 properties.
|
|
191
|
+
* */
|
|
192
|
+
utm_marketing_tactic: optional(string())
|
|
193
|
+
});
|
|
150
194
|
export {
|
|
151
195
|
createFeedbackSchema,
|
|
196
|
+
createLinkSchema,
|
|
152
197
|
createTrackEventSchema,
|
|
153
198
|
createTrackEventSchemaV1,
|
|
154
199
|
createVisitorSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import {\n optional,\n object,\n string,\n regex,\n number,\n boolean,\n null as _null,\n coerce,\n enum as _enum,\n trim,\n union,\n record,\n array,\n iso,\n minLength,\n maxLength,\n refine,\n pipe,\n transform,\n email,\n type z,\n uuid,\n} from 'zod/v4-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_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 fbc: optional(string()),\n fbp: optional(string()),\n gclid: optional(string()),\n advertising_id: optional(string()),\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 }),\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_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 fbc: optional(string()),\n fbp: optional(string()),\n gclid: optional(string()),\n advertising_id: optional(string()),\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 }),\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\nexport type CreateFeedbackDTO = z.output<typeof createFeedbackSchema>;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import {\n optional,\n object,\n string,\n regex,\n number,\n boolean,\n null as _null,\n coerce,\n enum as _enum,\n trim,\n union,\n record,\n array,\n iso,\n minLength,\n maxLength,\n refine,\n pipe,\n transform,\n email,\n type z,\n uuid,\n url,\n} from 'zod/v4-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_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 fbc: optional(string()),\n fbp: optional(string()),\n gclid: optional(string()),\n advertising_id: optional(string()),\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 }),\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_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 fbc: optional(string()),\n fbp: optional(string()),\n gclid: optional(string()),\n advertising_id: optional(string()),\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 }),\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\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(), // 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(string()),\n\n /** Referrer, for example: google, newsletter4, billboard */\n utm_source: string(), // required\n\n /** Marketing medium, for example: cpc, banner, email */\n utm_medium: string(), // required\n\n /** Product, slogan, promo code, for example: spring_sale */\n utm_campaign: string(), // required\n\n /** Paid keyword */\n utm_term: optional(string()),\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(string()),\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(string()),\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(string()),\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(string()),\n});\n\nexport type CreateFeedbackDTO = z.output<typeof createFeedbackSchema>;\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shware/analytics",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -51,19 +51,19 @@
|
|
|
51
51
|
"dist"
|
|
52
52
|
],
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"axios": "^1.
|
|
54
|
+
"axios": "^1.10.0",
|
|
55
55
|
"axios-retry": "^4.5.0",
|
|
56
56
|
"bowser": "^2.11.0",
|
|
57
57
|
"cookie": "^1.0.2",
|
|
58
58
|
"uuid": "^11.1.0",
|
|
59
59
|
"web-vitals": "^5.0.3",
|
|
60
|
-
"zod": "^3.25.
|
|
60
|
+
"zod": "^3.25.76"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@repo/eslint-config": "workspace:*",
|
|
64
64
|
"@repo/typescript-config": "workspace:*",
|
|
65
65
|
"@types/facebook-nodejs-business-sdk": "^22.0.0",
|
|
66
|
-
"@types/node": "^24.0.
|
|
66
|
+
"@types/node": "^24.0.10",
|
|
67
67
|
"@types/react": "^19.1.8",
|
|
68
68
|
"typescript": "^5.8.3"
|
|
69
69
|
},
|