@shware/analytics 0.1.4 → 0.1.6

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/react/index.tsx"],"sourcesContent":["export default function Analytics() {\n return null;\n}\n"],"mappings":";AAAe,SAAR,YAA6B;AAClC,SAAO;AACT;","names":[]}
@@ -0,0 +1,88 @@
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
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,55 @@
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 };
@@ -0,0 +1,55 @@
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 };
@@ -1,11 +1,11 @@
1
- import Bowser from 'bowser';
2
- import cookie from 'cookie';
3
- import { v4 } from 'uuid';
4
-
1
+ // src/web/index.ts
2
+ import Bowser from "bowser";
3
+ import cookie from "cookie";
4
+ import { v4 as uuidv4 } from "uuid";
5
5
  function getDeviceId() {
6
6
  const cached = localStorage.getItem("device_id");
7
7
  if (cached) return cached;
8
- const id = crypto?.randomUUID ? crypto.randomUUID() : v4();
8
+ const id = (crypto == null ? void 0 : crypto.randomUUID) ? crypto.randomUUID() : uuidv4();
9
9
  localStorage.setItem("device_id", id);
10
10
  return id;
11
11
  }
@@ -45,5 +45,8 @@ function getTags(release) {
45
45
  };
46
46
  return tags;
47
47
  }
48
-
49
- export { getDeviceId, getTags };
48
+ export {
49
+ getDeviceId,
50
+ getTags
51
+ };
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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,OAAO,YAAY;AACnB,OAAO,YAAY;AACnB,SAAS,MAAM,cAAc;AAGtB,SAAS,cAAc;AAC5B,QAAM,SAAS,aAAa,QAAQ,WAAW;AAC/C,MAAI,OAAQ,QAAO;AACnB,QAAM,MAAK,iCAAQ,cAAa,OAAO,WAAW,IAAI,OAAO;AAC7D,eAAa,QAAQ,aAAa,EAAE;AACpC,SAAO;AACT;AAEO,SAAS,QAAQ,SAAiB;AACvC,QAAM,SAAS,OAAO,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,OAAO,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":[]}
package/package.json CHANGED
@@ -1,17 +1,30 @@
1
1
  {
2
2
  "name": "@shware/analytics",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "tsc --watch",
7
- "build": "unbuild"
7
+ "build": "tsup"
8
8
  },
9
9
  "main": "./dist/index.mjs",
10
10
  "module": "./dist/index.mjs",
11
11
  "types": "./dist/index.d.mts",
12
12
  "exports": {
13
- ".": "./dist/index.mjs",
14
- "./web": "./dist/web.mjs"
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/index.js",
16
+ "require": "./dist/index.cjs"
17
+ },
18
+ "./web": {
19
+ "types": "./dist/web/index.d.ts",
20
+ "import": "./dist/web/index.js",
21
+ "require": "./dist/web/index.cjs"
22
+ },
23
+ "./react": {
24
+ "types": "./dist/react/index.d.ts",
25
+ "import": "./dist/react/index.js",
26
+ "require": "./dist/react/index.cjs"
27
+ }
15
28
  },
16
29
  "files": [
17
30
  "dist"
@@ -28,5 +41,8 @@
28
41
  "devDependencies": {
29
42
  "@types/node": "^22.13.10",
30
43
  "typescript": "5.7.3"
44
+ },
45
+ "peerDependencies": {
46
+ "react": "^19.0.0"
31
47
  }
32
48
  }
@@ -1,300 +0,0 @@
1
- interface Item {
2
- item_brand?: string;
3
- item_id?: string;
4
- item_name?: string;
5
- item_category?: string;
6
- item_category2?: string;
7
- item_category3?: string;
8
- item_category4?: string;
9
- item_category5?: string;
10
- item_list_id?: string;
11
- item_list_name?: string;
12
- item_location_id?: string;
13
- item_variant?: string;
14
- quantity?: number;
15
- price?: number;
16
- }
17
- /**
18
- * ref: https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtag
19
- * ref: https://firebase.google.com/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event
20
- * */
21
- type StandardEventProperties = {
22
- add_payment_info: {
23
- items?: Item[];
24
- currency?: string;
25
- value?: number;
26
- coupon?: string;
27
- payment_type?: string;
28
- };
29
- add_shipping_info: {
30
- items?: Item[];
31
- currency?: string;
32
- value?: number;
33
- coupon?: string;
34
- shipping_tier?: string;
35
- };
36
- add_to_cart: {
37
- items?: Item[];
38
- currency?: string;
39
- value?: number;
40
- };
41
- add_to_wishlist: {
42
- items?: Item[];
43
- currency?: string;
44
- value?: number;
45
- };
46
- begin_checkout: {
47
- currency?: string;
48
- value?: number;
49
- coupon?: string;
50
- items?: Item[];
51
- [key: string]: any;
52
- };
53
- close_convert_lead: {
54
- currency: string;
55
- value: number;
56
- };
57
- close_unconvert_lead: {
58
- currency: string;
59
- value: number;
60
- unconvert_lead_reason?: string;
61
- };
62
- disqualify_lead: {
63
- currency: string;
64
- value: number;
65
- disqualified_lead_reason?: string;
66
- };
67
- earn_virtual_currency: {
68
- virtual_currency_name: string;
69
- value: number;
70
- };
71
- generate_lead: {
72
- currency?: string;
73
- value?: number;
74
- };
75
- join_group: {
76
- group_id: string;
77
- };
78
- level_end: {
79
- level: number;
80
- success?: string;
81
- };
82
- level_start: {
83
- level: number;
84
- };
85
- level_up: {
86
- level: number;
87
- character?: string;
88
- };
89
- login: {
90
- method: string;
91
- };
92
- post_score: {
93
- score: number;
94
- level?: number;
95
- character?: string;
96
- };
97
- purchase: {
98
- affiliation?: string;
99
- coupon?: string;
100
- currency?: string;
101
- items?: Item[];
102
- shipping?: number;
103
- tax?: number;
104
- value?: number;
105
- transaction_id?: string;
106
- [key: string]: any;
107
- };
108
- qualify_lead: {
109
- currency: string;
110
- value: number;
111
- };
112
- refund: {
113
- affiliation?: string;
114
- coupon?: string;
115
- currency?: string;
116
- items?: Item[];
117
- shipping?: number;
118
- tax?: number;
119
- value?: number;
120
- transaction_id?: string;
121
- };
122
- remove_from_cart: {
123
- items?: Item[];
124
- value?: number;
125
- currency?: string;
126
- };
127
- search: {
128
- search_term: string;
129
- number_of_nights?: number;
130
- number_of_rooms?: number;
131
- number_of_passengers?: number;
132
- origin?: string;
133
- destination?: string;
134
- start_date?: string;
135
- end_date?: string;
136
- travel_class?: string;
137
- };
138
- select_content: {
139
- content_type: string;
140
- item_id: string;
141
- };
142
- select_item: {
143
- items?: Item[];
144
- content_type: string;
145
- item_list_id: string;
146
- item_list_name: string;
147
- };
148
- select_promotion: {
149
- creative_name: string;
150
- creative_slot: string;
151
- items?: Item[];
152
- location_id: string;
153
- promotion_id: string;
154
- promotion_name: string;
155
- };
156
- share: {
157
- content_type: string;
158
- item_id: string;
159
- method: string;
160
- activity_type?: string | null;
161
- post_id?: string;
162
- };
163
- sign_up: {
164
- method: string;
165
- };
166
- spend_virtual_currency: {
167
- item_name: string;
168
- virtual_currency_name: string;
169
- value: number;
170
- };
171
- tutorial_begin: undefined;
172
- tutorial_complete: undefined;
173
- unlock_achievement: {
174
- achievement_id: string;
175
- };
176
- view_cart: {
177
- items?: Item[];
178
- currency?: string;
179
- value?: number;
180
- };
181
- view_item: {
182
- items?: Item[];
183
- currency?: string;
184
- value?: number;
185
- };
186
- view_item_list: {
187
- items?: Item[];
188
- item_list_id?: string;
189
- item_list_name?: string;
190
- };
191
- view_promotion: {
192
- items?: Item[];
193
- location_id?: string;
194
- creative_name?: string;
195
- creative_slot?: string;
196
- promotion_id?: string;
197
- promotion_name?: string;
198
- };
199
- working_lead: {
200
- currency: string;
201
- value: number;
202
- lead_status?: string;
203
- };
204
- ad_impression: {
205
- value?: number;
206
- currency?: string;
207
- ad_format?: string;
208
- ad_platform?: string;
209
- ad_source?: string;
210
- ad_unit_name?: string;
211
- };
212
- app_open: undefined;
213
- campaign_details: {
214
- source: string;
215
- medium: string;
216
- campaign: string;
217
- term?: string;
218
- content?: string;
219
- aclid?: string;
220
- cp1?: string;
221
- };
222
- screen_view: {
223
- screen_name?: string;
224
- screen_class?: string;
225
- };
226
- view_search_results: {
227
- search_term: string;
228
- };
229
- };
230
- type AllowedPropertyValues = string | number | boolean | null;
231
- type EventName = Lowercase<string>;
232
- type CustomEventProperties = Record<Lowercase<string>, AllowedPropertyValues>;
233
- type TrackProperties<T extends EventName = EventName> = T extends keyof StandardEventProperties ? StandardEventProperties[T] : CustomEventProperties;
234
- type ThirdPartyTracker = <T extends EventName = EventName>(name: T, properties?: TrackProperties<T>, event_id?: string) => void;
235
- interface PlatformInfo {
236
- os?: string;
237
- os_name?: string;
238
- os_version?: string;
239
- browser?: string;
240
- browser_name?: string;
241
- browser_version?: string;
242
- platform?: 'ios' | 'android' | 'web' | 'macos' | 'windows' | 'linux' | 'unknown';
243
- }
244
- interface DeviceInfo {
245
- device?: string;
246
- device_id?: string;
247
- device_type?: string;
248
- device_vendor?: string;
249
- device_pixel_ratio?: string;
250
- screen_resolution?: `${number}x${number}`;
251
- }
252
- interface EnvironmentInfo {
253
- release?: string;
254
- language?: string;
255
- timezone?: string;
256
- environment?: 'development' | 'production';
257
- }
258
- interface SourceInfo {
259
- source_url?: string;
260
- source?: 'app' | 'web' | 'offline';
261
- }
262
- interface ThirdPartyFields {
263
- /**
264
- * Meta pixel fields
265
- * ref: https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters#fbc
266
- * Stored in the _fbc/_fbp browser cookie under your domain
267
- */
268
- fbc?: string;
269
- fbp?: string;
270
- /**
271
- * Google Analytics fields
272
- */
273
- gclid?: string;
274
- }
275
- interface UTMParams {
276
- utm_source?: string;
277
- utm_medium?: string;
278
- utm_campaign?: string;
279
- utm_term?: string;
280
- utm_content?: string;
281
- }
282
- interface TrackTags extends PlatformInfo, DeviceInfo, EnvironmentInfo, SourceInfo, ThirdPartyFields, UTMParams {
283
- [key: string]: string | undefined;
284
- }
285
- interface TrackEventResponse {
286
- /**
287
- * track event id
288
- * some tracking system will use event_id and event_name for deduplication
289
- * */
290
- id: string;
291
- }
292
- type VisitorProperties = Record<Lowercase<string>, AllowedPropertyValues>;
293
- interface Visitor {
294
- id: string;
295
- device_id: string;
296
- properties: VisitorProperties;
297
- }
298
- type ThirdPartyUserSetter = (properties: VisitorProperties) => void;
299
-
300
- export type { EventName as E, TrackTags as T, Visitor as V, ThirdPartyTracker as a, ThirdPartyUserSetter as b, TrackProperties as c, TrackEventResponse as d, VisitorProperties as e };
package/dist/web.d.mts DELETED
@@ -1,6 +0,0 @@
1
- import { T as TrackTags } from './shared/analytics.BsiFCGfy.mjs';
2
-
3
- declare function getDeviceId(): string;
4
- declare function getTags(release: string): TrackTags;
5
-
6
- export { getDeviceId, getTags };