@shware/analytics 0.1.15 → 0.1.16

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.
Files changed (53) hide show
  1. package/dist/index.cjs +17 -182
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +7 -501
  4. package/dist/index.d.ts +7 -501
  5. package/dist/index.mjs +5 -158
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/next/index.cjs +3 -3
  8. package/dist/next/index.cjs.map +1 -1
  9. package/dist/next/index.mjs +1 -1
  10. package/dist/next/index.mjs.map +1 -1
  11. package/dist/react-router/index.cjs +3 -3
  12. package/dist/react-router/index.cjs.map +1 -1
  13. package/dist/react-router/index.mjs +1 -1
  14. package/dist/react-router/index.mjs.map +1 -1
  15. package/dist/schema/index.cjs +85 -0
  16. package/dist/schema/index.cjs.map +1 -0
  17. package/dist/schema/index.d.cts +177 -0
  18. package/dist/schema/index.d.ts +177 -0
  19. package/dist/schema/index.mjs +58 -0
  20. package/dist/schema/index.mjs.map +1 -0
  21. package/dist/setup/index.cjs +63 -0
  22. package/dist/setup/index.cjs.map +1 -0
  23. package/dist/setup/index.d.cts +29 -0
  24. package/dist/setup/index.d.ts +29 -0
  25. package/dist/setup/index.mjs +27 -0
  26. package/dist/setup/index.mjs.map +1 -0
  27. package/dist/track/ga.cjs +102 -0
  28. package/dist/track/ga.cjs.map +1 -0
  29. package/dist/track/ga.d.cts +4 -0
  30. package/dist/track/ga.d.ts +4 -0
  31. package/dist/track/ga.mjs +76 -0
  32. package/dist/track/ga.mjs.map +1 -0
  33. package/dist/track/index.cjs +65 -0
  34. package/dist/track/index.cjs.map +1 -0
  35. package/dist/track/index.d.cts +10 -0
  36. package/dist/track/index.d.ts +10 -0
  37. package/dist/track/index.mjs +40 -0
  38. package/dist/track/index.mjs.map +1 -0
  39. package/dist/types/index.cjs +19 -0
  40. package/dist/types/index.cjs.map +1 -0
  41. package/dist/types/index.d.cts +327 -0
  42. package/dist/types/index.d.ts +327 -0
  43. package/dist/types/index.mjs +1 -0
  44. package/dist/types/index.mjs.map +1 -0
  45. package/dist/visitor/index.cjs +77 -0
  46. package/dist/visitor/index.cjs.map +1 -0
  47. package/dist/visitor/index.d.cts +6 -0
  48. package/dist/visitor/index.d.ts +6 -0
  49. package/dist/visitor/index.mjs +51 -0
  50. package/dist/visitor/index.mjs.map +1 -0
  51. package/dist/web/index.d.cts +1 -50
  52. package/dist/web/index.d.ts +1 -50
  53. package/package.json +1 -1
@@ -0,0 +1,77 @@
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 key2 of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key2) && key2 !== except)
14
+ __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/visitor/index.ts
21
+ var visitor_exports = {};
22
+ __export(visitor_exports, {
23
+ getVisitor: () => getVisitor,
24
+ setVisitor: () => setVisitor
25
+ });
26
+ module.exports = __toCommonJS(visitor_exports);
27
+ var import_setup = require("../setup/index.cjs");
28
+ var key = "visitor_id";
29
+ async function createVisitor() {
30
+ const dto = {
31
+ device_id: await import_setup.config.getDeviceId(),
32
+ properties: await import_setup.config.getTags()
33
+ };
34
+ const response = await import_setup.config.http.post(`/visitors`, dto);
35
+ return response.data;
36
+ }
37
+ async function getOrCreateVisitor() {
38
+ const visitorId = await import_setup.config.storage.getItem(key);
39
+ if (visitorId) {
40
+ try {
41
+ const response = await import_setup.config.http.get(`/visitors/${visitorId}`);
42
+ return response.data;
43
+ } catch (e) {
44
+ const visitor2 = await createVisitor();
45
+ await import_setup.config.storage.setItem(key, visitor2.id);
46
+ return visitor2;
47
+ }
48
+ } else {
49
+ const visitor2 = await createVisitor();
50
+ await import_setup.config.storage.setItem(key, visitor2.id);
51
+ return visitor2;
52
+ }
53
+ }
54
+ var visitor = null;
55
+ var visitorFetcher = null;
56
+ async function getVisitor() {
57
+ if (visitor) return visitor;
58
+ if (visitorFetcher) return visitorFetcher;
59
+ visitorFetcher = getOrCreateVisitor();
60
+ visitor = await visitorFetcher;
61
+ visitorFetcher = null;
62
+ return visitor;
63
+ }
64
+ async function setVisitor(properties) {
65
+ const dto = { properties };
66
+ const { id } = await getVisitor();
67
+ const response = await import_setup.config.http.patch(`/visitors/${id}`, dto);
68
+ import_setup.config.thirdPartyUserSetters.forEach((setter) => setter(properties));
69
+ visitor = response.data;
70
+ return response.data;
71
+ }
72
+ // Annotate the CommonJS export names for ESM import in node:
73
+ 0 && (module.exports = {
74
+ getVisitor,
75
+ setVisitor
76
+ });
77
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/visitor/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport type {\n CreateVisitorDTO,\n UpdateVisitorDTO,\n Visitor,\n VisitorProperties,\n} from '../types/index';\n\nconst key = 'visitor_id';\n\nasync function createVisitor(): Promise<Visitor> {\n const dto: CreateVisitorDTO = {\n device_id: await config.getDeviceId(),\n properties: (await config.getTags()) as VisitorProperties,\n };\n const response = await config.http.post<Visitor>(`/visitors`, dto);\n return response.data;\n}\n\nasync function getOrCreateVisitor(): Promise<Visitor> {\n const visitorId = await config.storage.getItem(key);\n if (visitorId) {\n try {\n const response = await config.http.get<Visitor>(`/visitors/${visitorId}`);\n return response.data;\n } catch (e) {\n const visitor = await createVisitor();\n await config.storage.setItem(key, visitor.id);\n return visitor;\n }\n } else {\n const visitor = await createVisitor();\n await config.storage.setItem(key, visitor.id);\n return visitor;\n }\n}\n\nlet visitor: Visitor | null = null;\nlet visitorFetcher: Promise<Visitor> | null = null;\n\nexport async function getVisitor(): Promise<Visitor> {\n if (visitor) return visitor;\n if (visitorFetcher) return visitorFetcher;\n visitorFetcher = getOrCreateVisitor();\n visitor = await visitorFetcher;\n visitorFetcher = null;\n return visitor;\n}\n\nexport async function setVisitor(properties: VisitorProperties) {\n const dto: UpdateVisitorDTO = { properties };\n const { id } = await getVisitor();\n const response = await config.http.patch<Visitor>(`/visitors/${id}`, dto);\n config.thirdPartyUserSetters.forEach((setter) => setter(properties));\n visitor = response.data;\n return response.data;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAuB;AAQvB,IAAM,MAAM;AAEZ,eAAe,gBAAkC;AAC/C,QAAM,MAAwB;AAAA,IAC5B,WAAW,MAAM,oBAAO,YAAY;AAAA,IACpC,YAAa,MAAM,oBAAO,QAAQ;AAAA,EACpC;AACA,QAAM,WAAW,MAAM,oBAAO,KAAK,KAAc,aAAa,GAAG;AACjE,SAAO,SAAS;AAClB;AAEA,eAAe,qBAAuC;AACpD,QAAM,YAAY,MAAM,oBAAO,QAAQ,QAAQ,GAAG;AAClD,MAAI,WAAW;AACb,QAAI;AACF,YAAM,WAAW,MAAM,oBAAO,KAAK,IAAa,aAAa,SAAS,EAAE;AACxE,aAAO,SAAS;AAAA,IAClB,SAAS,GAAG;AACV,YAAMA,WAAU,MAAM,cAAc;AACpC,YAAM,oBAAO,QAAQ,QAAQ,KAAKA,SAAQ,EAAE;AAC5C,aAAOA;AAAA,IACT;AAAA,EACF,OAAO;AACL,UAAMA,WAAU,MAAM,cAAc;AACpC,UAAM,oBAAO,QAAQ,QAAQ,KAAKA,SAAQ,EAAE;AAC5C,WAAOA;AAAA,EACT;AACF;AAEA,IAAI,UAA0B;AAC9B,IAAI,iBAA0C;AAE9C,eAAsB,aAA+B;AACnD,MAAI,QAAS,QAAO;AACpB,MAAI,eAAgB,QAAO;AAC3B,mBAAiB,mBAAmB;AACpC,YAAU,MAAM;AAChB,mBAAiB;AACjB,SAAO;AACT;AAEA,eAAsB,WAAW,YAA+B;AAC9D,QAAM,MAAwB,EAAE,WAAW;AAC3C,QAAM,EAAE,GAAG,IAAI,MAAM,WAAW;AAChC,QAAM,WAAW,MAAM,oBAAO,KAAK,MAAe,aAAa,EAAE,IAAI,GAAG;AACxE,sBAAO,sBAAsB,QAAQ,CAAC,WAAW,OAAO,UAAU,CAAC;AACnE,YAAU,SAAS;AACnB,SAAO,SAAS;AAClB;","names":["visitor"]}
@@ -0,0 +1,6 @@
1
+ import { Visitor, VisitorProperties } from '../types/index.cjs';
2
+
3
+ declare function getVisitor(): Promise<Visitor>;
4
+ declare function setVisitor(properties: VisitorProperties): Promise<Visitor>;
5
+
6
+ export { getVisitor, setVisitor };
@@ -0,0 +1,6 @@
1
+ import { Visitor, VisitorProperties } from '../types/index.js';
2
+
3
+ declare function getVisitor(): Promise<Visitor>;
4
+ declare function setVisitor(properties: VisitorProperties): Promise<Visitor>;
5
+
6
+ export { getVisitor, setVisitor };
@@ -0,0 +1,51 @@
1
+ // src/visitor/index.ts
2
+ import { config } from "../setup/index.mjs";
3
+ var key = "visitor_id";
4
+ async function createVisitor() {
5
+ const dto = {
6
+ device_id: await config.getDeviceId(),
7
+ properties: await config.getTags()
8
+ };
9
+ const response = await config.http.post(`/visitors`, dto);
10
+ return response.data;
11
+ }
12
+ async function getOrCreateVisitor() {
13
+ const visitorId = await config.storage.getItem(key);
14
+ if (visitorId) {
15
+ try {
16
+ const response = await config.http.get(`/visitors/${visitorId}`);
17
+ return response.data;
18
+ } catch (e) {
19
+ const visitor2 = await createVisitor();
20
+ await config.storage.setItem(key, visitor2.id);
21
+ return visitor2;
22
+ }
23
+ } else {
24
+ const visitor2 = await createVisitor();
25
+ await config.storage.setItem(key, visitor2.id);
26
+ return visitor2;
27
+ }
28
+ }
29
+ var visitor = null;
30
+ var visitorFetcher = null;
31
+ async function getVisitor() {
32
+ if (visitor) return visitor;
33
+ if (visitorFetcher) return visitorFetcher;
34
+ visitorFetcher = getOrCreateVisitor();
35
+ visitor = await visitorFetcher;
36
+ visitorFetcher = null;
37
+ return visitor;
38
+ }
39
+ async function setVisitor(properties) {
40
+ const dto = { properties };
41
+ const { id } = await getVisitor();
42
+ const response = await config.http.patch(`/visitors/${id}`, dto);
43
+ config.thirdPartyUserSetters.forEach((setter) => setter(properties));
44
+ visitor = response.data;
45
+ return response.data;
46
+ }
47
+ export {
48
+ getVisitor,
49
+ setVisitor
50
+ };
51
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/visitor/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport type {\n CreateVisitorDTO,\n UpdateVisitorDTO,\n Visitor,\n VisitorProperties,\n} from '../types/index';\n\nconst key = 'visitor_id';\n\nasync function createVisitor(): Promise<Visitor> {\n const dto: CreateVisitorDTO = {\n device_id: await config.getDeviceId(),\n properties: (await config.getTags()) as VisitorProperties,\n };\n const response = await config.http.post<Visitor>(`/visitors`, dto);\n return response.data;\n}\n\nasync function getOrCreateVisitor(): Promise<Visitor> {\n const visitorId = await config.storage.getItem(key);\n if (visitorId) {\n try {\n const response = await config.http.get<Visitor>(`/visitors/${visitorId}`);\n return response.data;\n } catch (e) {\n const visitor = await createVisitor();\n await config.storage.setItem(key, visitor.id);\n return visitor;\n }\n } else {\n const visitor = await createVisitor();\n await config.storage.setItem(key, visitor.id);\n return visitor;\n }\n}\n\nlet visitor: Visitor | null = null;\nlet visitorFetcher: Promise<Visitor> | null = null;\n\nexport async function getVisitor(): Promise<Visitor> {\n if (visitor) return visitor;\n if (visitorFetcher) return visitorFetcher;\n visitorFetcher = getOrCreateVisitor();\n visitor = await visitorFetcher;\n visitorFetcher = null;\n return visitor;\n}\n\nexport async function setVisitor(properties: VisitorProperties) {\n const dto: UpdateVisitorDTO = { properties };\n const { id } = await getVisitor();\n const response = await config.http.patch<Visitor>(`/visitors/${id}`, dto);\n config.thirdPartyUserSetters.forEach((setter) => setter(properties));\n visitor = response.data;\n return response.data;\n}\n"],"mappings":";AAAA,SAAS,cAAc;AAQvB,IAAM,MAAM;AAEZ,eAAe,gBAAkC;AAC/C,QAAM,MAAwB;AAAA,IAC5B,WAAW,MAAM,OAAO,YAAY;AAAA,IACpC,YAAa,MAAM,OAAO,QAAQ;AAAA,EACpC;AACA,QAAM,WAAW,MAAM,OAAO,KAAK,KAAc,aAAa,GAAG;AACjE,SAAO,SAAS;AAClB;AAEA,eAAe,qBAAuC;AACpD,QAAM,YAAY,MAAM,OAAO,QAAQ,QAAQ,GAAG;AAClD,MAAI,WAAW;AACb,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,KAAK,IAAa,aAAa,SAAS,EAAE;AACxE,aAAO,SAAS;AAAA,IAClB,SAAS,GAAG;AACV,YAAMA,WAAU,MAAM,cAAc;AACpC,YAAM,OAAO,QAAQ,QAAQ,KAAKA,SAAQ,EAAE;AAC5C,aAAOA;AAAA,IACT;AAAA,EACF,OAAO;AACL,UAAMA,WAAU,MAAM,cAAc;AACpC,UAAM,OAAO,QAAQ,QAAQ,KAAKA,SAAQ,EAAE;AAC5C,WAAOA;AAAA,EACT;AACF;AAEA,IAAI,UAA0B;AAC9B,IAAI,iBAA0C;AAE9C,eAAsB,aAA+B;AACnD,MAAI,QAAS,QAAO;AACpB,MAAI,eAAgB,QAAO;AAC3B,mBAAiB,mBAAmB;AACpC,YAAU,MAAM;AAChB,mBAAiB;AACjB,SAAO;AACT;AAEA,eAAsB,WAAW,YAA+B;AAC9D,QAAM,MAAwB,EAAE,WAAW;AAC3C,QAAM,EAAE,GAAG,IAAI,MAAM,WAAW;AAChC,QAAM,WAAW,MAAM,OAAO,KAAK,MAAe,aAAa,EAAE,IAAI,GAAG;AACxE,SAAO,sBAAsB,QAAQ,CAAC,WAAW,OAAO,UAAU,CAAC;AACnE,YAAU,SAAS;AACnB,SAAO,SAAS;AAClB;","names":["visitor"]}
@@ -1,53 +1,4 @@
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
- }
1
+ import { TrackTags } from '../types/index.cjs';
51
2
 
52
3
  declare function getDeviceId(): string;
53
4
  declare function getTags(release: string): TrackTags;
@@ -1,53 +1,4 @@
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
- }
1
+ import { TrackTags } from '../types/index.js';
51
2
 
52
3
  declare function getDeviceId(): string;
53
4
  declare function getTags(release: string): TrackTags;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shware/analytics",
3
- "version": "0.1.15",
3
+ "version": "0.1.16",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "tsc --watch",