@shware/analytics 0.1.7 → 0.1.9
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/package.json +6 -11
- package/dist/index.cjs +0 -201
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -501
- package/dist/next/index.cjs +0 -49
- package/dist/next/index.cjs.map +0 -1
- package/dist/next/index.d.cts +0 -3
- package/dist/react/index.cjs +0 -29
- package/dist/react/index.cjs.map +0 -1
- package/dist/react/index.d.cts +0 -3
- package/dist/react-router/index.cjs +0 -48
- package/dist/react-router/index.cjs.map +0 -1
- package/dist/react-router/index.d.cts +0 -3
- package/dist/web/index.cjs +0 -88
- package/dist/web/index.cjs.map +0 -1
- package/dist/web/index.d.cts +0 -55
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shware/analytics",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "tsc --watch",
|
|
@@ -12,28 +12,23 @@
|
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
14
14
|
"types": "./dist/index.d.ts",
|
|
15
|
-
"import": "./dist/index.js"
|
|
16
|
-
"require": "./dist/index.cjs"
|
|
15
|
+
"import": "./dist/index.js"
|
|
17
16
|
},
|
|
18
17
|
"./web": {
|
|
19
18
|
"types": "./dist/web/index.d.ts",
|
|
20
|
-
"import": "./dist/web/index.js"
|
|
21
|
-
"require": "./dist/web/index.cjs"
|
|
19
|
+
"import": "./dist/web/index.js"
|
|
22
20
|
},
|
|
23
21
|
"./next": {
|
|
24
22
|
"types": "./dist/next/index.d.ts",
|
|
25
|
-
"import": "./dist/next/index.js"
|
|
26
|
-
"require": "./dist/next/index.cjs"
|
|
23
|
+
"import": "./dist/next/index.js"
|
|
27
24
|
},
|
|
28
25
|
"./react": {
|
|
29
26
|
"types": "./dist/react/index.d.ts",
|
|
30
|
-
"import": "./dist/react/index.js"
|
|
31
|
-
"require": "./dist/react/index.cjs"
|
|
27
|
+
"import": "./dist/react/index.js"
|
|
32
28
|
},
|
|
33
29
|
"./react-router": {
|
|
34
30
|
"types": "./dist/react-router/index.d.ts",
|
|
35
|
-
"import": "./dist/react-router/index.js"
|
|
36
|
-
"require": "./dist/react-router/index.cjs"
|
|
31
|
+
"import": "./dist/react-router/index.js"
|
|
37
32
|
}
|
|
38
33
|
},
|
|
39
34
|
"files": [
|
package/dist/index.cjs
DELETED
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key2 of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key2) && key2 !== except)
|
|
16
|
-
__defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
|
|
30
|
-
// src/index.ts
|
|
31
|
-
var src_exports = {};
|
|
32
|
-
__export(src_exports, {
|
|
33
|
-
createTrackEventSchema: () => createTrackEventSchema,
|
|
34
|
-
createVisitorSchema: () => createVisitorSchema,
|
|
35
|
-
getVisitor: () => getVisitor,
|
|
36
|
-
setVisitor: () => setVisitor,
|
|
37
|
-
setupAnalytics: () => setupAnalytics,
|
|
38
|
-
track: () => track,
|
|
39
|
-
updateVisitorSchema: () => updateVisitorSchema
|
|
40
|
-
});
|
|
41
|
-
module.exports = __toCommonJS(src_exports);
|
|
42
|
-
|
|
43
|
-
// src/setup.ts
|
|
44
|
-
var import_axios = __toESM(require("axios"), 1);
|
|
45
|
-
var import_axios_retry = __toESM(require("axios-retry"), 1);
|
|
46
|
-
var config = {
|
|
47
|
-
http: null,
|
|
48
|
-
release: "0.0.0",
|
|
49
|
-
storage: null,
|
|
50
|
-
getTags: null,
|
|
51
|
-
getDeviceId: null,
|
|
52
|
-
thirdPartyTrackers: [],
|
|
53
|
-
thirdPartyUserSetters: []
|
|
54
|
-
};
|
|
55
|
-
function setupAnalytics(init) {
|
|
56
|
-
config.release = init.release;
|
|
57
|
-
config.storage = init.storage;
|
|
58
|
-
config.getTags = init.getTags;
|
|
59
|
-
config.getDeviceId = init.getDeviceId;
|
|
60
|
-
config.thirdPartyTrackers = init.thirdPartyTrackers ?? [];
|
|
61
|
-
config.thirdPartyUserSetters = init.thirdPartyUserSetters ?? [];
|
|
62
|
-
config.http = import_axios.default.create({ baseURL: init.endpoint, withCredentials: true, adapter: "fetch" });
|
|
63
|
-
(0, import_axios_retry.default)(config.http, { retries: 5, retryDelay: import_axios_retry.default.exponentialDelay });
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// src/track.ts
|
|
67
|
-
var import_limiter = require("limiter");
|
|
68
|
-
|
|
69
|
-
// src/visitor.ts
|
|
70
|
-
var key = "visitor_id";
|
|
71
|
-
async function getOrCreateVisitor() {
|
|
72
|
-
const visitorId = await config.storage.getItem(key);
|
|
73
|
-
if (visitorId) {
|
|
74
|
-
const response = await config.http.get(`/visitors/${visitorId}`);
|
|
75
|
-
return response.data;
|
|
76
|
-
} else {
|
|
77
|
-
const dto = {
|
|
78
|
-
device_id: await config.getDeviceId(),
|
|
79
|
-
properties: await config.getTags()
|
|
80
|
-
};
|
|
81
|
-
const response = await config.http.post(`/visitors`, dto);
|
|
82
|
-
await config.storage.setItem(key, response.data.id);
|
|
83
|
-
return response.data;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
var visitor = null;
|
|
87
|
-
var visitorFetcher = null;
|
|
88
|
-
async function getVisitor() {
|
|
89
|
-
if (visitor) return visitor;
|
|
90
|
-
if (visitorFetcher) return visitorFetcher;
|
|
91
|
-
visitorFetcher = getOrCreateVisitor();
|
|
92
|
-
visitor = await visitorFetcher;
|
|
93
|
-
visitorFetcher = null;
|
|
94
|
-
return visitor;
|
|
95
|
-
}
|
|
96
|
-
async function setVisitor(properties) {
|
|
97
|
-
const dto = { properties };
|
|
98
|
-
const { id } = await getVisitor();
|
|
99
|
-
const response = await config.http.patch(`/visitors/${id}`, dto);
|
|
100
|
-
config.thirdPartyUserSetters.forEach((setter) => setter(properties));
|
|
101
|
-
visitor = response.data;
|
|
102
|
-
return response.data;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// src/track.ts
|
|
106
|
-
var defaultOptions = { enableThirdPartyTracking: true };
|
|
107
|
-
var REQUEST_TOKENS = 2;
|
|
108
|
-
var tokenBucket = new import_limiter.TokenBucket({
|
|
109
|
-
bucketSize: 20,
|
|
110
|
-
interval: "second",
|
|
111
|
-
tokensPerInterval: 1
|
|
112
|
-
});
|
|
113
|
-
async function trackAsync(name, properties, trackOptions = defaultOptions) {
|
|
114
|
-
var _a, _b;
|
|
115
|
-
try {
|
|
116
|
-
await tokenBucket.removeTokens(REQUEST_TOKENS);
|
|
117
|
-
const dto = {
|
|
118
|
-
name,
|
|
119
|
-
properties,
|
|
120
|
-
tags: await config.getTags(),
|
|
121
|
-
visitor_id: (await getVisitor()).id,
|
|
122
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
123
|
-
};
|
|
124
|
-
const { data } = await config.http.post(`/events`, dto);
|
|
125
|
-
if (!trackOptions.enableThirdPartyTracking || !config.thirdPartyTrackers) return;
|
|
126
|
-
config.thirdPartyTrackers.forEach((tracker) => tracker(name, properties, data.id));
|
|
127
|
-
(_a = trackOptions.onSucceed) == null ? void 0 : _a.call(trackOptions, data);
|
|
128
|
-
} catch (e) {
|
|
129
|
-
if (e instanceof Error) {
|
|
130
|
-
console.log("Failed to send track event:", e.message);
|
|
131
|
-
}
|
|
132
|
-
(_b = trackOptions.onError) == null ? void 0 : _b.call(trackOptions, e);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
function track(name, properties, trackOptions = defaultOptions) {
|
|
136
|
-
trackAsync(name, properties, trackOptions).catch(console.error);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// src/schema.ts
|
|
140
|
-
var import_zod = require("zod");
|
|
141
|
-
var createTrackEventSchema = import_zod.z.object({
|
|
142
|
-
name: import_zod.z.string().trim().min(1).max(64),
|
|
143
|
-
visitor_id: import_zod.z.coerce.bigint(),
|
|
144
|
-
tags: import_zod.z.object({
|
|
145
|
-
os: import_zod.z.string().optional(),
|
|
146
|
-
os_name: import_zod.z.string().optional(),
|
|
147
|
-
os_version: import_zod.z.string().optional(),
|
|
148
|
-
browser: import_zod.z.string().optional(),
|
|
149
|
-
browser_name: import_zod.z.string().optional(),
|
|
150
|
-
browser_version: import_zod.z.string().optional(),
|
|
151
|
-
platform: import_zod.z.enum(["ios", "android", "web", "macos", "windows", "linux", "unknown"]).optional(),
|
|
152
|
-
device: import_zod.z.string().optional(),
|
|
153
|
-
device_id: import_zod.z.string().trim().min(1).max(36).optional(),
|
|
154
|
-
device_type: import_zod.z.string().optional(),
|
|
155
|
-
device_vendor: import_zod.z.string().optional(),
|
|
156
|
-
device_pixel_ratio: import_zod.z.string().optional(),
|
|
157
|
-
screen_resolution: import_zod.z.string().regex(/^\d+x\d+$/).transform((v) => v).optional(),
|
|
158
|
-
release: import_zod.z.string().optional(),
|
|
159
|
-
language: import_zod.z.string().optional(),
|
|
160
|
-
timezone: import_zod.z.string().optional(),
|
|
161
|
-
environment: import_zod.z.enum(["development", "production"]).optional(),
|
|
162
|
-
source_url: import_zod.z.string().optional(),
|
|
163
|
-
source: import_zod.z.enum(["web", "app", "offline"]).optional(),
|
|
164
|
-
fbc: import_zod.z.string().optional(),
|
|
165
|
-
fbp: import_zod.z.string().optional(),
|
|
166
|
-
gclid: import_zod.z.string().optional(),
|
|
167
|
-
utm_source: import_zod.z.string().optional(),
|
|
168
|
-
utm_medium: import_zod.z.string().optional(),
|
|
169
|
-
utm_campaign: import_zod.z.string().optional(),
|
|
170
|
-
utm_term: import_zod.z.string().optional(),
|
|
171
|
-
utm_content: import_zod.z.string().optional()
|
|
172
|
-
}),
|
|
173
|
-
properties: import_zod.z.record(
|
|
174
|
-
import_zod.z.string().trim().min(1).max(128),
|
|
175
|
-
import_zod.z.union([import_zod.z.string().max(512), import_zod.z.number(), import_zod.z.boolean(), import_zod.z.null()])
|
|
176
|
-
).refine((data) => Object.keys(data).length <= 64)
|
|
177
|
-
});
|
|
178
|
-
var createVisitorSchema = import_zod.z.object({
|
|
179
|
-
device_id: import_zod.z.string().trim().min(1).max(36),
|
|
180
|
-
properties: import_zod.z.record(
|
|
181
|
-
import_zod.z.string().trim().min(1).max(128),
|
|
182
|
-
import_zod.z.union([import_zod.z.string().max(512), import_zod.z.number(), import_zod.z.boolean(), import_zod.z.null()])
|
|
183
|
-
).refine((data) => Object.keys(data).length <= 64)
|
|
184
|
-
});
|
|
185
|
-
var updateVisitorSchema = import_zod.z.object({
|
|
186
|
-
properties: import_zod.z.record(
|
|
187
|
-
import_zod.z.string().trim().min(1).max(128),
|
|
188
|
-
import_zod.z.union([import_zod.z.string().max(512), import_zod.z.number(), import_zod.z.boolean(), import_zod.z.null()])
|
|
189
|
-
).refine((data) => Object.keys(data).length <= 64)
|
|
190
|
-
});
|
|
191
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
192
|
-
0 && (module.exports = {
|
|
193
|
-
createTrackEventSchema,
|
|
194
|
-
createVisitorSchema,
|
|
195
|
-
getVisitor,
|
|
196
|
-
setVisitor,
|
|
197
|
-
setupAnalytics,
|
|
198
|
-
track,
|
|
199
|
-
updateVisitorSchema
|
|
200
|
-
});
|
|
201
|
-
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/setup.ts","../src/track.ts","../src/visitor.ts","../src/schema.ts"],"sourcesContent":["export { setupAnalytics } from './setup';\nexport { track } from './track';\nexport { getVisitor, setVisitor } from './visitor';\nexport { createTrackEventSchema, createVisitorSchema, updateVisitorSchema } from './schema';\nexport { type VisitorProperties, type TrackProperties, type TrackTags } from './types';\n","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';\nasync function getOrCreateVisitor(): Promise<Visitor> {\n const visitorId = await config.storage.getItem(key);\n if (visitorId) {\n const response = await config.http.get<Visitor>(`/visitors/${visitorId}`);\n return response.data;\n } else {\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 await config.storage.setItem(key, response.data.id);\n return response.data;\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":["axios","retry"]}
|
package/dist/index.d.cts
DELETED
|
@@ -1,501 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
|
|
3
|
-
interface Item {
|
|
4
|
-
item_brand?: string;
|
|
5
|
-
item_id?: string;
|
|
6
|
-
item_name?: string;
|
|
7
|
-
item_category?: string;
|
|
8
|
-
item_category2?: string;
|
|
9
|
-
item_category3?: string;
|
|
10
|
-
item_category4?: string;
|
|
11
|
-
item_category5?: string;
|
|
12
|
-
item_list_id?: string;
|
|
13
|
-
item_list_name?: string;
|
|
14
|
-
item_location_id?: string;
|
|
15
|
-
item_variant?: string;
|
|
16
|
-
quantity?: number;
|
|
17
|
-
price?: number;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* ref: https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtag
|
|
21
|
-
* ref: https://firebase.google.com/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event
|
|
22
|
-
* */
|
|
23
|
-
type StandardEventProperties = {
|
|
24
|
-
add_payment_info: {
|
|
25
|
-
items?: Item[];
|
|
26
|
-
currency?: string;
|
|
27
|
-
value?: number;
|
|
28
|
-
coupon?: string;
|
|
29
|
-
payment_type?: string;
|
|
30
|
-
};
|
|
31
|
-
add_shipping_info: {
|
|
32
|
-
items?: Item[];
|
|
33
|
-
currency?: string;
|
|
34
|
-
value?: number;
|
|
35
|
-
coupon?: string;
|
|
36
|
-
shipping_tier?: string;
|
|
37
|
-
};
|
|
38
|
-
add_to_cart: {
|
|
39
|
-
items?: Item[];
|
|
40
|
-
currency?: string;
|
|
41
|
-
value?: number;
|
|
42
|
-
};
|
|
43
|
-
add_to_wishlist: {
|
|
44
|
-
items?: Item[];
|
|
45
|
-
currency?: string;
|
|
46
|
-
value?: number;
|
|
47
|
-
};
|
|
48
|
-
begin_checkout: {
|
|
49
|
-
currency?: string;
|
|
50
|
-
value?: number;
|
|
51
|
-
coupon?: string;
|
|
52
|
-
items?: Item[];
|
|
53
|
-
[key: string]: any;
|
|
54
|
-
};
|
|
55
|
-
close_convert_lead: {
|
|
56
|
-
currency: string;
|
|
57
|
-
value: number;
|
|
58
|
-
};
|
|
59
|
-
close_unconvert_lead: {
|
|
60
|
-
currency: string;
|
|
61
|
-
value: number;
|
|
62
|
-
unconvert_lead_reason?: string;
|
|
63
|
-
};
|
|
64
|
-
disqualify_lead: {
|
|
65
|
-
currency: string;
|
|
66
|
-
value: number;
|
|
67
|
-
disqualified_lead_reason?: string;
|
|
68
|
-
};
|
|
69
|
-
earn_virtual_currency: {
|
|
70
|
-
virtual_currency_name: string;
|
|
71
|
-
value: number;
|
|
72
|
-
};
|
|
73
|
-
generate_lead: {
|
|
74
|
-
currency?: string;
|
|
75
|
-
value?: number;
|
|
76
|
-
};
|
|
77
|
-
join_group: {
|
|
78
|
-
group_id: string;
|
|
79
|
-
};
|
|
80
|
-
level_end: {
|
|
81
|
-
level: number;
|
|
82
|
-
success?: string;
|
|
83
|
-
};
|
|
84
|
-
level_start: {
|
|
85
|
-
level: number;
|
|
86
|
-
};
|
|
87
|
-
level_up: {
|
|
88
|
-
level: number;
|
|
89
|
-
character?: string;
|
|
90
|
-
};
|
|
91
|
-
login: {
|
|
92
|
-
method: string;
|
|
93
|
-
};
|
|
94
|
-
post_score: {
|
|
95
|
-
score: number;
|
|
96
|
-
level?: number;
|
|
97
|
-
character?: string;
|
|
98
|
-
};
|
|
99
|
-
purchase: {
|
|
100
|
-
affiliation?: string;
|
|
101
|
-
coupon?: string;
|
|
102
|
-
currency?: string;
|
|
103
|
-
items?: Item[];
|
|
104
|
-
shipping?: number;
|
|
105
|
-
tax?: number;
|
|
106
|
-
value?: number;
|
|
107
|
-
transaction_id?: string;
|
|
108
|
-
[key: string]: any;
|
|
109
|
-
};
|
|
110
|
-
qualify_lead: {
|
|
111
|
-
currency: string;
|
|
112
|
-
value: number;
|
|
113
|
-
};
|
|
114
|
-
refund: {
|
|
115
|
-
affiliation?: string;
|
|
116
|
-
coupon?: string;
|
|
117
|
-
currency?: string;
|
|
118
|
-
items?: Item[];
|
|
119
|
-
shipping?: number;
|
|
120
|
-
tax?: number;
|
|
121
|
-
value?: number;
|
|
122
|
-
transaction_id?: string;
|
|
123
|
-
};
|
|
124
|
-
remove_from_cart: {
|
|
125
|
-
items?: Item[];
|
|
126
|
-
value?: number;
|
|
127
|
-
currency?: string;
|
|
128
|
-
};
|
|
129
|
-
search: {
|
|
130
|
-
search_term: string;
|
|
131
|
-
number_of_nights?: number;
|
|
132
|
-
number_of_rooms?: number;
|
|
133
|
-
number_of_passengers?: number;
|
|
134
|
-
origin?: string;
|
|
135
|
-
destination?: string;
|
|
136
|
-
start_date?: string;
|
|
137
|
-
end_date?: string;
|
|
138
|
-
travel_class?: string;
|
|
139
|
-
};
|
|
140
|
-
select_content: {
|
|
141
|
-
content_type: string;
|
|
142
|
-
item_id: string;
|
|
143
|
-
};
|
|
144
|
-
select_item: {
|
|
145
|
-
items?: Item[];
|
|
146
|
-
content_type: string;
|
|
147
|
-
item_list_id: string;
|
|
148
|
-
item_list_name: string;
|
|
149
|
-
};
|
|
150
|
-
select_promotion: {
|
|
151
|
-
creative_name: string;
|
|
152
|
-
creative_slot: string;
|
|
153
|
-
items?: Item[];
|
|
154
|
-
location_id: string;
|
|
155
|
-
promotion_id: string;
|
|
156
|
-
promotion_name: string;
|
|
157
|
-
};
|
|
158
|
-
share: {
|
|
159
|
-
content_type: string;
|
|
160
|
-
item_id: string;
|
|
161
|
-
method: string;
|
|
162
|
-
activity_type?: string | null;
|
|
163
|
-
post_id?: string;
|
|
164
|
-
};
|
|
165
|
-
sign_up: {
|
|
166
|
-
method: string;
|
|
167
|
-
};
|
|
168
|
-
spend_virtual_currency: {
|
|
169
|
-
item_name: string;
|
|
170
|
-
virtual_currency_name: string;
|
|
171
|
-
value: number;
|
|
172
|
-
};
|
|
173
|
-
tutorial_begin: undefined;
|
|
174
|
-
tutorial_complete: undefined;
|
|
175
|
-
unlock_achievement: {
|
|
176
|
-
achievement_id: string;
|
|
177
|
-
};
|
|
178
|
-
view_cart: {
|
|
179
|
-
items?: Item[];
|
|
180
|
-
currency?: string;
|
|
181
|
-
value?: number;
|
|
182
|
-
};
|
|
183
|
-
view_item: {
|
|
184
|
-
items?: Item[];
|
|
185
|
-
currency?: string;
|
|
186
|
-
value?: number;
|
|
187
|
-
};
|
|
188
|
-
view_item_list: {
|
|
189
|
-
items?: Item[];
|
|
190
|
-
item_list_id?: string;
|
|
191
|
-
item_list_name?: string;
|
|
192
|
-
};
|
|
193
|
-
view_promotion: {
|
|
194
|
-
items?: Item[];
|
|
195
|
-
location_id?: string;
|
|
196
|
-
creative_name?: string;
|
|
197
|
-
creative_slot?: string;
|
|
198
|
-
promotion_id?: string;
|
|
199
|
-
promotion_name?: string;
|
|
200
|
-
};
|
|
201
|
-
working_lead: {
|
|
202
|
-
currency: string;
|
|
203
|
-
value: number;
|
|
204
|
-
lead_status?: string;
|
|
205
|
-
};
|
|
206
|
-
ad_impression: {
|
|
207
|
-
value?: number;
|
|
208
|
-
currency?: string;
|
|
209
|
-
ad_format?: string;
|
|
210
|
-
ad_platform?: string;
|
|
211
|
-
ad_source?: string;
|
|
212
|
-
ad_unit_name?: string;
|
|
213
|
-
};
|
|
214
|
-
app_open: undefined;
|
|
215
|
-
campaign_details: {
|
|
216
|
-
source: string;
|
|
217
|
-
medium: string;
|
|
218
|
-
campaign: string;
|
|
219
|
-
term?: string;
|
|
220
|
-
content?: string;
|
|
221
|
-
aclid?: string;
|
|
222
|
-
cp1?: string;
|
|
223
|
-
};
|
|
224
|
-
screen_view: {
|
|
225
|
-
screen_name?: string;
|
|
226
|
-
screen_class?: string;
|
|
227
|
-
};
|
|
228
|
-
view_search_results: {
|
|
229
|
-
search_term: string;
|
|
230
|
-
};
|
|
231
|
-
};
|
|
232
|
-
type AllowedPropertyValues = string | number | boolean | null;
|
|
233
|
-
type EventName = Lowercase<string>;
|
|
234
|
-
type CustomEventProperties = Record<Lowercase<string>, AllowedPropertyValues>;
|
|
235
|
-
type TrackProperties<T extends EventName = EventName> = T extends keyof StandardEventProperties ? StandardEventProperties[T] : CustomEventProperties;
|
|
236
|
-
type ThirdPartyTracker = <T extends EventName = EventName>(name: T, properties?: TrackProperties<T>, event_id?: string) => void;
|
|
237
|
-
interface PlatformInfo {
|
|
238
|
-
os?: string;
|
|
239
|
-
os_name?: string;
|
|
240
|
-
os_version?: string;
|
|
241
|
-
browser?: string;
|
|
242
|
-
browser_name?: string;
|
|
243
|
-
browser_version?: string;
|
|
244
|
-
platform?: 'ios' | 'android' | 'web' | 'macos' | 'windows' | 'linux' | 'unknown';
|
|
245
|
-
}
|
|
246
|
-
interface DeviceInfo {
|
|
247
|
-
device?: string;
|
|
248
|
-
device_id?: string;
|
|
249
|
-
device_type?: string;
|
|
250
|
-
device_vendor?: string;
|
|
251
|
-
device_pixel_ratio?: string;
|
|
252
|
-
screen_resolution?: `${number}x${number}`;
|
|
253
|
-
}
|
|
254
|
-
interface EnvironmentInfo {
|
|
255
|
-
release?: string;
|
|
256
|
-
language?: string;
|
|
257
|
-
timezone?: string;
|
|
258
|
-
environment?: 'development' | 'production';
|
|
259
|
-
}
|
|
260
|
-
interface SourceInfo {
|
|
261
|
-
source_url?: string;
|
|
262
|
-
source?: 'app' | 'web' | 'offline';
|
|
263
|
-
}
|
|
264
|
-
interface ThirdPartyFields {
|
|
265
|
-
/**
|
|
266
|
-
* Meta pixel fields
|
|
267
|
-
* ref: https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters#fbc
|
|
268
|
-
* Stored in the _fbc/_fbp browser cookie under your domain
|
|
269
|
-
*/
|
|
270
|
-
fbc?: string;
|
|
271
|
-
fbp?: string;
|
|
272
|
-
/**
|
|
273
|
-
* Google Analytics fields
|
|
274
|
-
*/
|
|
275
|
-
gclid?: string;
|
|
276
|
-
}
|
|
277
|
-
interface UTMParams {
|
|
278
|
-
utm_source?: string;
|
|
279
|
-
utm_medium?: string;
|
|
280
|
-
utm_campaign?: string;
|
|
281
|
-
utm_term?: string;
|
|
282
|
-
utm_content?: string;
|
|
283
|
-
}
|
|
284
|
-
interface TrackTags extends PlatformInfo, DeviceInfo, EnvironmentInfo, SourceInfo, ThirdPartyFields, UTMParams {
|
|
285
|
-
[key: string]: string | undefined;
|
|
286
|
-
}
|
|
287
|
-
interface TrackEventResponse {
|
|
288
|
-
/**
|
|
289
|
-
* track event id
|
|
290
|
-
* some tracking system will use event_id and event_name for deduplication
|
|
291
|
-
* */
|
|
292
|
-
id: string;
|
|
293
|
-
}
|
|
294
|
-
type VisitorProperties = Record<Lowercase<string>, AllowedPropertyValues>;
|
|
295
|
-
interface Visitor {
|
|
296
|
-
id: string;
|
|
297
|
-
device_id: string;
|
|
298
|
-
properties: VisitorProperties;
|
|
299
|
-
}
|
|
300
|
-
type ThirdPartyUserSetter = (properties: VisitorProperties) => void;
|
|
301
|
-
|
|
302
|
-
interface Storage {
|
|
303
|
-
getItem: (key: string) => (string | null) | Promise<string | null>;
|
|
304
|
-
setItem: (key: string, value: string) => void | Promise<void>;
|
|
305
|
-
}
|
|
306
|
-
interface Options {
|
|
307
|
-
release: string;
|
|
308
|
-
storage: Storage;
|
|
309
|
-
endpoint: string;
|
|
310
|
-
getTags: () => TrackTags | Promise<TrackTags>;
|
|
311
|
-
getDeviceId: () => string | Promise<string>;
|
|
312
|
-
thirdPartyTrackers?: ThirdPartyTracker[];
|
|
313
|
-
thirdPartyUserSetters?: ThirdPartyUserSetter[];
|
|
314
|
-
}
|
|
315
|
-
declare function setupAnalytics(init: Options): void;
|
|
316
|
-
|
|
317
|
-
interface TrackOptions {
|
|
318
|
-
enableThirdPartyTracking?: boolean;
|
|
319
|
-
onSucceed?: (response?: TrackEventResponse) => void;
|
|
320
|
-
onError?: (error: unknown) => void;
|
|
321
|
-
}
|
|
322
|
-
declare function track<T extends EventName = EventName>(name: T, properties?: TrackProperties<T>, trackOptions?: TrackOptions): void;
|
|
323
|
-
|
|
324
|
-
declare function getVisitor(): Promise<Visitor>;
|
|
325
|
-
declare function setVisitor(properties: VisitorProperties): Promise<Visitor>;
|
|
326
|
-
|
|
327
|
-
declare const createTrackEventSchema: z.ZodObject<{
|
|
328
|
-
name: z.ZodString;
|
|
329
|
-
visitor_id: z.ZodBigInt;
|
|
330
|
-
tags: z.ZodObject<{
|
|
331
|
-
os: z.ZodOptional<z.ZodString>;
|
|
332
|
-
os_name: z.ZodOptional<z.ZodString>;
|
|
333
|
-
os_version: z.ZodOptional<z.ZodString>;
|
|
334
|
-
browser: z.ZodOptional<z.ZodString>;
|
|
335
|
-
browser_name: z.ZodOptional<z.ZodString>;
|
|
336
|
-
browser_version: z.ZodOptional<z.ZodString>;
|
|
337
|
-
platform: z.ZodOptional<z.ZodEnum<["ios", "android", "web", "macos", "windows", "linux", "unknown"]>>;
|
|
338
|
-
device: z.ZodOptional<z.ZodString>;
|
|
339
|
-
device_id: z.ZodOptional<z.ZodString>;
|
|
340
|
-
device_type: z.ZodOptional<z.ZodString>;
|
|
341
|
-
device_vendor: z.ZodOptional<z.ZodString>;
|
|
342
|
-
device_pixel_ratio: z.ZodOptional<z.ZodString>;
|
|
343
|
-
screen_resolution: z.ZodOptional<z.ZodEffects<z.ZodString, `${number}x${number}`, string>>;
|
|
344
|
-
release: z.ZodOptional<z.ZodString>;
|
|
345
|
-
language: z.ZodOptional<z.ZodString>;
|
|
346
|
-
timezone: z.ZodOptional<z.ZodString>;
|
|
347
|
-
environment: z.ZodOptional<z.ZodEnum<["development", "production"]>>;
|
|
348
|
-
source_url: z.ZodOptional<z.ZodString>;
|
|
349
|
-
source: z.ZodOptional<z.ZodEnum<["web", "app", "offline"]>>;
|
|
350
|
-
fbc: z.ZodOptional<z.ZodString>;
|
|
351
|
-
fbp: z.ZodOptional<z.ZodString>;
|
|
352
|
-
gclid: z.ZodOptional<z.ZodString>;
|
|
353
|
-
utm_source: z.ZodOptional<z.ZodString>;
|
|
354
|
-
utm_medium: z.ZodOptional<z.ZodString>;
|
|
355
|
-
utm_campaign: z.ZodOptional<z.ZodString>;
|
|
356
|
-
utm_term: z.ZodOptional<z.ZodString>;
|
|
357
|
-
utm_content: z.ZodOptional<z.ZodString>;
|
|
358
|
-
}, "strip", z.ZodTypeAny, {
|
|
359
|
-
os?: string | undefined;
|
|
360
|
-
os_name?: string | undefined;
|
|
361
|
-
os_version?: string | undefined;
|
|
362
|
-
browser?: string | undefined;
|
|
363
|
-
browser_name?: string | undefined;
|
|
364
|
-
browser_version?: string | undefined;
|
|
365
|
-
platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
|
|
366
|
-
device?: string | undefined;
|
|
367
|
-
device_id?: string | undefined;
|
|
368
|
-
device_type?: string | undefined;
|
|
369
|
-
device_vendor?: string | undefined;
|
|
370
|
-
device_pixel_ratio?: string | undefined;
|
|
371
|
-
screen_resolution?: `${number}x${number}` | undefined;
|
|
372
|
-
release?: string | undefined;
|
|
373
|
-
language?: string | undefined;
|
|
374
|
-
timezone?: string | undefined;
|
|
375
|
-
environment?: "development" | "production" | undefined;
|
|
376
|
-
source_url?: string | undefined;
|
|
377
|
-
source?: "web" | "app" | "offline" | undefined;
|
|
378
|
-
fbc?: string | undefined;
|
|
379
|
-
fbp?: string | undefined;
|
|
380
|
-
gclid?: string | undefined;
|
|
381
|
-
utm_source?: string | undefined;
|
|
382
|
-
utm_medium?: string | undefined;
|
|
383
|
-
utm_campaign?: string | undefined;
|
|
384
|
-
utm_term?: string | undefined;
|
|
385
|
-
utm_content?: string | undefined;
|
|
386
|
-
}, {
|
|
387
|
-
os?: string | undefined;
|
|
388
|
-
os_name?: string | undefined;
|
|
389
|
-
os_version?: string | undefined;
|
|
390
|
-
browser?: string | undefined;
|
|
391
|
-
browser_name?: string | undefined;
|
|
392
|
-
browser_version?: string | undefined;
|
|
393
|
-
platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
|
|
394
|
-
device?: string | undefined;
|
|
395
|
-
device_id?: string | undefined;
|
|
396
|
-
device_type?: string | undefined;
|
|
397
|
-
device_vendor?: string | undefined;
|
|
398
|
-
device_pixel_ratio?: string | undefined;
|
|
399
|
-
screen_resolution?: string | undefined;
|
|
400
|
-
release?: string | undefined;
|
|
401
|
-
language?: string | undefined;
|
|
402
|
-
timezone?: string | undefined;
|
|
403
|
-
environment?: "development" | "production" | undefined;
|
|
404
|
-
source_url?: string | undefined;
|
|
405
|
-
source?: "web" | "app" | "offline" | undefined;
|
|
406
|
-
fbc?: string | undefined;
|
|
407
|
-
fbp?: string | undefined;
|
|
408
|
-
gclid?: string | undefined;
|
|
409
|
-
utm_source?: string | undefined;
|
|
410
|
-
utm_medium?: string | undefined;
|
|
411
|
-
utm_campaign?: string | undefined;
|
|
412
|
-
utm_term?: string | undefined;
|
|
413
|
-
utm_content?: string | undefined;
|
|
414
|
-
}>;
|
|
415
|
-
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>>;
|
|
416
|
-
}, "strip", z.ZodTypeAny, {
|
|
417
|
-
visitor_id: bigint;
|
|
418
|
-
name: string;
|
|
419
|
-
tags: {
|
|
420
|
-
os?: string | undefined;
|
|
421
|
-
os_name?: string | undefined;
|
|
422
|
-
os_version?: string | undefined;
|
|
423
|
-
browser?: string | undefined;
|
|
424
|
-
browser_name?: string | undefined;
|
|
425
|
-
browser_version?: string | undefined;
|
|
426
|
-
platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
|
|
427
|
-
device?: string | undefined;
|
|
428
|
-
device_id?: string | undefined;
|
|
429
|
-
device_type?: string | undefined;
|
|
430
|
-
device_vendor?: string | undefined;
|
|
431
|
-
device_pixel_ratio?: string | undefined;
|
|
432
|
-
screen_resolution?: `${number}x${number}` | undefined;
|
|
433
|
-
release?: string | undefined;
|
|
434
|
-
language?: string | undefined;
|
|
435
|
-
timezone?: string | undefined;
|
|
436
|
-
environment?: "development" | "production" | undefined;
|
|
437
|
-
source_url?: string | undefined;
|
|
438
|
-
source?: "web" | "app" | "offline" | undefined;
|
|
439
|
-
fbc?: string | undefined;
|
|
440
|
-
fbp?: string | undefined;
|
|
441
|
-
gclid?: string | undefined;
|
|
442
|
-
utm_source?: string | undefined;
|
|
443
|
-
utm_medium?: string | undefined;
|
|
444
|
-
utm_campaign?: string | undefined;
|
|
445
|
-
utm_term?: string | undefined;
|
|
446
|
-
utm_content?: string | undefined;
|
|
447
|
-
};
|
|
448
|
-
properties: Record<string, string | number | boolean | null>;
|
|
449
|
-
}, {
|
|
450
|
-
visitor_id: bigint;
|
|
451
|
-
name: string;
|
|
452
|
-
tags: {
|
|
453
|
-
os?: string | undefined;
|
|
454
|
-
os_name?: string | undefined;
|
|
455
|
-
os_version?: string | undefined;
|
|
456
|
-
browser?: string | undefined;
|
|
457
|
-
browser_name?: string | undefined;
|
|
458
|
-
browser_version?: string | undefined;
|
|
459
|
-
platform?: "ios" | "android" | "web" | "macos" | "windows" | "linux" | "unknown" | undefined;
|
|
460
|
-
device?: string | undefined;
|
|
461
|
-
device_id?: string | undefined;
|
|
462
|
-
device_type?: string | undefined;
|
|
463
|
-
device_vendor?: string | undefined;
|
|
464
|
-
device_pixel_ratio?: string | undefined;
|
|
465
|
-
screen_resolution?: string | undefined;
|
|
466
|
-
release?: string | undefined;
|
|
467
|
-
language?: string | undefined;
|
|
468
|
-
timezone?: string | undefined;
|
|
469
|
-
environment?: "development" | "production" | undefined;
|
|
470
|
-
source_url?: string | undefined;
|
|
471
|
-
source?: "web" | "app" | "offline" | undefined;
|
|
472
|
-
fbc?: string | undefined;
|
|
473
|
-
fbp?: string | undefined;
|
|
474
|
-
gclid?: string | undefined;
|
|
475
|
-
utm_source?: string | undefined;
|
|
476
|
-
utm_medium?: string | undefined;
|
|
477
|
-
utm_campaign?: string | undefined;
|
|
478
|
-
utm_term?: string | undefined;
|
|
479
|
-
utm_content?: string | undefined;
|
|
480
|
-
};
|
|
481
|
-
properties: Record<string, string | number | boolean | null>;
|
|
482
|
-
}>;
|
|
483
|
-
declare const createVisitorSchema: z.ZodObject<{
|
|
484
|
-
device_id: z.ZodString;
|
|
485
|
-
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>>;
|
|
486
|
-
}, "strip", z.ZodTypeAny, {
|
|
487
|
-
device_id: string;
|
|
488
|
-
properties: Record<string, string | number | boolean | null>;
|
|
489
|
-
}, {
|
|
490
|
-
device_id: string;
|
|
491
|
-
properties: Record<string, string | number | boolean | null>;
|
|
492
|
-
}>;
|
|
493
|
-
declare const updateVisitorSchema: z.ZodObject<{
|
|
494
|
-
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>>;
|
|
495
|
-
}, "strip", z.ZodTypeAny, {
|
|
496
|
-
properties: Record<string, string | number | boolean | null>;
|
|
497
|
-
}, {
|
|
498
|
-
properties: Record<string, string | number | boolean | null>;
|
|
499
|
-
}>;
|
|
500
|
-
|
|
501
|
-
export { type TrackProperties, type TrackTags, type VisitorProperties, createTrackEventSchema, createVisitorSchema, getVisitor, setVisitor, setupAnalytics, track, updateVisitorSchema };
|
package/dist/next/index.cjs
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use client";
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
-
|
|
21
|
-
// src/next/index.tsx
|
|
22
|
-
var next_exports = {};
|
|
23
|
-
__export(next_exports, {
|
|
24
|
-
default: () => Analytics
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(next_exports);
|
|
27
|
-
var import_navigation = require("next/navigation");
|
|
28
|
-
var import_react = require("react");
|
|
29
|
-
var import__ = require("../index");
|
|
30
|
-
function Analytics() {
|
|
31
|
-
const pathname = (0, import_navigation.usePathname)();
|
|
32
|
-
const params = (0, import_navigation.useSearchParams)();
|
|
33
|
-
(0, import_react.useEffect)(() => {
|
|
34
|
-
const properties = {
|
|
35
|
-
pathname,
|
|
36
|
-
referrer: document.referrer,
|
|
37
|
-
gclid: params.get("gclid"),
|
|
38
|
-
fbclid: params.get("fbclid"),
|
|
39
|
-
utm_source: params.get("utm_source"),
|
|
40
|
-
utm_medium: params.get("utm_medium"),
|
|
41
|
-
utm_campaign: params.get("utm_campaign"),
|
|
42
|
-
utm_term: params.get("utm_term"),
|
|
43
|
-
utm_content: params.get("utm_content")
|
|
44
|
-
};
|
|
45
|
-
(0, import__.track)("page_view", properties, { enableThirdPartyTracking: false });
|
|
46
|
-
}, [pathname, params]);
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=index.cjs.map
|
package/dist/next/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/next/index.tsx"],"sourcesContent":["'use client';\n\nimport { usePathname, useSearchParams } from 'next/navigation';\nimport { useEffect } from 'react';\nimport { track } from '../index';\n\nexport default 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 return null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,wBAA6C;AAC7C,mBAA0B;AAC1B,eAAsB;AAEP,SAAR,YAA6B;AAClC,QAAM,eAAW,+BAAY;AAC7B,QAAM,aAAS,mCAAgB;AAE/B,8BAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,wBAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,SAAO;AACT;","names":[]}
|
package/dist/next/index.d.cts
DELETED
package/dist/react/index.cjs
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
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/react/index.tsx
|
|
21
|
-
var react_exports = {};
|
|
22
|
-
__export(react_exports, {
|
|
23
|
-
default: () => Analytics
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(react_exports);
|
|
26
|
-
function Analytics() {
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=index.cjs.map
|
package/dist/react/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react/index.tsx"],"sourcesContent":["export default function Analytics() {\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAe,SAAR,YAA6B;AAClC,SAAO;AACT;","names":[]}
|
package/dist/react/index.d.cts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
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/react-router/index.tsx
|
|
21
|
-
var react_router_exports = {};
|
|
22
|
-
__export(react_router_exports, {
|
|
23
|
-
default: () => Analytics
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(react_router_exports);
|
|
26
|
-
var import_react = require("react");
|
|
27
|
-
var import_react_router = require("react-router");
|
|
28
|
-
var import__ = require("../index");
|
|
29
|
-
function Analytics() {
|
|
30
|
-
const { pathname } = (0, import_react_router.useLocation)();
|
|
31
|
-
const [params] = (0, import_react_router.useSearchParams)();
|
|
32
|
-
(0, import_react.useEffect)(() => {
|
|
33
|
-
const properties = {
|
|
34
|
-
pathname,
|
|
35
|
-
referrer: document.referrer,
|
|
36
|
-
gclid: params.get("gclid"),
|
|
37
|
-
fbclid: params.get("fbclid"),
|
|
38
|
-
utm_source: params.get("utm_source"),
|
|
39
|
-
utm_medium: params.get("utm_medium"),
|
|
40
|
-
utm_campaign: params.get("utm_campaign"),
|
|
41
|
-
utm_term: params.get("utm_term"),
|
|
42
|
-
utm_content: params.get("utm_content")
|
|
43
|
-
};
|
|
44
|
-
(0, import__.track)("page_view", properties, { enableThirdPartyTracking: false });
|
|
45
|
-
}, [pathname, params]);
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react-router/index.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useLocation, useSearchParams } from 'react-router';\nimport { track } from '../index';\n\nexport default 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 return null;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAC1B,0BAA6C;AAC7C,eAAsB;AAEP,SAAR,YAA6B;AAClC,QAAM,EAAE,SAAS,QAAI,iCAAY;AACjC,QAAM,CAAC,MAAM,QAAI,qCAAgB;AAEjC,8BAAU,MAAM;AACd,UAAM,aAAa;AAAA,MACjB;AAAA,MACA,UAAU,SAAS;AAAA,MACnB,OAAO,OAAO,IAAI,OAAO;AAAA,MACzB,QAAQ,OAAO,IAAI,QAAQ;AAAA,MAC3B,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,YAAY,OAAO,IAAI,YAAY;AAAA,MACnC,cAAc,OAAO,IAAI,cAAc;AAAA,MACvC,UAAU,OAAO,IAAI,UAAU;AAAA,MAC/B,aAAa,OAAO,IAAI,aAAa;AAAA,IACvC;AAEA,wBAAM,aAAa,YAAY,EAAE,0BAA0B,MAAM,CAAC;AAAA,EACpE,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,SAAO;AACT;","names":[]}
|
package/dist/web/index.cjs
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
|
|
30
|
-
// src/web/index.ts
|
|
31
|
-
var web_exports = {};
|
|
32
|
-
__export(web_exports, {
|
|
33
|
-
getDeviceId: () => getDeviceId,
|
|
34
|
-
getTags: () => getTags
|
|
35
|
-
});
|
|
36
|
-
module.exports = __toCommonJS(web_exports);
|
|
37
|
-
var import_bowser = __toESM(require("bowser"), 1);
|
|
38
|
-
var import_cookie = __toESM(require("cookie"), 1);
|
|
39
|
-
var import_uuid = require("uuid");
|
|
40
|
-
function getDeviceId() {
|
|
41
|
-
const cached = localStorage.getItem("device_id");
|
|
42
|
-
if (cached) return cached;
|
|
43
|
-
const id = (crypto == null ? void 0 : crypto.randomUUID) ? crypto.randomUUID() : (0, import_uuid.v4)();
|
|
44
|
-
localStorage.setItem("device_id", id);
|
|
45
|
-
return id;
|
|
46
|
-
}
|
|
47
|
-
function getTags(release) {
|
|
48
|
-
const parser = import_bowser.default.getParser(window.navigator.userAgent);
|
|
49
|
-
const params = new URLSearchParams(window.location.search);
|
|
50
|
-
const os = parser.getOS();
|
|
51
|
-
const browser = parser.getBrowser();
|
|
52
|
-
const platform = parser.getPlatform();
|
|
53
|
-
const parsed = import_cookie.default.parse(document.cookie);
|
|
54
|
-
const tags = {
|
|
55
|
-
os: `${os.name} ${os.version}`,
|
|
56
|
-
os_name: os.name,
|
|
57
|
-
os_version: os.version,
|
|
58
|
-
browser: `${browser.name} ${browser.version}`,
|
|
59
|
-
browser_name: browser.name,
|
|
60
|
-
browser_version: browser.version,
|
|
61
|
-
platform: "web",
|
|
62
|
-
device: platform.model,
|
|
63
|
-
device_id: getDeviceId(),
|
|
64
|
-
device_type: platform.type,
|
|
65
|
-
device_vendor: platform.vendor,
|
|
66
|
-
device_pixel_ratio: `${window.devicePixelRatio}`,
|
|
67
|
-
screen_resolution: `${window.screen.width}x${window.screen.height}`,
|
|
68
|
-
release,
|
|
69
|
-
language: navigator.language,
|
|
70
|
-
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
71
|
-
environment: process.env.NODE_ENV === "development" ? "development" : "production",
|
|
72
|
-
fbc: parsed._fbc,
|
|
73
|
-
fbp: parsed._fbp,
|
|
74
|
-
gclid: params.get("gclid") ?? void 0,
|
|
75
|
-
utm_source: params.get("utm_source") ?? void 0,
|
|
76
|
-
utm_medium: params.get("utm_medium") ?? void 0,
|
|
77
|
-
utm_campaign: params.get("utm_campaign") ?? void 0,
|
|
78
|
-
utm_term: params.get("utm_term") ?? void 0,
|
|
79
|
-
utm_content: params.get("utm_content") ?? void 0
|
|
80
|
-
};
|
|
81
|
-
return tags;
|
|
82
|
-
}
|
|
83
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
84
|
-
0 && (module.exports = {
|
|
85
|
-
getDeviceId,
|
|
86
|
-
getTags
|
|
87
|
-
});
|
|
88
|
-
//# sourceMappingURL=index.cjs.map
|
package/dist/web/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/web/index.ts"],"sourcesContent":["import Bowser from 'bowser';\nimport cookie from 'cookie';\nimport { v4 as uuidv4 } from 'uuid';\nimport { TrackTags } from '../types';\n\nexport function getDeviceId() {\n const cached = localStorage.getItem('device_id');\n if (cached) return cached;\n const id = crypto?.randomUUID ? crypto.randomUUID() : uuidv4();\n localStorage.setItem('device_id', id);\n return id;\n}\n\nexport function getTags(release: string) {\n const parser = Bowser.getParser(window.navigator.userAgent);\n const params = new URLSearchParams(window.location.search);\n const os = parser.getOS();\n const browser = parser.getBrowser();\n const platform = parser.getPlatform();\n const parsed = cookie.parse(document.cookie);\n const tags: TrackTags = {\n os: `${os.name} ${os.version}`,\n os_name: os.name,\n os_version: os.version,\n browser: `${browser.name} ${browser.version}`,\n browser_name: browser.name,\n browser_version: browser.version,\n platform: 'web',\n device: platform.model,\n device_id: getDeviceId(),\n device_type: platform.type,\n device_vendor: platform.vendor,\n device_pixel_ratio: `${window.devicePixelRatio}`,\n screen_resolution: `${window.screen.width}x${window.screen.height}`,\n release,\n language: navigator.language,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n environment: process.env.NODE_ENV === 'development' ? 'development' : 'production',\n fbc: parsed._fbc,\n fbp: parsed._fbp,\n gclid: params.get('gclid') ?? undefined,\n utm_source: params.get('utm_source') ?? undefined,\n utm_medium: params.get('utm_medium') ?? undefined,\n utm_campaign: params.get('utm_campaign') ?? undefined,\n utm_term: params.get('utm_term') ?? undefined,\n utm_content: params.get('utm_content') ?? undefined,\n };\n return tags;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AACnB,oBAAmB;AACnB,kBAA6B;AAGtB,SAAS,cAAc;AAC5B,QAAM,SAAS,aAAa,QAAQ,WAAW;AAC/C,MAAI,OAAQ,QAAO;AACnB,QAAM,MAAK,iCAAQ,cAAa,OAAO,WAAW,QAAI,YAAAA,IAAO;AAC7D,eAAa,QAAQ,aAAa,EAAE;AACpC,SAAO;AACT;AAEO,SAAS,QAAQ,SAAiB;AACvC,QAAM,SAAS,cAAAC,QAAO,UAAU,OAAO,UAAU,SAAS;AAC1D,QAAM,SAAS,IAAI,gBAAgB,OAAO,SAAS,MAAM;AACzD,QAAM,KAAK,OAAO,MAAM;AACxB,QAAM,UAAU,OAAO,WAAW;AAClC,QAAM,WAAW,OAAO,YAAY;AACpC,QAAM,SAAS,cAAAC,QAAO,MAAM,SAAS,MAAM;AAC3C,QAAM,OAAkB;AAAA,IACtB,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,OAAO;AAAA,IAC5B,SAAS,GAAG;AAAA,IACZ,YAAY,GAAG;AAAA,IACf,SAAS,GAAG,QAAQ,IAAI,IAAI,QAAQ,OAAO;AAAA,IAC3C,cAAc,QAAQ;AAAA,IACtB,iBAAiB,QAAQ;AAAA,IACzB,UAAU;AAAA,IACV,QAAQ,SAAS;AAAA,IACjB,WAAW,YAAY;AAAA,IACvB,aAAa,SAAS;AAAA,IACtB,eAAe,SAAS;AAAA,IACxB,oBAAoB,GAAG,OAAO,gBAAgB;AAAA,IAC9C,mBAAmB,GAAG,OAAO,OAAO,KAAK,IAAI,OAAO,OAAO,MAAM;AAAA,IACjE;AAAA,IACA,UAAU,UAAU;AAAA,IACpB,UAAU,KAAK,eAAe,EAAE,gBAAgB,EAAE;AAAA,IAClD,aAAa,QAAQ,IAAI,aAAa,gBAAgB,gBAAgB;AAAA,IACtE,KAAK,OAAO;AAAA,IACZ,KAAK,OAAO;AAAA,IACZ,OAAO,OAAO,IAAI,OAAO,KAAK;AAAA,IAC9B,YAAY,OAAO,IAAI,YAAY,KAAK;AAAA,IACxC,YAAY,OAAO,IAAI,YAAY,KAAK;AAAA,IACxC,cAAc,OAAO,IAAI,cAAc,KAAK;AAAA,IAC5C,UAAU,OAAO,IAAI,UAAU,KAAK;AAAA,IACpC,aAAa,OAAO,IAAI,aAAa,KAAK;AAAA,EAC5C;AACA,SAAO;AACT;","names":["uuidv4","Bowser","cookie"]}
|
package/dist/web/index.d.cts
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
interface PlatformInfo {
|
|
2
|
-
os?: string;
|
|
3
|
-
os_name?: string;
|
|
4
|
-
os_version?: string;
|
|
5
|
-
browser?: string;
|
|
6
|
-
browser_name?: string;
|
|
7
|
-
browser_version?: string;
|
|
8
|
-
platform?: 'ios' | 'android' | 'web' | 'macos' | 'windows' | 'linux' | 'unknown';
|
|
9
|
-
}
|
|
10
|
-
interface DeviceInfo {
|
|
11
|
-
device?: string;
|
|
12
|
-
device_id?: string;
|
|
13
|
-
device_type?: string;
|
|
14
|
-
device_vendor?: string;
|
|
15
|
-
device_pixel_ratio?: string;
|
|
16
|
-
screen_resolution?: `${number}x${number}`;
|
|
17
|
-
}
|
|
18
|
-
interface EnvironmentInfo {
|
|
19
|
-
release?: string;
|
|
20
|
-
language?: string;
|
|
21
|
-
timezone?: string;
|
|
22
|
-
environment?: 'development' | 'production';
|
|
23
|
-
}
|
|
24
|
-
interface SourceInfo {
|
|
25
|
-
source_url?: string;
|
|
26
|
-
source?: 'app' | 'web' | 'offline';
|
|
27
|
-
}
|
|
28
|
-
interface ThirdPartyFields {
|
|
29
|
-
/**
|
|
30
|
-
* Meta pixel fields
|
|
31
|
-
* ref: https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters#fbc
|
|
32
|
-
* Stored in the _fbc/_fbp browser cookie under your domain
|
|
33
|
-
*/
|
|
34
|
-
fbc?: string;
|
|
35
|
-
fbp?: string;
|
|
36
|
-
/**
|
|
37
|
-
* Google Analytics fields
|
|
38
|
-
*/
|
|
39
|
-
gclid?: string;
|
|
40
|
-
}
|
|
41
|
-
interface UTMParams {
|
|
42
|
-
utm_source?: string;
|
|
43
|
-
utm_medium?: string;
|
|
44
|
-
utm_campaign?: string;
|
|
45
|
-
utm_term?: string;
|
|
46
|
-
utm_content?: string;
|
|
47
|
-
}
|
|
48
|
-
interface TrackTags extends PlatformInfo, DeviceInfo, EnvironmentInfo, SourceInfo, ThirdPartyFields, UTMParams {
|
|
49
|
-
[key: string]: string | undefined;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
declare function getDeviceId(): string;
|
|
53
|
-
declare function getTags(release: string): TrackTags;
|
|
54
|
-
|
|
55
|
-
export { getDeviceId, getTags };
|