@shware/analytics 0.1.15 → 0.1.17
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 +17 -182
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -501
- package/dist/index.d.ts +7 -501
- package/dist/index.mjs +5 -158
- package/dist/index.mjs.map +1 -1
- package/dist/next/index.cjs +3 -3
- package/dist/next/index.cjs.map +1 -1
- package/dist/next/index.mjs +1 -1
- package/dist/next/index.mjs.map +1 -1
- package/dist/react-router/index.cjs +3 -3
- package/dist/react-router/index.cjs.map +1 -1
- package/dist/react-router/index.mjs +1 -1
- package/dist/react-router/index.mjs.map +1 -1
- package/dist/schema/index.cjs +85 -0
- package/dist/schema/index.cjs.map +1 -0
- package/dist/schema/index.d.cts +177 -0
- package/dist/schema/index.d.ts +177 -0
- package/dist/schema/index.mjs +58 -0
- package/dist/schema/index.mjs.map +1 -0
- package/dist/setup/index.cjs +63 -0
- package/dist/setup/index.cjs.map +1 -0
- package/dist/setup/index.d.cts +29 -0
- package/dist/setup/index.d.ts +29 -0
- package/dist/setup/index.mjs +27 -0
- package/dist/setup/index.mjs.map +1 -0
- package/dist/track/ga.cjs +102 -0
- package/dist/track/ga.cjs.map +1 -0
- package/dist/track/ga.d.cts +4 -0
- package/dist/track/ga.d.ts +4 -0
- package/dist/track/ga.mjs +76 -0
- package/dist/track/ga.mjs.map +1 -0
- package/dist/track/index.cjs +65 -0
- package/dist/track/index.cjs.map +1 -0
- package/dist/track/index.d.cts +10 -0
- package/dist/track/index.d.ts +10 -0
- package/dist/track/index.mjs +40 -0
- package/dist/track/index.mjs.map +1 -0
- package/dist/types/index.cjs +19 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.cts +327 -0
- package/dist/types/index.d.ts +327 -0
- package/dist/types/index.mjs +1 -0
- package/dist/types/index.mjs.map +1 -0
- package/dist/visitor/index.cjs +77 -0
- package/dist/visitor/index.cjs.map +1 -0
- package/dist/visitor/index.d.cts +6 -0
- package/dist/visitor/index.d.ts +6 -0
- package/dist/visitor/index.mjs +51 -0
- package/dist/visitor/index.mjs.map +1 -0
- package/dist/web/index.cjs.map +1 -1
- package/dist/web/index.d.cts +1 -50
- package/dist/web/index.d.ts +1 -50
- package/dist/web/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/setup.ts","../src/track.ts","../src/visitor.ts","../src/schema.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios';\nimport retry from 'axios-retry';\nimport { ThirdPartyTracker, ThirdPartyUserSetter, TrackTags } from './types';\n\nexport interface Storage {\n getItem: (key: string) => (string | null) | Promise<string | null>;\n setItem: (key: string, value: string) => void | Promise<void>;\n}\n\nexport interface Options {\n release: string;\n storage: Storage;\n endpoint: string;\n getTags: () => TrackTags | Promise<TrackTags>;\n getDeviceId: () => string | Promise<string>;\n thirdPartyTrackers?: ThirdPartyTracker[];\n thirdPartyUserSetters?: ThirdPartyUserSetter[];\n}\n\ninterface Config {\n release: string;\n storage: Storage;\n http: AxiosInstance;\n getTags: () => TrackTags | Promise<TrackTags>;\n getDeviceId: () => string | Promise<string>;\n thirdPartyTrackers: ThirdPartyTracker[];\n thirdPartyUserSetters: ThirdPartyUserSetter[];\n}\n\nexport const config: Config = {\n http: null!,\n release: '0.0.0',\n storage: null!,\n getTags: null!,\n getDeviceId: null!,\n thirdPartyTrackers: [],\n thirdPartyUserSetters: [],\n};\n\nexport function setupAnalytics(init: Options) {\n config.release = init.release;\n config.storage = init.storage;\n config.getTags = init.getTags;\n config.getDeviceId = init.getDeviceId;\n config.thirdPartyTrackers = init.thirdPartyTrackers ?? [];\n config.thirdPartyUserSetters = init.thirdPartyUserSetters ?? [];\n config.http = axios.create({ baseURL: init.endpoint, withCredentials: true, adapter: 'fetch' });\n retry(config.http, { retries: 5, retryDelay: retry.exponentialDelay });\n}\n","import { TokenBucket } from 'limiter';\nimport { CreateTrackEventDTO, EventName, TrackProperties, TrackEventResponse } from './types';\nimport { config } from './setup';\nimport { getVisitor } from './visitor';\n\nexport interface TrackOptions {\n enableThirdPartyTracking?: boolean;\n onSucceed?: (response?: TrackEventResponse) => void;\n onError?: (error: unknown) => void;\n}\n\nconst defaultOptions: TrackOptions = { enableThirdPartyTracking: true };\n\nconst REQUEST_TOKENS = 2;\nconst tokenBucket = new TokenBucket({\n bucketSize: 20,\n interval: 'second',\n tokensPerInterval: 1,\n});\n\nasync function trackAsync<T extends EventName = EventName>(\n name: T,\n properties?: TrackProperties<T>,\n trackOptions: TrackOptions = defaultOptions\n) {\n try {\n await tokenBucket.removeTokens(REQUEST_TOKENS);\n const dto: CreateTrackEventDTO<T> = {\n name,\n properties,\n tags: await config.getTags(),\n visitor_id: (await getVisitor()).id,\n timestamp: new Date().toISOString(),\n };\n const { data } = await config.http.post<TrackEventResponse>(`/events`, dto);\n\n // send to third-party loggers, for example Google Analytics and Facebook Pixel\n if (!trackOptions.enableThirdPartyTracking || !config.thirdPartyTrackers) return;\n config.thirdPartyTrackers.forEach((tracker) => tracker(name, properties, data.id));\n trackOptions.onSucceed?.(data);\n } catch (e: unknown) {\n if (e instanceof Error) {\n console.log('Failed to send track event:', e.message);\n }\n trackOptions.onError?.(e);\n }\n}\n\nexport function track<T extends EventName = EventName>(\n name: T,\n properties?: TrackProperties<T>,\n trackOptions: TrackOptions = defaultOptions\n) {\n trackAsync(name, properties, trackOptions).catch(console.error);\n}\n","import { config } from './setup';\nimport type { CreateVisitorDTO, UpdateVisitorDTO, Visitor, VisitorProperties } from './types';\n\nconst key = 'visitor_id';\n\nasync function createVisitor(): Promise<Visitor> {\n const dto: CreateVisitorDTO = {\n device_id: await config.getDeviceId(),\n properties: (await config.getTags()) as VisitorProperties,\n };\n const response = await config.http.post<Visitor>(`/visitors`, dto);\n return response.data;\n}\n\nasync function getOrCreateVisitor(): Promise<Visitor> {\n const visitorId = await config.storage.getItem(key);\n if (visitorId) {\n try {\n const response = await config.http.get<Visitor>(`/visitors/${visitorId}`);\n return response.data;\n } catch (e) {\n const visitor = await createVisitor();\n await config.storage.setItem(key, visitor.id);\n return visitor;\n }\n } else {\n const visitor = await createVisitor();\n await config.storage.setItem(key, visitor.id);\n return visitor;\n }\n}\n\nlet visitor: Visitor | null = null;\nlet visitorFetcher: Promise<Visitor> | null = null;\n\nexport async function getVisitor(): Promise<Visitor> {\n if (visitor) return visitor;\n if (visitorFetcher) return visitorFetcher;\n visitorFetcher = getOrCreateVisitor();\n visitor = await visitorFetcher;\n visitorFetcher = null;\n return visitor;\n}\n\nexport async function setVisitor(properties: VisitorProperties) {\n const dto: UpdateVisitorDTO = { properties };\n const { id } = await getVisitor();\n const response = await config.http.patch<Visitor>(`/visitors/${id}`, dto);\n config.thirdPartyUserSetters.forEach((setter) => setter(properties));\n visitor = response.data;\n return response.data;\n}\n","import { z } from 'zod';\n\nexport const createTrackEventSchema = z.object({\n name: z.string().trim().min(1).max(64),\n visitor_id: z.coerce.bigint(),\n tags: z.object({\n os: z.string().optional(),\n os_name: z.string().optional(),\n os_version: z.string().optional(),\n browser: z.string().optional(),\n browser_name: z.string().optional(),\n browser_version: z.string().optional(),\n platform: z.enum(['ios', 'android', 'web', 'macos', 'windows', 'linux', 'unknown']).optional(),\n device: z.string().optional(),\n device_id: z.string().trim().min(1).max(36).optional(),\n device_type: z.string().optional(),\n device_vendor: z.string().optional(),\n device_pixel_ratio: z.string().optional(),\n screen_resolution: z\n .string()\n .regex(/^\\d+x\\d+$/)\n .transform((v) => v as `${number}x${number}`)\n .optional(),\n release: z.string().optional(),\n language: z.string().optional(),\n timezone: z.string().optional(),\n environment: z.enum(['development', 'production']).optional(),\n source_url: z.string().optional(),\n source: z.enum(['web', 'app', 'offline']).optional(),\n fbc: z.string().optional(),\n fbp: z.string().optional(),\n gclid: z.string().optional(),\n utm_source: z.string().optional(),\n utm_medium: z.string().optional(),\n utm_campaign: z.string().optional(),\n utm_term: z.string().optional(),\n utm_content: z.string().optional(),\n }),\n properties: z\n .record(\n z.string().trim().min(1).max(128),\n z.union([z.string().max(512), z.number(), z.boolean(), z.null()])\n )\n .refine((data) => Object.keys(data).length <= 64),\n});\n\nexport const createVisitorSchema = z.object({\n device_id: z.string().trim().min(1).max(36),\n properties: z\n .record(\n z.string().trim().min(1).max(128),\n z.union([z.string().max(512), z.number(), z.boolean(), z.null()])\n )\n .refine((data) => Object.keys(data).length <= 64),\n});\n\nexport const updateVisitorSchema = z.object({\n properties: z\n .record(\n z.string().trim().min(1).max(128),\n z.union([z.string().max(512), z.number(), z.boolean(), z.null()])\n )\n .refine((data) => Object.keys(data).length <= 64),\n});\n"],"mappings":"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","names":["visitor"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { setupAnalytics } from './setup/index';\nexport { track } from './track/index';\nexport { getVisitor, setVisitor } from './visitor/index';\nexport { createTrackEventSchema, createVisitorSchema, updateVisitorSchema } from './schema/index';\nexport { type VisitorProperties, type TrackProperties, type TrackTags } from './types/index';\n"],"mappings":";AAAA,SAAS,sBAAsB;AAC/B,SAAS,aAAa;AACtB,SAAS,YAAY,kBAAkB;AACvC,SAAS,wBAAwB,qBAAqB,2BAA2B;","names":[]}
|
package/dist/next/index.cjs
CHANGED
|
@@ -27,7 +27,7 @@ module.exports = __toCommonJS(next_exports);
|
|
|
27
27
|
var import_navigation = require("next/navigation");
|
|
28
28
|
var import_web_vitals = require("next/web-vitals");
|
|
29
29
|
var import_react = require("react");
|
|
30
|
-
var
|
|
30
|
+
var import_track = require("../track/index.cjs");
|
|
31
31
|
function Analytics() {
|
|
32
32
|
const pathname = (0, import_navigation.usePathname)();
|
|
33
33
|
const params = (0, import_navigation.useSearchParams)();
|
|
@@ -43,7 +43,7 @@ function Analytics() {
|
|
|
43
43
|
utm_term: params.get("utm_term"),
|
|
44
44
|
utm_content: params.get("utm_content")
|
|
45
45
|
};
|
|
46
|
-
(0,
|
|
46
|
+
(0, import_track.track)("page_view", properties, { enableThirdPartyTracking: false });
|
|
47
47
|
}, [pathname, params]);
|
|
48
48
|
(0, import_web_vitals.useReportWebVitals)((metric) => {
|
|
49
49
|
const properties = {
|
|
@@ -55,7 +55,7 @@ function Analytics() {
|
|
|
55
55
|
non_interaction: true
|
|
56
56
|
// avoids affecting bounce rate.
|
|
57
57
|
};
|
|
58
|
-
(0,
|
|
58
|
+
(0, import_track.track)(metric.name, properties);
|
|
59
59
|
});
|
|
60
60
|
return null;
|
|
61
61
|
}
|
package/dist/next/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname, useSearchParams } from 'next/navigation';\nimport { useReportWebVitals } from 'next/web-vitals';\nimport { useEffect } from 'react';\nimport { track } from '../index';\n\nexport function Analytics() {\n const pathname = usePathname();\n const params = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n useReportWebVitals((metric) => {\n const properties = {\n id: metric.id,\n rating: metric.rating,\n value: metric.value,\n delta: metric.delta,\n navigation_type: metric.navigationType,\n non_interaction: true, // avoids affecting bounce rate.\n };\n track(metric.name as Lowercase<string>, properties);\n });\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,wBAA6C;AAC7C,wBAAmC;AACnC,mBAA0B;AAC1B,
|
|
1
|
+
{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname, useSearchParams } from 'next/navigation';\nimport { useReportWebVitals } from 'next/web-vitals';\nimport { useEffect } from 'react';\nimport { track } from '../track/index';\n\nexport function Analytics() {\n const pathname = usePathname();\n const params = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n useReportWebVitals((metric) => {\n const properties = {\n id: metric.id,\n rating: metric.rating,\n value: metric.value,\n delta: metric.delta,\n navigation_type: metric.navigationType,\n non_interaction: true, // avoids affecting bounce rate.\n };\n track(metric.name as Lowercase<string>, properties);\n });\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,wBAA6C;AAC7C,wBAAmC;AACnC,mBAA0B;AAC1B,mBAAsB;AAEf,SAAS,YAAY;AAC1B,QAAM,eAAW,+BAAY;AAC7B,QAAM,aAAS,mCAAgB;AAE/B,8BAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,4BAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,4CAAmB,CAAC,WAAW;AAC7B,UAAM,aAAa;AAAA,MACjB,IAAI,OAAO;AAAA,MACX,QAAQ,OAAO;AAAA,MACf,OAAO,OAAO;AAAA,MACd,OAAO,OAAO;AAAA,MACd,iBAAiB,OAAO;AAAA,MACxB,iBAAiB;AAAA;AAAA,IACnB;AACA,4BAAM,OAAO,MAA2B,UAAU;AAAA,EACpD,CAAC;AAED,SAAO;AACT;","names":[]}
|
package/dist/next/index.mjs
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { usePathname, useSearchParams } from "next/navigation";
|
|
5
5
|
import { useReportWebVitals } from "next/web-vitals";
|
|
6
6
|
import { useEffect } from "react";
|
|
7
|
-
import { track } from "../index.mjs";
|
|
7
|
+
import { track } from "../track/index.mjs";
|
|
8
8
|
function Analytics() {
|
|
9
9
|
const pathname = usePathname();
|
|
10
10
|
const params = useSearchParams();
|
package/dist/next/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname, useSearchParams } from 'next/navigation';\nimport { useReportWebVitals } from 'next/web-vitals';\nimport { useEffect } from 'react';\nimport { track } from '../index';\n\nexport function Analytics() {\n const pathname = usePathname();\n const params = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n useReportWebVitals((metric) => {\n const properties = {\n id: metric.id,\n rating: metric.rating,\n value: metric.value,\n delta: metric.delta,\n navigation_type: metric.navigationType,\n non_interaction: true, // avoids affecting bounce rate.\n };\n track(metric.name as Lowercase<string>, properties);\n });\n\n return null;\n}\n"],"mappings":";;;AAEA,SAAS,aAAa,uBAAuB;AAC7C,SAAS,0BAA0B;AACnC,SAAS,iBAAiB;AAC1B,SAAS,aAAa;AAEf,SAAS,YAAY;AAC1B,QAAM,WAAW,YAAY;AAC7B,QAAM,SAAS,gBAAgB;AAE/B,YAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,UAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,qBAAmB,CAAC,WAAW;AAC7B,UAAM,aAAa;AAAA,MACjB,IAAI,OAAO;AAAA,MACX,QAAQ,OAAO;AAAA,MACf,OAAO,OAAO;AAAA,MACd,OAAO,OAAO;AAAA,MACd,iBAAiB,OAAO;AAAA,MACxB,iBAAiB;AAAA;AAAA,IACnB;AACA,UAAM,OAAO,MAA2B,UAAU;AAAA,EACpD,CAAC;AAED,SAAO;AACT;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname, useSearchParams } from 'next/navigation';\nimport { useReportWebVitals } from 'next/web-vitals';\nimport { useEffect } from 'react';\nimport { track } from '../track/index';\n\nexport function Analytics() {\n const pathname = usePathname();\n const params = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n useReportWebVitals((metric) => {\n const properties = {\n id: metric.id,\n rating: metric.rating,\n value: metric.value,\n delta: metric.delta,\n navigation_type: metric.navigationType,\n non_interaction: true, // avoids affecting bounce rate.\n };\n track(metric.name as Lowercase<string>, properties);\n });\n\n return null;\n}\n"],"mappings":";;;AAEA,SAAS,aAAa,uBAAuB;AAC7C,SAAS,0BAA0B;AACnC,SAAS,iBAAiB;AAC1B,SAAS,aAAa;AAEf,SAAS,YAAY;AAC1B,QAAM,WAAW,YAAY;AAC7B,QAAM,SAAS,gBAAgB;AAE/B,YAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,UAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,qBAAmB,CAAC,WAAW;AAC7B,UAAM,aAAa;AAAA,MACjB,IAAI,OAAO;AAAA,MACX,QAAQ,OAAO;AAAA,MACf,OAAO,OAAO;AAAA,MACd,OAAO,OAAO;AAAA,MACd,iBAAiB,OAAO;AAAA,MACxB,iBAAiB;AAAA;AAAA,IACnB;AACA,UAAM,OAAO,MAA2B,UAAU;AAAA,EACpD,CAAC;AAED,SAAO;AACT;","names":[]}
|
|
@@ -26,7 +26,7 @@ module.exports = __toCommonJS(react_router_exports);
|
|
|
26
26
|
var import_react = require("react");
|
|
27
27
|
var import_react_router = require("react-router");
|
|
28
28
|
var import_web_vitals = require("web-vitals");
|
|
29
|
-
var
|
|
29
|
+
var import_track = require("../track/index.cjs");
|
|
30
30
|
function useReportWebVitals(reportWebVitalsFn) {
|
|
31
31
|
(0, import_react.useEffect)(() => {
|
|
32
32
|
(0, import_web_vitals.onCLS)(reportWebVitalsFn);
|
|
@@ -52,7 +52,7 @@ function Analytics() {
|
|
|
52
52
|
utm_term: params.get("utm_term"),
|
|
53
53
|
utm_content: params.get("utm_content")
|
|
54
54
|
};
|
|
55
|
-
(0,
|
|
55
|
+
(0, import_track.track)("page_view", properties, { enableThirdPartyTracking: false });
|
|
56
56
|
}, [pathname, params]);
|
|
57
57
|
useReportWebVitals((metric) => {
|
|
58
58
|
const properties = {
|
|
@@ -64,7 +64,7 @@ function Analytics() {
|
|
|
64
64
|
non_interaction: true
|
|
65
65
|
// avoids affecting bounce rate.
|
|
66
66
|
};
|
|
67
|
-
(0,
|
|
67
|
+
(0, import_track.track)(metric.name, properties);
|
|
68
68
|
});
|
|
69
69
|
return null;
|
|
70
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useSearchParams } from 'react-router';\nimport { onLCP, onFID, onCLS, onINP, onFCP, onTTFB, type Metric } from 'web-vitals';\nimport { track } from '../index';\n\nfunction useReportWebVitals(reportWebVitalsFn: (metric: Metric) => void) {\n useEffect(() => {\n onCLS(reportWebVitalsFn);\n onFID(reportWebVitalsFn);\n onLCP(reportWebVitalsFn);\n onINP(reportWebVitalsFn);\n onFCP(reportWebVitalsFn);\n onTTFB(reportWebVitalsFn);\n }, [reportWebVitalsFn]);\n}\n\nexport function Analytics() {\n const { pathname } = useLocation();\n const [params] = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n useReportWebVitals((metric) => {\n const properties = {\n id: metric.id,\n rating: metric.rating,\n value: metric.value,\n delta: metric.delta,\n navigation_type: metric.navigationType,\n non_interaction: true, // avoids affecting bounce rate.\n };\n track(metric.name as Lowercase<string>, properties);\n });\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAC1B,0BAA6C;AAC7C,wBAAuE;AACvE,
|
|
1
|
+
{"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useSearchParams } from 'react-router';\nimport { onLCP, onFID, onCLS, onINP, onFCP, onTTFB, type Metric } from 'web-vitals';\nimport { track } from '../track/index';\n\nfunction useReportWebVitals(reportWebVitalsFn: (metric: Metric) => void) {\n useEffect(() => {\n onCLS(reportWebVitalsFn);\n onFID(reportWebVitalsFn);\n onLCP(reportWebVitalsFn);\n onINP(reportWebVitalsFn);\n onFCP(reportWebVitalsFn);\n onTTFB(reportWebVitalsFn);\n }, [reportWebVitalsFn]);\n}\n\nexport function Analytics() {\n const { pathname } = useLocation();\n const [params] = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n useReportWebVitals((metric) => {\n const properties = {\n id: metric.id,\n rating: metric.rating,\n value: metric.value,\n delta: metric.delta,\n navigation_type: metric.navigationType,\n non_interaction: true, // avoids affecting bounce rate.\n };\n track(metric.name as Lowercase<string>, properties);\n });\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAC1B,0BAA6C;AAC7C,wBAAuE;AACvE,mBAAsB;AAEtB,SAAS,mBAAmB,mBAA6C;AACvE,8BAAU,MAAM;AACd,iCAAM,iBAAiB;AACvB,iCAAM,iBAAiB;AACvB,iCAAM,iBAAiB;AACvB,iCAAM,iBAAiB;AACvB,iCAAM,iBAAiB;AACvB,kCAAO,iBAAiB;AAAA,EAC1B,GAAG,CAAC,iBAAiB,CAAC;AACxB;AAEO,SAAS,YAAY;AAC1B,QAAM,EAAE,SAAS,QAAI,iCAAY;AACjC,QAAM,CAAC,MAAM,QAAI,qCAAgB;AAEjC,8BAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,4BAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,qBAAmB,CAAC,WAAW;AAC7B,UAAM,aAAa;AAAA,MACjB,IAAI,OAAO;AAAA,MACX,QAAQ,OAAO;AAAA,MACf,OAAO,OAAO;AAAA,MACd,OAAO,OAAO;AAAA,MACd,iBAAiB,OAAO;AAAA,MACxB,iBAAiB;AAAA;AAAA,IACnB;AACA,4BAAM,OAAO,MAA2B,UAAU;AAAA,EACpD,CAAC;AAED,SAAO;AACT;","names":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { useEffect } from "react";
|
|
3
3
|
import { useLocation, useSearchParams } from "react-router";
|
|
4
4
|
import { onLCP, onFID, onCLS, onINP, onFCP, onTTFB } from "web-vitals";
|
|
5
|
-
import { track } from "../index.mjs";
|
|
5
|
+
import { track } from "../track/index.mjs";
|
|
6
6
|
function useReportWebVitals(reportWebVitalsFn) {
|
|
7
7
|
useEffect(() => {
|
|
8
8
|
onCLS(reportWebVitalsFn);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useSearchParams } from 'react-router';\nimport { onLCP, onFID, onCLS, onINP, onFCP, onTTFB, type Metric } from 'web-vitals';\nimport { track } from '../index';\n\nfunction useReportWebVitals(reportWebVitalsFn: (metric: Metric) => void) {\n useEffect(() => {\n onCLS(reportWebVitalsFn);\n onFID(reportWebVitalsFn);\n onLCP(reportWebVitalsFn);\n onINP(reportWebVitalsFn);\n onFCP(reportWebVitalsFn);\n onTTFB(reportWebVitalsFn);\n }, [reportWebVitalsFn]);\n}\n\nexport function Analytics() {\n const { pathname } = useLocation();\n const [params] = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n useReportWebVitals((metric) => {\n const properties = {\n id: metric.id,\n rating: metric.rating,\n value: metric.value,\n delta: metric.delta,\n navigation_type: metric.navigationType,\n non_interaction: true, // avoids affecting bounce rate.\n };\n track(metric.name as Lowercase<string>, properties);\n });\n\n return null;\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,SAAS,aAAa,uBAAuB;AAC7C,SAAS,OAAO,OAAO,OAAO,OAAO,OAAO,cAA2B;AACvE,SAAS,aAAa;AAEtB,SAAS,mBAAmB,mBAA6C;AACvE,YAAU,MAAM;AACd,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,WAAO,iBAAiB;AAAA,EAC1B,GAAG,CAAC,iBAAiB,CAAC;AACxB;AAEO,SAAS,YAAY;AAC1B,QAAM,EAAE,SAAS,IAAI,YAAY;AACjC,QAAM,CAAC,MAAM,IAAI,gBAAgB;AAEjC,YAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,UAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,qBAAmB,CAAC,WAAW;AAC7B,UAAM,aAAa;AAAA,MACjB,IAAI,OAAO;AAAA,MACX,QAAQ,OAAO;AAAA,MACf,OAAO,OAAO;AAAA,MACd,OAAO,OAAO;AAAA,MACd,iBAAiB,OAAO;AAAA,MACxB,iBAAiB;AAAA;AAAA,IACnB;AACA,UAAM,OAAO,MAA2B,UAAU;AAAA,EACpD,CAAC;AAED,SAAO;AACT;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useSearchParams } from 'react-router';\nimport { onLCP, onFID, onCLS, onINP, onFCP, onTTFB, type Metric } from 'web-vitals';\nimport { track } from '../track/index';\n\nfunction useReportWebVitals(reportWebVitalsFn: (metric: Metric) => void) {\n useEffect(() => {\n onCLS(reportWebVitalsFn);\n onFID(reportWebVitalsFn);\n onLCP(reportWebVitalsFn);\n onINP(reportWebVitalsFn);\n onFCP(reportWebVitalsFn);\n onTTFB(reportWebVitalsFn);\n }, [reportWebVitalsFn]);\n}\n\nexport function Analytics() {\n const { pathname } = useLocation();\n const [params] = useSearchParams();\n\n useEffect(() => {\n const properties = {\n pathname,\n referrer: document.referrer,\n gclid: params.get('gclid'),\n fbclid: params.get('fbclid'),\n utm_source: params.get('utm_source'),\n utm_medium: params.get('utm_medium'),\n utm_campaign: params.get('utm_campaign'),\n utm_term: params.get('utm_term'),\n utm_content: params.get('utm_content'),\n };\n\n track('page_view', properties, { enableThirdPartyTracking: false });\n }, [pathname, params]);\n\n useReportWebVitals((metric) => {\n const properties = {\n id: metric.id,\n rating: metric.rating,\n value: metric.value,\n delta: metric.delta,\n navigation_type: metric.navigationType,\n non_interaction: true, // avoids affecting bounce rate.\n };\n track(metric.name as Lowercase<string>, properties);\n });\n\n return null;\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,SAAS,aAAa,uBAAuB;AAC7C,SAAS,OAAO,OAAO,OAAO,OAAO,OAAO,cAA2B;AACvE,SAAS,aAAa;AAEtB,SAAS,mBAAmB,mBAA6C;AACvE,YAAU,MAAM;AACd,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,UAAM,iBAAiB;AACvB,WAAO,iBAAiB;AAAA,EAC1B,GAAG,CAAC,iBAAiB,CAAC;AACxB;AAEO,SAAS,YAAY;AAC1B,QAAM,EAAE,SAAS,IAAI,YAAY;AACjC,QAAM,CAAC,MAAM,IAAI,gBAAgB;AAEjC,YAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,UAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,qBAAmB,CAAC,WAAW;AAC7B,UAAM,aAAa;AAAA,MACjB,IAAI,OAAO;AAAA,MACX,QAAQ,OAAO;AAAA,MACf,OAAO,OAAO;AAAA,MACd,OAAO,OAAO;AAAA,MACd,iBAAiB,OAAO;AAAA,MACxB,iBAAiB;AAAA;AAAA,IACnB;AACA,UAAM,OAAO,MAA2B,UAAU;AAAA,EACpD,CAAC;AAED,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/schema/index.ts
|
|
21
|
+
var schema_exports = {};
|
|
22
|
+
__export(schema_exports, {
|
|
23
|
+
createTrackEventSchema: () => createTrackEventSchema,
|
|
24
|
+
createVisitorSchema: () => createVisitorSchema,
|
|
25
|
+
updateVisitorSchema: () => updateVisitorSchema
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(schema_exports);
|
|
28
|
+
var import_zod = require("zod");
|
|
29
|
+
var createTrackEventSchema = import_zod.z.object({
|
|
30
|
+
name: import_zod.z.string().trim().min(1).max(64),
|
|
31
|
+
visitor_id: import_zod.z.coerce.bigint(),
|
|
32
|
+
tags: import_zod.z.object({
|
|
33
|
+
os: import_zod.z.string().optional(),
|
|
34
|
+
os_name: import_zod.z.string().optional(),
|
|
35
|
+
os_version: import_zod.z.string().optional(),
|
|
36
|
+
browser: import_zod.z.string().optional(),
|
|
37
|
+
browser_name: import_zod.z.string().optional(),
|
|
38
|
+
browser_version: import_zod.z.string().optional(),
|
|
39
|
+
platform: import_zod.z.enum(["ios", "android", "web", "macos", "windows", "linux", "unknown"]).optional(),
|
|
40
|
+
device: import_zod.z.string().optional(),
|
|
41
|
+
device_id: import_zod.z.string().trim().min(1).max(36).optional(),
|
|
42
|
+
device_type: import_zod.z.string().optional(),
|
|
43
|
+
device_vendor: import_zod.z.string().optional(),
|
|
44
|
+
device_pixel_ratio: import_zod.z.string().optional(),
|
|
45
|
+
screen_resolution: import_zod.z.string().regex(/^\d+x\d+$/).transform((v) => v).optional(),
|
|
46
|
+
release: import_zod.z.string().optional(),
|
|
47
|
+
language: import_zod.z.string().optional(),
|
|
48
|
+
timezone: import_zod.z.string().optional(),
|
|
49
|
+
environment: import_zod.z.enum(["development", "production"]).optional(),
|
|
50
|
+
source_url: import_zod.z.string().optional(),
|
|
51
|
+
source: import_zod.z.enum(["web", "app", "offline"]).optional(),
|
|
52
|
+
fbc: import_zod.z.string().optional(),
|
|
53
|
+
fbp: import_zod.z.string().optional(),
|
|
54
|
+
gclid: import_zod.z.string().optional(),
|
|
55
|
+
utm_source: import_zod.z.string().optional(),
|
|
56
|
+
utm_medium: import_zod.z.string().optional(),
|
|
57
|
+
utm_campaign: import_zod.z.string().optional(),
|
|
58
|
+
utm_term: import_zod.z.string().optional(),
|
|
59
|
+
utm_content: import_zod.z.string().optional()
|
|
60
|
+
}),
|
|
61
|
+
properties: import_zod.z.record(
|
|
62
|
+
import_zod.z.string().trim().min(1).max(128),
|
|
63
|
+
import_zod.z.union([import_zod.z.string().max(512), import_zod.z.number(), import_zod.z.boolean(), import_zod.z.null()])
|
|
64
|
+
).refine((data) => Object.keys(data).length <= 64)
|
|
65
|
+
});
|
|
66
|
+
var createVisitorSchema = import_zod.z.object({
|
|
67
|
+
device_id: import_zod.z.string().trim().min(1).max(36),
|
|
68
|
+
properties: import_zod.z.record(
|
|
69
|
+
import_zod.z.string().trim().min(1).max(128),
|
|
70
|
+
import_zod.z.union([import_zod.z.string().max(512), import_zod.z.number(), import_zod.z.boolean(), import_zod.z.null()])
|
|
71
|
+
).refine((data) => Object.keys(data).length <= 64)
|
|
72
|
+
});
|
|
73
|
+
var updateVisitorSchema = import_zod.z.object({
|
|
74
|
+
properties: import_zod.z.record(
|
|
75
|
+
import_zod.z.string().trim().min(1).max(128),
|
|
76
|
+
import_zod.z.union([import_zod.z.string().max(512), import_zod.z.number(), import_zod.z.boolean(), import_zod.z.null()])
|
|
77
|
+
).refine((data) => Object.keys(data).length <= 64)
|
|
78
|
+
});
|
|
79
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
80
|
+
0 && (module.exports = {
|
|
81
|
+
createTrackEventSchema,
|
|
82
|
+
createVisitorSchema,
|
|
83
|
+
updateVisitorSchema
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const createTrackEventSchema = z.object({\n name: z.string().trim().min(1).max(64),\n visitor_id: z.coerce.bigint(),\n tags: z.object({\n os: z.string().optional(),\n os_name: z.string().optional(),\n os_version: z.string().optional(),\n browser: z.string().optional(),\n browser_name: z.string().optional(),\n browser_version: z.string().optional(),\n platform: z.enum(['ios', 'android', 'web', 'macos', 'windows', 'linux', 'unknown']).optional(),\n device: z.string().optional(),\n device_id: z.string().trim().min(1).max(36).optional(),\n device_type: z.string().optional(),\n device_vendor: z.string().optional(),\n device_pixel_ratio: z.string().optional(),\n screen_resolution: z\n .string()\n .regex(/^\\d+x\\d+$/)\n .transform((v) => v as `${number}x${number}`)\n .optional(),\n release: z.string().optional(),\n language: z.string().optional(),\n timezone: z.string().optional(),\n environment: z.enum(['development', 'production']).optional(),\n source_url: z.string().optional(),\n source: z.enum(['web', 'app', 'offline']).optional(),\n fbc: z.string().optional(),\n fbp: z.string().optional(),\n gclid: z.string().optional(),\n utm_source: z.string().optional(),\n utm_medium: z.string().optional(),\n utm_campaign: z.string().optional(),\n utm_term: z.string().optional(),\n utm_content: z.string().optional(),\n }),\n properties: z\n .record(\n z.string().trim().min(1).max(128),\n z.union([z.string().max(512), z.number(), z.boolean(), z.null()])\n )\n .refine((data) => Object.keys(data).length <= 64),\n});\n\nexport const createVisitorSchema = z.object({\n device_id: z.string().trim().min(1).max(36),\n properties: z\n .record(\n z.string().trim().min(1).max(128),\n z.union([z.string().max(512), z.number(), z.boolean(), z.null()])\n )\n .refine((data) => Object.keys(data).length <= 64),\n});\n\nexport const updateVisitorSchema = z.object({\n properties: z\n .record(\n z.string().trim().min(1).max(128),\n z.union([z.string().max(512), z.number(), z.boolean(), z.null()])\n )\n .refine((data) => Object.keys(data).length <= 64),\n});\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
declare const createTrackEventSchema: z.ZodObject<{
|
|
4
|
+
name: z.ZodString;
|
|
5
|
+
visitor_id: z.ZodBigInt;
|
|
6
|
+
tags: z.ZodObject<{
|
|
7
|
+
os: z.ZodOptional<z.ZodString>;
|
|
8
|
+
os_name: z.ZodOptional<z.ZodString>;
|
|
9
|
+
os_version: z.ZodOptional<z.ZodString>;
|
|
10
|
+
browser: z.ZodOptional<z.ZodString>;
|
|
11
|
+
browser_name: z.ZodOptional<z.ZodString>;
|
|
12
|
+
browser_version: z.ZodOptional<z.ZodString>;
|
|
13
|
+
platform: z.ZodOptional<z.ZodEnum<["ios", "android", "web", "macos", "windows", "linux", "unknown"]>>;
|
|
14
|
+
device: z.ZodOptional<z.ZodString>;
|
|
15
|
+
device_id: z.ZodOptional<z.ZodString>;
|
|
16
|
+
device_type: z.ZodOptional<z.ZodString>;
|
|
17
|
+
device_vendor: z.ZodOptional<z.ZodString>;
|
|
18
|
+
device_pixel_ratio: z.ZodOptional<z.ZodString>;
|
|
19
|
+
screen_resolution: z.ZodOptional<z.ZodEffects<z.ZodString, `${number}x${number}`, string>>;
|
|
20
|
+
release: z.ZodOptional<z.ZodString>;
|
|
21
|
+
language: z.ZodOptional<z.ZodString>;
|
|
22
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
23
|
+
environment: z.ZodOptional<z.ZodEnum<["development", "production"]>>;
|
|
24
|
+
source_url: z.ZodOptional<z.ZodString>;
|
|
25
|
+
source: z.ZodOptional<z.ZodEnum<["web", "app", "offline"]>>;
|
|
26
|
+
fbc: z.ZodOptional<z.ZodString>;
|
|
27
|
+
fbp: z.ZodOptional<z.ZodString>;
|
|
28
|
+
gclid: z.ZodOptional<z.ZodString>;
|
|
29
|
+
utm_source: z.ZodOptional<z.ZodString>;
|
|
30
|
+
utm_medium: z.ZodOptional<z.ZodString>;
|
|
31
|
+
utm_campaign: z.ZodOptional<z.ZodString>;
|
|
32
|
+
utm_term: z.ZodOptional<z.ZodString>;
|
|
33
|
+
utm_content: z.ZodOptional<z.ZodString>;
|
|
34
|
+
}, "strip", z.ZodTypeAny, {
|
|
35
|
+
os?: string | undefined;
|
|
36
|
+
os_name?: string | undefined;
|
|
37
|
+
os_version?: string | undefined;
|
|
38
|
+
browser?: string | undefined;
|
|
39
|
+
browser_name?: string | undefined;
|
|
40
|
+
browser_version?: string | undefined;
|
|
41
|
+
platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
|
|
42
|
+
device?: string | undefined;
|
|
43
|
+
device_id?: string | undefined;
|
|
44
|
+
device_type?: string | undefined;
|
|
45
|
+
device_vendor?: string | undefined;
|
|
46
|
+
device_pixel_ratio?: string | undefined;
|
|
47
|
+
screen_resolution?: `${number}x${number}` | undefined;
|
|
48
|
+
release?: string | undefined;
|
|
49
|
+
language?: string | undefined;
|
|
50
|
+
timezone?: string | undefined;
|
|
51
|
+
environment?: "development" | "production" | undefined;
|
|
52
|
+
source_url?: string | undefined;
|
|
53
|
+
source?: "web" | "app" | "offline" | undefined;
|
|
54
|
+
fbc?: string | undefined;
|
|
55
|
+
fbp?: string | undefined;
|
|
56
|
+
gclid?: string | undefined;
|
|
57
|
+
utm_source?: string | undefined;
|
|
58
|
+
utm_medium?: string | undefined;
|
|
59
|
+
utm_campaign?: string | undefined;
|
|
60
|
+
utm_term?: string | undefined;
|
|
61
|
+
utm_content?: string | undefined;
|
|
62
|
+
}, {
|
|
63
|
+
os?: string | undefined;
|
|
64
|
+
os_name?: string | undefined;
|
|
65
|
+
os_version?: string | undefined;
|
|
66
|
+
browser?: string | undefined;
|
|
67
|
+
browser_name?: string | undefined;
|
|
68
|
+
browser_version?: string | undefined;
|
|
69
|
+
platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
|
|
70
|
+
device?: string | undefined;
|
|
71
|
+
device_id?: string | undefined;
|
|
72
|
+
device_type?: string | undefined;
|
|
73
|
+
device_vendor?: string | undefined;
|
|
74
|
+
device_pixel_ratio?: string | undefined;
|
|
75
|
+
screen_resolution?: string | undefined;
|
|
76
|
+
release?: string | undefined;
|
|
77
|
+
language?: string | undefined;
|
|
78
|
+
timezone?: string | undefined;
|
|
79
|
+
environment?: "development" | "production" | undefined;
|
|
80
|
+
source_url?: string | undefined;
|
|
81
|
+
source?: "web" | "app" | "offline" | undefined;
|
|
82
|
+
fbc?: string | undefined;
|
|
83
|
+
fbp?: string | undefined;
|
|
84
|
+
gclid?: string | undefined;
|
|
85
|
+
utm_source?: string | undefined;
|
|
86
|
+
utm_medium?: string | undefined;
|
|
87
|
+
utm_campaign?: string | undefined;
|
|
88
|
+
utm_term?: string | undefined;
|
|
89
|
+
utm_content?: string | undefined;
|
|
90
|
+
}>;
|
|
91
|
+
properties: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, Record<string, string | number | boolean | null>, Record<string, string | number | boolean | null>>;
|
|
92
|
+
}, "strip", z.ZodTypeAny, {
|
|
93
|
+
visitor_id: bigint;
|
|
94
|
+
name: string;
|
|
95
|
+
tags: {
|
|
96
|
+
os?: string | undefined;
|
|
97
|
+
os_name?: string | undefined;
|
|
98
|
+
os_version?: string | undefined;
|
|
99
|
+
browser?: string | undefined;
|
|
100
|
+
browser_name?: string | undefined;
|
|
101
|
+
browser_version?: string | undefined;
|
|
102
|
+
platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
|
|
103
|
+
device?: string | undefined;
|
|
104
|
+
device_id?: string | undefined;
|
|
105
|
+
device_type?: string | undefined;
|
|
106
|
+
device_vendor?: string | undefined;
|
|
107
|
+
device_pixel_ratio?: string | undefined;
|
|
108
|
+
screen_resolution?: `${number}x${number}` | undefined;
|
|
109
|
+
release?: string | undefined;
|
|
110
|
+
language?: string | undefined;
|
|
111
|
+
timezone?: string | undefined;
|
|
112
|
+
environment?: "development" | "production" | undefined;
|
|
113
|
+
source_url?: string | undefined;
|
|
114
|
+
source?: "web" | "app" | "offline" | undefined;
|
|
115
|
+
fbc?: string | undefined;
|
|
116
|
+
fbp?: string | undefined;
|
|
117
|
+
gclid?: string | undefined;
|
|
118
|
+
utm_source?: string | undefined;
|
|
119
|
+
utm_medium?: string | undefined;
|
|
120
|
+
utm_campaign?: string | undefined;
|
|
121
|
+
utm_term?: string | undefined;
|
|
122
|
+
utm_content?: string | undefined;
|
|
123
|
+
};
|
|
124
|
+
properties: Record<string, string | number | boolean | null>;
|
|
125
|
+
}, {
|
|
126
|
+
visitor_id: bigint;
|
|
127
|
+
name: string;
|
|
128
|
+
tags: {
|
|
129
|
+
os?: string | undefined;
|
|
130
|
+
os_name?: string | undefined;
|
|
131
|
+
os_version?: string | undefined;
|
|
132
|
+
browser?: string | undefined;
|
|
133
|
+
browser_name?: string | undefined;
|
|
134
|
+
browser_version?: string | undefined;
|
|
135
|
+
platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
|
|
136
|
+
device?: string | undefined;
|
|
137
|
+
device_id?: string | undefined;
|
|
138
|
+
device_type?: string | undefined;
|
|
139
|
+
device_vendor?: string | undefined;
|
|
140
|
+
device_pixel_ratio?: string | undefined;
|
|
141
|
+
screen_resolution?: string | undefined;
|
|
142
|
+
release?: string | undefined;
|
|
143
|
+
language?: string | undefined;
|
|
144
|
+
timezone?: string | undefined;
|
|
145
|
+
environment?: "development" | "production" | undefined;
|
|
146
|
+
source_url?: string | undefined;
|
|
147
|
+
source?: "web" | "app" | "offline" | undefined;
|
|
148
|
+
fbc?: string | undefined;
|
|
149
|
+
fbp?: string | undefined;
|
|
150
|
+
gclid?: string | undefined;
|
|
151
|
+
utm_source?: string | undefined;
|
|
152
|
+
utm_medium?: string | undefined;
|
|
153
|
+
utm_campaign?: string | undefined;
|
|
154
|
+
utm_term?: string | undefined;
|
|
155
|
+
utm_content?: string | undefined;
|
|
156
|
+
};
|
|
157
|
+
properties: Record<string, string | number | boolean | null>;
|
|
158
|
+
}>;
|
|
159
|
+
declare const createVisitorSchema: z.ZodObject<{
|
|
160
|
+
device_id: z.ZodString;
|
|
161
|
+
properties: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, Record<string, string | number | boolean | null>, Record<string, string | number | boolean | null>>;
|
|
162
|
+
}, "strip", z.ZodTypeAny, {
|
|
163
|
+
device_id: string;
|
|
164
|
+
properties: Record<string, string | number | boolean | null>;
|
|
165
|
+
}, {
|
|
166
|
+
device_id: string;
|
|
167
|
+
properties: Record<string, string | number | boolean | null>;
|
|
168
|
+
}>;
|
|
169
|
+
declare const updateVisitorSchema: z.ZodObject<{
|
|
170
|
+
properties: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, Record<string, string | number | boolean | null>, Record<string, string | number | boolean | null>>;
|
|
171
|
+
}, "strip", z.ZodTypeAny, {
|
|
172
|
+
properties: Record<string, string | number | boolean | null>;
|
|
173
|
+
}, {
|
|
174
|
+
properties: Record<string, string | number | boolean | null>;
|
|
175
|
+
}>;
|
|
176
|
+
|
|
177
|
+
export { createTrackEventSchema, createVisitorSchema, updateVisitorSchema };
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
declare const createTrackEventSchema: z.ZodObject<{
|
|
4
|
+
name: z.ZodString;
|
|
5
|
+
visitor_id: z.ZodBigInt;
|
|
6
|
+
tags: z.ZodObject<{
|
|
7
|
+
os: z.ZodOptional<z.ZodString>;
|
|
8
|
+
os_name: z.ZodOptional<z.ZodString>;
|
|
9
|
+
os_version: z.ZodOptional<z.ZodString>;
|
|
10
|
+
browser: z.ZodOptional<z.ZodString>;
|
|
11
|
+
browser_name: z.ZodOptional<z.ZodString>;
|
|
12
|
+
browser_version: z.ZodOptional<z.ZodString>;
|
|
13
|
+
platform: z.ZodOptional<z.ZodEnum<["ios", "android", "web", "macos", "windows", "linux", "unknown"]>>;
|
|
14
|
+
device: z.ZodOptional<z.ZodString>;
|
|
15
|
+
device_id: z.ZodOptional<z.ZodString>;
|
|
16
|
+
device_type: z.ZodOptional<z.ZodString>;
|
|
17
|
+
device_vendor: z.ZodOptional<z.ZodString>;
|
|
18
|
+
device_pixel_ratio: z.ZodOptional<z.ZodString>;
|
|
19
|
+
screen_resolution: z.ZodOptional<z.ZodEffects<z.ZodString, `${number}x${number}`, string>>;
|
|
20
|
+
release: z.ZodOptional<z.ZodString>;
|
|
21
|
+
language: z.ZodOptional<z.ZodString>;
|
|
22
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
23
|
+
environment: z.ZodOptional<z.ZodEnum<["development", "production"]>>;
|
|
24
|
+
source_url: z.ZodOptional<z.ZodString>;
|
|
25
|
+
source: z.ZodOptional<z.ZodEnum<["web", "app", "offline"]>>;
|
|
26
|
+
fbc: z.ZodOptional<z.ZodString>;
|
|
27
|
+
fbp: z.ZodOptional<z.ZodString>;
|
|
28
|
+
gclid: z.ZodOptional<z.ZodString>;
|
|
29
|
+
utm_source: z.ZodOptional<z.ZodString>;
|
|
30
|
+
utm_medium: z.ZodOptional<z.ZodString>;
|
|
31
|
+
utm_campaign: z.ZodOptional<z.ZodString>;
|
|
32
|
+
utm_term: z.ZodOptional<z.ZodString>;
|
|
33
|
+
utm_content: z.ZodOptional<z.ZodString>;
|
|
34
|
+
}, "strip", z.ZodTypeAny, {
|
|
35
|
+
os?: string | undefined;
|
|
36
|
+
os_name?: string | undefined;
|
|
37
|
+
os_version?: string | undefined;
|
|
38
|
+
browser?: string | undefined;
|
|
39
|
+
browser_name?: string | undefined;
|
|
40
|
+
browser_version?: string | undefined;
|
|
41
|
+
platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
|
|
42
|
+
device?: string | undefined;
|
|
43
|
+
device_id?: string | undefined;
|
|
44
|
+
device_type?: string | undefined;
|
|
45
|
+
device_vendor?: string | undefined;
|
|
46
|
+
device_pixel_ratio?: string | undefined;
|
|
47
|
+
screen_resolution?: `${number}x${number}` | undefined;
|
|
48
|
+
release?: string | undefined;
|
|
49
|
+
language?: string | undefined;
|
|
50
|
+
timezone?: string | undefined;
|
|
51
|
+
environment?: "development" | "production" | undefined;
|
|
52
|
+
source_url?: string | undefined;
|
|
53
|
+
source?: "web" | "app" | "offline" | undefined;
|
|
54
|
+
fbc?: string | undefined;
|
|
55
|
+
fbp?: string | undefined;
|
|
56
|
+
gclid?: string | undefined;
|
|
57
|
+
utm_source?: string | undefined;
|
|
58
|
+
utm_medium?: string | undefined;
|
|
59
|
+
utm_campaign?: string | undefined;
|
|
60
|
+
utm_term?: string | undefined;
|
|
61
|
+
utm_content?: string | undefined;
|
|
62
|
+
}, {
|
|
63
|
+
os?: string | undefined;
|
|
64
|
+
os_name?: string | undefined;
|
|
65
|
+
os_version?: string | undefined;
|
|
66
|
+
browser?: string | undefined;
|
|
67
|
+
browser_name?: string | undefined;
|
|
68
|
+
browser_version?: string | undefined;
|
|
69
|
+
platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
|
|
70
|
+
device?: string | undefined;
|
|
71
|
+
device_id?: string | undefined;
|
|
72
|
+
device_type?: string | undefined;
|
|
73
|
+
device_vendor?: string | undefined;
|
|
74
|
+
device_pixel_ratio?: string | undefined;
|
|
75
|
+
screen_resolution?: string | undefined;
|
|
76
|
+
release?: string | undefined;
|
|
77
|
+
language?: string | undefined;
|
|
78
|
+
timezone?: string | undefined;
|
|
79
|
+
environment?: "development" | "production" | undefined;
|
|
80
|
+
source_url?: string | undefined;
|
|
81
|
+
source?: "web" | "app" | "offline" | undefined;
|
|
82
|
+
fbc?: string | undefined;
|
|
83
|
+
fbp?: string | undefined;
|
|
84
|
+
gclid?: string | undefined;
|
|
85
|
+
utm_source?: string | undefined;
|
|
86
|
+
utm_medium?: string | undefined;
|
|
87
|
+
utm_campaign?: string | undefined;
|
|
88
|
+
utm_term?: string | undefined;
|
|
89
|
+
utm_content?: string | undefined;
|
|
90
|
+
}>;
|
|
91
|
+
properties: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, Record<string, string | number | boolean | null>, Record<string, string | number | boolean | null>>;
|
|
92
|
+
}, "strip", z.ZodTypeAny, {
|
|
93
|
+
visitor_id: bigint;
|
|
94
|
+
name: string;
|
|
95
|
+
tags: {
|
|
96
|
+
os?: string | undefined;
|
|
97
|
+
os_name?: string | undefined;
|
|
98
|
+
os_version?: string | undefined;
|
|
99
|
+
browser?: string | undefined;
|
|
100
|
+
browser_name?: string | undefined;
|
|
101
|
+
browser_version?: string | undefined;
|
|
102
|
+
platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
|
|
103
|
+
device?: string | undefined;
|
|
104
|
+
device_id?: string | undefined;
|
|
105
|
+
device_type?: string | undefined;
|
|
106
|
+
device_vendor?: string | undefined;
|
|
107
|
+
device_pixel_ratio?: string | undefined;
|
|
108
|
+
screen_resolution?: `${number}x${number}` | undefined;
|
|
109
|
+
release?: string | undefined;
|
|
110
|
+
language?: string | undefined;
|
|
111
|
+
timezone?: string | undefined;
|
|
112
|
+
environment?: "development" | "production" | undefined;
|
|
113
|
+
source_url?: string | undefined;
|
|
114
|
+
source?: "web" | "app" | "offline" | undefined;
|
|
115
|
+
fbc?: string | undefined;
|
|
116
|
+
fbp?: string | undefined;
|
|
117
|
+
gclid?: string | undefined;
|
|
118
|
+
utm_source?: string | undefined;
|
|
119
|
+
utm_medium?: string | undefined;
|
|
120
|
+
utm_campaign?: string | undefined;
|
|
121
|
+
utm_term?: string | undefined;
|
|
122
|
+
utm_content?: string | undefined;
|
|
123
|
+
};
|
|
124
|
+
properties: Record<string, string | number | boolean | null>;
|
|
125
|
+
}, {
|
|
126
|
+
visitor_id: bigint;
|
|
127
|
+
name: string;
|
|
128
|
+
tags: {
|
|
129
|
+
os?: string | undefined;
|
|
130
|
+
os_name?: string | undefined;
|
|
131
|
+
os_version?: string | undefined;
|
|
132
|
+
browser?: string | undefined;
|
|
133
|
+
browser_name?: string | undefined;
|
|
134
|
+
browser_version?: string | undefined;
|
|
135
|
+
platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
|
|
136
|
+
device?: string | undefined;
|
|
137
|
+
device_id?: string | undefined;
|
|
138
|
+
device_type?: string | undefined;
|
|
139
|
+
device_vendor?: string | undefined;
|
|
140
|
+
device_pixel_ratio?: string | undefined;
|
|
141
|
+
screen_resolution?: string | undefined;
|
|
142
|
+
release?: string | undefined;
|
|
143
|
+
language?: string | undefined;
|
|
144
|
+
timezone?: string | undefined;
|
|
145
|
+
environment?: "development" | "production" | undefined;
|
|
146
|
+
source_url?: string | undefined;
|
|
147
|
+
source?: "web" | "app" | "offline" | undefined;
|
|
148
|
+
fbc?: string | undefined;
|
|
149
|
+
fbp?: string | undefined;
|
|
150
|
+
gclid?: string | undefined;
|
|
151
|
+
utm_source?: string | undefined;
|
|
152
|
+
utm_medium?: string | undefined;
|
|
153
|
+
utm_campaign?: string | undefined;
|
|
154
|
+
utm_term?: string | undefined;
|
|
155
|
+
utm_content?: string | undefined;
|
|
156
|
+
};
|
|
157
|
+
properties: Record<string, string | number | boolean | null>;
|
|
158
|
+
}>;
|
|
159
|
+
declare const createVisitorSchema: z.ZodObject<{
|
|
160
|
+
device_id: z.ZodString;
|
|
161
|
+
properties: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, Record<string, string | number | boolean | null>, Record<string, string | number | boolean | null>>;
|
|
162
|
+
}, "strip", z.ZodTypeAny, {
|
|
163
|
+
device_id: string;
|
|
164
|
+
properties: Record<string, string | number | boolean | null>;
|
|
165
|
+
}, {
|
|
166
|
+
device_id: string;
|
|
167
|
+
properties: Record<string, string | number | boolean | null>;
|
|
168
|
+
}>;
|
|
169
|
+
declare const updateVisitorSchema: z.ZodObject<{
|
|
170
|
+
properties: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>>, Record<string, string | number | boolean | null>, Record<string, string | number | boolean | null>>;
|
|
171
|
+
}, "strip", z.ZodTypeAny, {
|
|
172
|
+
properties: Record<string, string | number | boolean | null>;
|
|
173
|
+
}, {
|
|
174
|
+
properties: Record<string, string | number | boolean | null>;
|
|
175
|
+
}>;
|
|
176
|
+
|
|
177
|
+
export { createTrackEventSchema, createVisitorSchema, updateVisitorSchema };
|