@shware/analytics 0.2.3 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/schema/index.cjs +2 -1
- package/dist/schema/index.cjs.map +1 -1
- package/dist/schema/index.d.cts +5 -2
- package/dist/schema/index.d.ts +5 -2
- package/dist/schema/index.mjs +2 -1
- package/dist/schema/index.mjs.map +1 -1
- package/dist/track/index.cjs +10 -8
- package/dist/track/index.cjs.map +1 -1
- package/dist/track/index.mjs +10 -8
- package/dist/track/index.mjs.map +1 -1
- package/dist/track/types.cjs.map +1 -1
- package/dist/track/types.d.cts +4 -4
- package/dist/track/types.d.ts +4 -4
- package/package.json +1 -1
package/dist/schema/index.cjs
CHANGED
|
@@ -29,6 +29,7 @@ var import_zod = require("zod");
|
|
|
29
29
|
var createTrackEventSchema = import_zod.z.object({
|
|
30
30
|
name: import_zod.z.string().trim().min(1).max(64),
|
|
31
31
|
visitor_id: import_zod.z.coerce.bigint(),
|
|
32
|
+
timestamp: import_zod.z.string().datetime(),
|
|
32
33
|
tags: import_zod.z.object({
|
|
33
34
|
os: import_zod.z.string().optional(),
|
|
34
35
|
os_name: import_zod.z.string().optional(),
|
|
@@ -63,7 +64,7 @@ var createTrackEventSchema = import_zod.z.object({
|
|
|
63
64
|
import_zod.z.string().trim().min(1).max(128),
|
|
64
65
|
import_zod.z.union([import_zod.z.string().max(512), import_zod.z.number(), import_zod.z.boolean(), import_zod.z.null()])
|
|
65
66
|
).refine((data) => Object.keys(data).length <= 64).optional()
|
|
66
|
-
});
|
|
67
|
+
}).array().min(1).max(100);
|
|
67
68
|
var createVisitorSchema = import_zod.z.object({
|
|
68
69
|
device_id: import_zod.z.string().trim().min(1).max(36),
|
|
69
70
|
properties: import_zod.z.record(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const createTrackEventSchema = z.object({\n
|
|
1
|
+
{"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const createTrackEventSchema = z\n .object({\n name: z.string().trim().min(1).max(64),\n visitor_id: z.coerce.bigint(),\n timestamp: z.string().datetime(),\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\n .enum(['ios', 'android', 'web', 'macos', 'windows', 'linux', 'unknown'])\n .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 advertising_id: 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 .optional(),\n })\n .array()\n .min(1)\n .max(100);\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 .optional(),\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":[]}
|
package/dist/schema/index.d.cts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
|
|
3
|
-
declare const createTrackEventSchema: z.ZodObject<{
|
|
3
|
+
declare const createTrackEventSchema: z.ZodArray<z.ZodObject<{
|
|
4
4
|
name: z.ZodString;
|
|
5
5
|
visitor_id: z.ZodBigInt;
|
|
6
|
+
timestamp: z.ZodString;
|
|
6
7
|
tags: z.ZodObject<{
|
|
7
8
|
os: z.ZodOptional<z.ZodString>;
|
|
8
9
|
os_name: z.ZodOptional<z.ZodString>;
|
|
@@ -95,6 +96,7 @@ declare const createTrackEventSchema: z.ZodObject<{
|
|
|
95
96
|
}, "strip", z.ZodTypeAny, {
|
|
96
97
|
visitor_id: bigint;
|
|
97
98
|
name: string;
|
|
99
|
+
timestamp: string;
|
|
98
100
|
tags: {
|
|
99
101
|
gclid?: string | undefined;
|
|
100
102
|
language?: string | undefined;
|
|
@@ -129,6 +131,7 @@ declare const createTrackEventSchema: z.ZodObject<{
|
|
|
129
131
|
}, {
|
|
130
132
|
visitor_id: bigint;
|
|
131
133
|
name: string;
|
|
134
|
+
timestamp: string;
|
|
132
135
|
tags: {
|
|
133
136
|
gclid?: string | undefined;
|
|
134
137
|
language?: string | undefined;
|
|
@@ -160,7 +163,7 @@ declare const createTrackEventSchema: z.ZodObject<{
|
|
|
160
163
|
utm_content?: string | undefined;
|
|
161
164
|
};
|
|
162
165
|
properties?: Record<string, string | number | boolean | null> | undefined;
|
|
163
|
-
}>;
|
|
166
|
+
}>, "many">;
|
|
164
167
|
declare const createVisitorSchema: z.ZodObject<{
|
|
165
168
|
device_id: z.ZodString;
|
|
166
169
|
properties: z.ZodOptional<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>>>;
|
package/dist/schema/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
|
|
3
|
-
declare const createTrackEventSchema: z.ZodObject<{
|
|
3
|
+
declare const createTrackEventSchema: z.ZodArray<z.ZodObject<{
|
|
4
4
|
name: z.ZodString;
|
|
5
5
|
visitor_id: z.ZodBigInt;
|
|
6
|
+
timestamp: z.ZodString;
|
|
6
7
|
tags: z.ZodObject<{
|
|
7
8
|
os: z.ZodOptional<z.ZodString>;
|
|
8
9
|
os_name: z.ZodOptional<z.ZodString>;
|
|
@@ -95,6 +96,7 @@ declare const createTrackEventSchema: z.ZodObject<{
|
|
|
95
96
|
}, "strip", z.ZodTypeAny, {
|
|
96
97
|
visitor_id: bigint;
|
|
97
98
|
name: string;
|
|
99
|
+
timestamp: string;
|
|
98
100
|
tags: {
|
|
99
101
|
gclid?: string | undefined;
|
|
100
102
|
language?: string | undefined;
|
|
@@ -129,6 +131,7 @@ declare const createTrackEventSchema: z.ZodObject<{
|
|
|
129
131
|
}, {
|
|
130
132
|
visitor_id: bigint;
|
|
131
133
|
name: string;
|
|
134
|
+
timestamp: string;
|
|
132
135
|
tags: {
|
|
133
136
|
gclid?: string | undefined;
|
|
134
137
|
language?: string | undefined;
|
|
@@ -160,7 +163,7 @@ declare const createTrackEventSchema: z.ZodObject<{
|
|
|
160
163
|
utm_content?: string | undefined;
|
|
161
164
|
};
|
|
162
165
|
properties?: Record<string, string | number | boolean | null> | undefined;
|
|
163
|
-
}>;
|
|
166
|
+
}>, "many">;
|
|
164
167
|
declare const createVisitorSchema: z.ZodObject<{
|
|
165
168
|
device_id: z.ZodString;
|
|
166
169
|
properties: z.ZodOptional<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>>>;
|
package/dist/schema/index.mjs
CHANGED
|
@@ -3,6 +3,7 @@ import { z } from "zod";
|
|
|
3
3
|
var createTrackEventSchema = z.object({
|
|
4
4
|
name: z.string().trim().min(1).max(64),
|
|
5
5
|
visitor_id: z.coerce.bigint(),
|
|
6
|
+
timestamp: z.string().datetime(),
|
|
6
7
|
tags: z.object({
|
|
7
8
|
os: z.string().optional(),
|
|
8
9
|
os_name: z.string().optional(),
|
|
@@ -37,7 +38,7 @@ var createTrackEventSchema = z.object({
|
|
|
37
38
|
z.string().trim().min(1).max(128),
|
|
38
39
|
z.union([z.string().max(512), z.number(), z.boolean(), z.null()])
|
|
39
40
|
).refine((data) => Object.keys(data).length <= 64).optional()
|
|
40
|
-
});
|
|
41
|
+
}).array().min(1).max(100);
|
|
41
42
|
var createVisitorSchema = z.object({
|
|
42
43
|
device_id: z.string().trim().min(1).max(36),
|
|
43
44
|
properties: z.record(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const createTrackEventSchema = z.object({\n
|
|
1
|
+
{"version":3,"sources":["../../src/schema/index.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const createTrackEventSchema = z\n .object({\n name: z.string().trim().min(1).max(64),\n visitor_id: z.coerce.bigint(),\n timestamp: z.string().datetime(),\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\n .enum(['ios', 'android', 'web', 'macos', 'windows', 'linux', 'unknown'])\n .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 advertising_id: 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 .optional(),\n })\n .array()\n .min(1)\n .max(100);\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 .optional(),\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":[]}
|
package/dist/track/index.cjs
CHANGED
|
@@ -37,16 +37,18 @@ async function trackAsync(name, properties, trackOptions = defaultOptions) {
|
|
|
37
37
|
var _a, _b;
|
|
38
38
|
try {
|
|
39
39
|
await tokenBucket.removeTokens(REQUEST_TOKENS);
|
|
40
|
-
const dto =
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
const dto = [
|
|
41
|
+
{
|
|
42
|
+
name,
|
|
43
|
+
properties,
|
|
44
|
+
tags: await import_setup.config.getTags(),
|
|
45
|
+
visitor_id: (await (0, import_visitor.getVisitor)()).id,
|
|
46
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
47
|
+
}
|
|
48
|
+
];
|
|
47
49
|
const { data } = await import_setup.config.http.post(`/events`, dto);
|
|
48
50
|
if (!trackOptions.enableThirdPartyTracking || !import_setup.config.thirdPartyTrackers) return;
|
|
49
|
-
import_setup.config.thirdPartyTrackers.forEach((tracker) => tracker(name, properties, data.id));
|
|
51
|
+
import_setup.config.thirdPartyTrackers.forEach((tracker) => tracker(name, properties, data[0].id));
|
|
50
52
|
(_a = trackOptions.onSucceed) == null ? void 0 : _a.call(trackOptions, data);
|
|
51
53
|
} catch (e) {
|
|
52
54
|
if (e instanceof Error) {
|
package/dist/track/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/track/index.ts"],"sourcesContent":["import { TokenBucket } from 'limiter';\nimport { config } from '../setup/index';\nimport { getVisitor } from '../visitor/index';\nimport type {\n CreateTrackEventDTO,\n EventName,\n TrackName,\n TrackProperties,\n TrackEventResponse,\n} from './types';\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>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n trackOptions: TrackOptions = defaultOptions\n) {\n try {\n await tokenBucket.removeTokens(REQUEST_TOKENS);\n const dto: CreateTrackEventDTO<T> = {\n
|
|
1
|
+
{"version":3,"sources":["../../src/track/index.ts"],"sourcesContent":["import { TokenBucket } from 'limiter';\nimport { config } from '../setup/index';\nimport { getVisitor } from '../visitor/index';\nimport type {\n CreateTrackEventDTO,\n EventName,\n TrackName,\n TrackProperties,\n TrackEventResponse,\n} from './types';\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>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n trackOptions: TrackOptions = defaultOptions\n) {\n try {\n await tokenBucket.removeTokens(REQUEST_TOKENS);\n const dto: CreateTrackEventDTO<T> = [\n {\n name,\n properties,\n tags: await config.getTags(),\n visitor_id: (await getVisitor()).id,\n timestamp: new Date().toISOString(),\n },\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[0].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: TrackName<T>,\n properties?: TrackProperties<T>,\n trackOptions: TrackOptions = defaultOptions\n) {\n trackAsync(name, properties, trackOptions).catch(console.error);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4B;AAC5B,mBAAuB;AACvB,qBAA2B;AAe3B,IAAM,iBAA+B,EAAE,0BAA0B,KAAK;AAEtE,IAAM,iBAAiB;AACvB,IAAM,cAAc,IAAI,2BAAY;AAAA,EAClC,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,mBAAmB;AACrB,CAAC;AAED,eAAe,WACb,MACA,YACA,eAA6B,gBAC7B;AA9BF;AA+BE,MAAI;AACF,UAAM,YAAY,aAAa,cAAc;AAC7C,UAAM,MAA8B;AAAA,MAClC;AAAA,QACE;AAAA,QACA;AAAA,QACA,MAAM,MAAM,oBAAO,QAAQ;AAAA,QAC3B,aAAa,UAAM,2BAAW,GAAG;AAAA,QACjC,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,MACpC;AAAA,IACF;AACA,UAAM,EAAE,KAAK,IAAI,MAAM,oBAAO,KAAK,KAAyB,WAAW,GAAG;AAG1E,QAAI,CAAC,aAAa,4BAA4B,CAAC,oBAAO,mBAAoB;AAC1E,wBAAO,mBAAmB,QAAQ,CAAC,YAAY,QAAQ,MAAM,YAAY,KAAK,CAAC,EAAE,EAAE,CAAC;AACpF,uBAAa,cAAb,sCAAyB;AAAA,EAC3B,SAAS,GAAY;AACnB,QAAI,aAAa,OAAO;AACtB,cAAQ,IAAI,+BAA+B,EAAE,OAAO;AAAA,IACtD;AACA,uBAAa,YAAb,sCAAuB;AAAA,EACzB;AACF;AAEO,SAAS,MACd,MACA,YACA,eAA6B,gBAC7B;AACA,aAAW,MAAM,YAAY,YAAY,EAAE,MAAM,QAAQ,KAAK;AAChE;","names":[]}
|
package/dist/track/index.mjs
CHANGED
|
@@ -13,16 +13,18 @@ async function trackAsync(name, properties, trackOptions = defaultOptions) {
|
|
|
13
13
|
var _a, _b;
|
|
14
14
|
try {
|
|
15
15
|
await tokenBucket.removeTokens(REQUEST_TOKENS);
|
|
16
|
-
const dto =
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
const dto = [
|
|
17
|
+
{
|
|
18
|
+
name,
|
|
19
|
+
properties,
|
|
20
|
+
tags: await config.getTags(),
|
|
21
|
+
visitor_id: (await getVisitor()).id,
|
|
22
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
23
|
+
}
|
|
24
|
+
];
|
|
23
25
|
const { data } = await config.http.post(`/events`, dto);
|
|
24
26
|
if (!trackOptions.enableThirdPartyTracking || !config.thirdPartyTrackers) return;
|
|
25
|
-
config.thirdPartyTrackers.forEach((tracker) => tracker(name, properties, data.id));
|
|
27
|
+
config.thirdPartyTrackers.forEach((tracker) => tracker(name, properties, data[0].id));
|
|
26
28
|
(_a = trackOptions.onSucceed) == null ? void 0 : _a.call(trackOptions, data);
|
|
27
29
|
} catch (e) {
|
|
28
30
|
if (e instanceof Error) {
|
package/dist/track/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/track/index.ts"],"sourcesContent":["import { TokenBucket } from 'limiter';\nimport { config } from '../setup/index';\nimport { getVisitor } from '../visitor/index';\nimport type {\n CreateTrackEventDTO,\n EventName,\n TrackName,\n TrackProperties,\n TrackEventResponse,\n} from './types';\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>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n trackOptions: TrackOptions = defaultOptions\n) {\n try {\n await tokenBucket.removeTokens(REQUEST_TOKENS);\n const dto: CreateTrackEventDTO<T> = {\n
|
|
1
|
+
{"version":3,"sources":["../../src/track/index.ts"],"sourcesContent":["import { TokenBucket } from 'limiter';\nimport { config } from '../setup/index';\nimport { getVisitor } from '../visitor/index';\nimport type {\n CreateTrackEventDTO,\n EventName,\n TrackName,\n TrackProperties,\n TrackEventResponse,\n} from './types';\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>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n trackOptions: TrackOptions = defaultOptions\n) {\n try {\n await tokenBucket.removeTokens(REQUEST_TOKENS);\n const dto: CreateTrackEventDTO<T> = [\n {\n name,\n properties,\n tags: await config.getTags(),\n visitor_id: (await getVisitor()).id,\n timestamp: new Date().toISOString(),\n },\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[0].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: TrackName<T>,\n properties?: TrackProperties<T>,\n trackOptions: TrackOptions = defaultOptions\n) {\n trackAsync(name, properties, trackOptions).catch(console.error);\n}\n"],"mappings":";AAAA,SAAS,mBAAmB;AAC5B,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAe3B,IAAM,iBAA+B,EAAE,0BAA0B,KAAK;AAEtE,IAAM,iBAAiB;AACvB,IAAM,cAAc,IAAI,YAAY;AAAA,EAClC,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,mBAAmB;AACrB,CAAC;AAED,eAAe,WACb,MACA,YACA,eAA6B,gBAC7B;AA9BF;AA+BE,MAAI;AACF,UAAM,YAAY,aAAa,cAAc;AAC7C,UAAM,MAA8B;AAAA,MAClC;AAAA,QACE;AAAA,QACA;AAAA,QACA,MAAM,MAAM,OAAO,QAAQ;AAAA,QAC3B,aAAa,MAAM,WAAW,GAAG;AAAA,QACjC,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,MACpC;AAAA,IACF;AACA,UAAM,EAAE,KAAK,IAAI,MAAM,OAAO,KAAK,KAAyB,WAAW,GAAG;AAG1E,QAAI,CAAC,aAAa,4BAA4B,CAAC,OAAO,mBAAoB;AAC1E,WAAO,mBAAmB,QAAQ,CAAC,YAAY,QAAQ,MAAM,YAAY,KAAK,CAAC,EAAE,EAAE,CAAC;AACpF,uBAAa,cAAb,sCAAyB;AAAA,EAC3B,SAAS,GAAY;AACnB,QAAI,aAAa,OAAO;AACtB,cAAQ,IAAI,+BAA+B,EAAE,OAAO;AAAA,IACtD;AACA,uBAAa,YAAb,sCAAuB;AAAA,EACzB;AACF;AAEO,SAAS,MACd,MACA,YACA,eAA6B,gBAC7B;AACA,aAAW,MAAM,YAAY,YAAY,EAAE,MAAM,QAAQ,KAAK;AAChE;","names":[]}
|
package/dist/track/types.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/track/types.ts"],"sourcesContent":["import type { StandardEvents, UserProvidedData as GAUserProvidedData } from './gtag';\n\nexport type AllowedPropertyValues = string | number | boolean | null;\nexport type EventName = Lowercase<string> | 'CLS' | 'FCP' | 'FID' | 'INP' | 'LCP' | 'TTFB';\n\nexport type TrackName<T extends EventName = EventName> = T extends keyof StandardEvents\n ? T\n : EventName;\nexport type TrackProperties<T extends EventName = EventName> = T extends keyof StandardEvents\n ? StandardEvents[T]\n : Record<Lowercase<string>, AllowedPropertyValues>;\n\nexport interface UserData {\n userId: string;\n email?: string;\n firstName?: string;\n lastName?: string;\n phone?: string;\n dateOfBirth?: string;\n gender?: string;\n city?: string;\n state?: string;\n postal?: string;\n country?: string;\n}\n\nexport interface UserProvidedData extends GAUserProvidedData {\n user_id?: string;\n ip_address?: string;\n user_agent?: string;\n gender?: 'female' | 'male';\n birthday?: { year: number; month: number; day: number };\n // meta specific\n fb_login_id?: string;\n fb_page_id?: string;\n}\n\nexport type ThirdPartyTracker = <T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n event_id?: string\n) => void;\n\nexport interface PlatformInfo {\n os?: string;\n os_name?: string;\n os_version?: string;\n browser?: string;\n browser_name?: string;\n browser_version?: string;\n platform?: 'ios' | 'android' | 'web' | 'macos' | 'windows' | 'linux' | 'unknown';\n}\n\nexport interface DeviceInfo {\n device?: string;\n device_id?: string;\n device_type?: string;\n device_vendor?: string;\n device_model_id?: string;\n device_pixel_ratio?: string;\n screen_width?: number;\n screen_height?: number;\n screen_resolution?: `${number}x${number}`;\n}\n\nexport interface AppInfo {\n install_referrer?: string;\n}\n\nexport interface EnvironmentInfo {\n release?: string;\n language?: string;\n timezone?: string | null;\n environment?: 'development' | 'production';\n}\n\nexport interface SourceInfo {\n source_url?: string;\n source?: 'app' | 'web' | 'offline';\n}\n\nexport interface AdvertisingInfo {\n /**\n * Meta pixel fields\n * ref: https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters#fbc\n * Stored in the _fbc/_fbp browser cookie under your domain\n */\n fbc?: string;\n fbp?: string;\n /**\n * Google Analytics fields\n */\n gclid?: string;\n /** iOS: IDFA, Android: Android Advertising ID */\n advertising_id?: string;\n}\n\nexport interface UTMParams {\n utm_source?: string;\n utm_medium?: string;\n utm_campaign?: string;\n utm_term?: string;\n utm_content?: string;\n}\n\nexport interface TrackTags\n extends PlatformInfo,\n DeviceInfo,\n AppInfo,\n EnvironmentInfo,\n SourceInfo,\n AdvertisingInfo,\n UTMParams {\n idempotency_key?: string;\n [key: string]: string | number | boolean | null | undefined;\n}\n\nexport
|
|
1
|
+
{"version":3,"sources":["../../src/track/types.ts"],"sourcesContent":["import type { StandardEvents, UserProvidedData as GAUserProvidedData } from './gtag';\n\nexport type AllowedPropertyValues = string | number | boolean | null;\nexport type EventName = Lowercase<string> | 'CLS' | 'FCP' | 'FID' | 'INP' | 'LCP' | 'TTFB';\n\nexport type TrackName<T extends EventName = EventName> = T extends keyof StandardEvents\n ? T\n : EventName;\nexport type TrackProperties<T extends EventName = EventName> = T extends keyof StandardEvents\n ? StandardEvents[T]\n : Record<Lowercase<string>, AllowedPropertyValues>;\n\nexport interface UserData {\n userId: string;\n email?: string;\n firstName?: string;\n lastName?: string;\n phone?: string;\n dateOfBirth?: string;\n gender?: string;\n city?: string;\n state?: string;\n postal?: string;\n country?: string;\n}\n\nexport interface UserProvidedData extends GAUserProvidedData {\n user_id?: string;\n ip_address?: string;\n user_agent?: string;\n gender?: 'female' | 'male';\n birthday?: { year: number; month: number; day: number };\n // meta specific\n fb_login_id?: string;\n fb_page_id?: string;\n}\n\nexport type ThirdPartyTracker = <T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n event_id?: string\n) => void;\n\nexport interface PlatformInfo {\n os?: string;\n os_name?: string;\n os_version?: string;\n browser?: string;\n browser_name?: string;\n browser_version?: string;\n platform?: 'ios' | 'android' | 'web' | 'macos' | 'windows' | 'linux' | 'unknown';\n}\n\nexport interface DeviceInfo {\n device?: string;\n device_id?: string;\n device_type?: string;\n device_vendor?: string;\n device_model_id?: string;\n device_pixel_ratio?: string;\n screen_width?: number;\n screen_height?: number;\n screen_resolution?: `${number}x${number}`;\n}\n\nexport interface AppInfo {\n install_referrer?: string;\n}\n\nexport interface EnvironmentInfo {\n release?: string;\n language?: string;\n timezone?: string | null;\n environment?: 'development' | 'production';\n}\n\nexport interface SourceInfo {\n source_url?: string;\n source?: 'app' | 'web' | 'offline';\n}\n\nexport interface AdvertisingInfo {\n /**\n * Meta pixel fields\n * ref: https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters#fbc\n * Stored in the _fbc/_fbp browser cookie under your domain\n */\n fbc?: string;\n fbp?: string;\n /**\n * Google Analytics fields\n */\n gclid?: string;\n /** iOS: IDFA, Android: Android Advertising ID */\n advertising_id?: string;\n}\n\nexport interface UTMParams {\n utm_source?: string;\n utm_medium?: string;\n utm_campaign?: string;\n utm_term?: string;\n utm_content?: string;\n}\n\nexport interface TrackTags\n extends PlatformInfo,\n DeviceInfo,\n AppInfo,\n EnvironmentInfo,\n SourceInfo,\n AdvertisingInfo,\n UTMParams {\n idempotency_key?: string;\n [key: string]: string | number | boolean | null | undefined;\n}\n\nexport type CreateTrackEventDTO<T extends EventName = EventName> = {\n name: TrackName<T>;\n tags: TrackTags;\n visitor_id: string;\n properties?: TrackProperties<T>;\n timestamp: string;\n}[];\n\nexport interface TrackEvent<T extends EventName = EventName> {\n id: string | bigint;\n name: TrackName<T>;\n tags: TrackTags;\n visitor_id: string | bigint;\n properties?: TrackProperties<T>;\n created_at: string;\n}\n\nexport type TrackEventResponse = {\n /**\n * track event id\n * some tracking system will use event_id and event_name for deduplication\n * */\n id: string;\n}[];\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
package/dist/track/types.d.cts
CHANGED
|
@@ -90,13 +90,13 @@ interface TrackTags extends PlatformInfo, DeviceInfo, AppInfo, EnvironmentInfo,
|
|
|
90
90
|
idempotency_key?: string;
|
|
91
91
|
[key: string]: string | number | boolean | null | undefined;
|
|
92
92
|
}
|
|
93
|
-
|
|
93
|
+
type CreateTrackEventDTO<T extends EventName = EventName> = {
|
|
94
94
|
name: TrackName<T>;
|
|
95
95
|
tags: TrackTags;
|
|
96
96
|
visitor_id: string;
|
|
97
97
|
properties?: TrackProperties<T>;
|
|
98
98
|
timestamp: string;
|
|
99
|
-
}
|
|
99
|
+
}[];
|
|
100
100
|
interface TrackEvent<T extends EventName = EventName> {
|
|
101
101
|
id: string | bigint;
|
|
102
102
|
name: TrackName<T>;
|
|
@@ -105,12 +105,12 @@ interface TrackEvent<T extends EventName = EventName> {
|
|
|
105
105
|
properties?: TrackProperties<T>;
|
|
106
106
|
created_at: string;
|
|
107
107
|
}
|
|
108
|
-
|
|
108
|
+
type TrackEventResponse = {
|
|
109
109
|
/**
|
|
110
110
|
* track event id
|
|
111
111
|
* some tracking system will use event_id and event_name for deduplication
|
|
112
112
|
* */
|
|
113
113
|
id: string;
|
|
114
|
-
}
|
|
114
|
+
}[];
|
|
115
115
|
|
|
116
116
|
export type { AdvertisingInfo, AllowedPropertyValues, AppInfo, CreateTrackEventDTO, DeviceInfo, EnvironmentInfo, EventName, PlatformInfo, SourceInfo, ThirdPartyTracker, TrackEvent, TrackEventResponse, TrackName, TrackProperties, TrackTags, UTMParams, UserData, UserProvidedData };
|
package/dist/track/types.d.ts
CHANGED
|
@@ -90,13 +90,13 @@ interface TrackTags extends PlatformInfo, DeviceInfo, AppInfo, EnvironmentInfo,
|
|
|
90
90
|
idempotency_key?: string;
|
|
91
91
|
[key: string]: string | number | boolean | null | undefined;
|
|
92
92
|
}
|
|
93
|
-
|
|
93
|
+
type CreateTrackEventDTO<T extends EventName = EventName> = {
|
|
94
94
|
name: TrackName<T>;
|
|
95
95
|
tags: TrackTags;
|
|
96
96
|
visitor_id: string;
|
|
97
97
|
properties?: TrackProperties<T>;
|
|
98
98
|
timestamp: string;
|
|
99
|
-
}
|
|
99
|
+
}[];
|
|
100
100
|
interface TrackEvent<T extends EventName = EventName> {
|
|
101
101
|
id: string | bigint;
|
|
102
102
|
name: TrackName<T>;
|
|
@@ -105,12 +105,12 @@ interface TrackEvent<T extends EventName = EventName> {
|
|
|
105
105
|
properties?: TrackProperties<T>;
|
|
106
106
|
created_at: string;
|
|
107
107
|
}
|
|
108
|
-
|
|
108
|
+
type TrackEventResponse = {
|
|
109
109
|
/**
|
|
110
110
|
* track event id
|
|
111
111
|
* some tracking system will use event_id and event_name for deduplication
|
|
112
112
|
* */
|
|
113
113
|
id: string;
|
|
114
|
-
}
|
|
114
|
+
}[];
|
|
115
115
|
|
|
116
116
|
export type { AdvertisingInfo, AllowedPropertyValues, AppInfo, CreateTrackEventDTO, DeviceInfo, EnvironmentInfo, EventName, PlatformInfo, SourceInfo, ThirdPartyTracker, TrackEvent, TrackEventResponse, TrackName, TrackProperties, TrackTags, UTMParams, UserData, UserProvidedData };
|