@shware/analytics 2.12.4 → 2.13.0
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/feedback/index.cjs +10 -1
- package/dist/feedback/index.cjs.map +1 -1
- package/dist/feedback/index.mjs +10 -1
- package/dist/feedback/index.mjs.map +1 -1
- package/dist/index.d.cts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/link/index.cjs +22 -4
- package/dist/link/index.cjs.map +1 -1
- package/dist/link/index.mjs +22 -4
- package/dist/link/index.mjs.map +1 -1
- package/dist/native/index.d.cts +0 -1
- package/dist/native/index.d.ts +0 -1
- package/dist/native/setup.d.cts +0 -1
- package/dist/native/setup.d.ts +0 -1
- package/dist/setup/index.cjs +9 -16
- package/dist/setup/index.cjs.map +1 -1
- package/dist/setup/index.d.cts +1 -2
- package/dist/setup/index.d.ts +1 -2
- package/dist/setup/index.mjs +9 -6
- package/dist/setup/index.mjs.map +1 -1
- package/dist/track/index.cjs +12 -3
- package/dist/track/index.cjs.map +1 -1
- package/dist/track/index.mjs +12 -3
- package/dist/track/index.mjs.map +1 -1
- package/dist/visitor/index.cjs +28 -19
- package/dist/visitor/index.cjs.map +1 -1
- package/dist/visitor/index.mjs +28 -19
- package/dist/visitor/index.mjs.map +1 -1
- package/dist/web/index.d.cts +0 -1
- package/dist/web/index.d.ts +0 -1
- package/package.json +4 -6
package/dist/feedback/index.cjs
CHANGED
|
@@ -24,8 +24,17 @@ __export(feedback_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(feedback_exports);
|
|
26
26
|
var import_setup = require("../setup/index.cjs");
|
|
27
|
+
var import_fetch = require("../utils/fetch.cjs");
|
|
27
28
|
async function sendFeedback(dto) {
|
|
28
|
-
await import_setup.config.
|
|
29
|
+
const response = await (0, import_fetch.fetch)(`${import_setup.config.endpoint}/feedback`, {
|
|
30
|
+
method: "POST",
|
|
31
|
+
credentials: "include",
|
|
32
|
+
headers: await import_setup.config.getHeaders(),
|
|
33
|
+
body: JSON.stringify(dto)
|
|
34
|
+
});
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
throw new Error(`Failed to send feedback: ${response.status} ${await response.text()}`);
|
|
37
|
+
}
|
|
29
38
|
}
|
|
30
39
|
// Annotate the CommonJS export names for ESM import in node:
|
|
31
40
|
0 && (module.exports = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/feedback/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport type { CreateFeedbackDTO } from '../schema/index';\n\nexport async function sendFeedback(dto: CreateFeedbackDTO) {\n await config.
|
|
1
|
+
{"version":3,"sources":["../../src/feedback/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport { fetch } from '../utils/fetch';\nimport type { CreateFeedbackDTO } from '../schema/index';\n\nexport async function sendFeedback(dto: CreateFeedbackDTO) {\n const response = await fetch(`${config.endpoint}/feedback`, {\n method: 'POST',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to send feedback: ${response.status} ${await response.text()}`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAuB;AACvB,mBAAsB;AAGtB,eAAsB,aAAa,KAAwB;AACzD,QAAM,WAAW,UAAM,oBAAM,GAAG,oBAAO,QAAQ,aAAa;AAAA,IAC1D,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,MAAM,oBAAO,WAAW;AAAA,IACjC,MAAM,KAAK,UAAU,GAAG;AAAA,EAC1B,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,4BAA4B,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AAAA,EACxF;AACF;","names":[]}
|
package/dist/feedback/index.mjs
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
// src/feedback/index.ts
|
|
2
2
|
import { config } from "../setup/index.mjs";
|
|
3
|
+
import { fetch } from "../utils/fetch.mjs";
|
|
3
4
|
async function sendFeedback(dto) {
|
|
4
|
-
await config.
|
|
5
|
+
const response = await fetch(`${config.endpoint}/feedback`, {
|
|
6
|
+
method: "POST",
|
|
7
|
+
credentials: "include",
|
|
8
|
+
headers: await config.getHeaders(),
|
|
9
|
+
body: JSON.stringify(dto)
|
|
10
|
+
});
|
|
11
|
+
if (!response.ok) {
|
|
12
|
+
throw new Error(`Failed to send feedback: ${response.status} ${await response.text()}`);
|
|
13
|
+
}
|
|
5
14
|
}
|
|
6
15
|
export {
|
|
7
16
|
sendFeedback
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/feedback/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport type { CreateFeedbackDTO } from '../schema/index';\n\nexport async function sendFeedback(dto: CreateFeedbackDTO) {\n await config.
|
|
1
|
+
{"version":3,"sources":["../../src/feedback/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport { fetch } from '../utils/fetch';\nimport type { CreateFeedbackDTO } from '../schema/index';\n\nexport async function sendFeedback(dto: CreateFeedbackDTO) {\n const response = await fetch(`${config.endpoint}/feedback`, {\n method: 'POST',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to send feedback: ${response.status} ${await response.text()}`);\n }\n}\n"],"mappings":";AAAA,SAAS,cAAc;AACvB,SAAS,aAAa;AAGtB,eAAsB,aAAa,KAAwB;AACzD,QAAM,WAAW,MAAM,MAAM,GAAG,OAAO,QAAQ,aAAa;AAAA,IAC1D,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,MAAM,OAAO,WAAW;AAAA,IACjC,MAAM,KAAK,UAAU,GAAG;AAAA,EAC1B,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,4BAA4B,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AAAA,EACxF;AACF;","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -7,6 +7,5 @@ export { CreateFeedbackDTO, CreateLinkDTO, createFeedbackSchema, createLinkSchem
|
|
|
7
7
|
export { stripeMinorUnits } from './utils/stripe.cjs';
|
|
8
8
|
export { AllowedPropertyValues, TrackProperties, TrackTags, UserProvidedData } from './track/types.cjs';
|
|
9
9
|
export { VisitorProperties } from './visitor/types.cjs';
|
|
10
|
-
import 'axios';
|
|
11
10
|
import 'zod/mini';
|
|
12
11
|
import './track/gtag.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,5 @@ export { CreateFeedbackDTO, CreateLinkDTO, createFeedbackSchema, createLinkSchem
|
|
|
7
7
|
export { stripeMinorUnits } from './utils/stripe.js';
|
|
8
8
|
export { AllowedPropertyValues, TrackProperties, TrackTags, UserProvidedData } from './track/types.js';
|
|
9
9
|
export { VisitorProperties } from './visitor/types.js';
|
|
10
|
-
import 'axios';
|
|
11
10
|
import 'zod/mini';
|
|
12
11
|
import './track/gtag.js';
|
package/dist/link/index.cjs
CHANGED
|
@@ -25,15 +25,33 @@ __export(link_exports, {
|
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(link_exports);
|
|
27
27
|
var import_setup = require("../setup/index.cjs");
|
|
28
|
+
var import_fetch = require("../utils/fetch.cjs");
|
|
28
29
|
async function createLink(dto) {
|
|
29
|
-
const response = await import_setup.config.
|
|
30
|
-
|
|
30
|
+
const response = await (0, import_fetch.fetch)(`${import_setup.config.endpoint}/links`, {
|
|
31
|
+
method: "POST",
|
|
32
|
+
credentials: "include",
|
|
33
|
+
headers: await import_setup.config.getHeaders(),
|
|
34
|
+
body: JSON.stringify(dto)
|
|
35
|
+
});
|
|
36
|
+
if (!response.ok) {
|
|
37
|
+
throw new Error(`Failed to create link: ${response.status} ${await response.text()}`);
|
|
38
|
+
}
|
|
39
|
+
return response.json();
|
|
31
40
|
}
|
|
32
41
|
async function getLink(id) {
|
|
33
42
|
try {
|
|
34
|
-
const response = await import_setup.config.
|
|
35
|
-
|
|
43
|
+
const response = await (0, import_fetch.fetch)(`${import_setup.config.endpoint}/links/${id}`, {
|
|
44
|
+
method: "GET",
|
|
45
|
+
credentials: "include",
|
|
46
|
+
headers: await import_setup.config.getHeaders()
|
|
47
|
+
});
|
|
48
|
+
if (!response.ok) {
|
|
49
|
+
console.error(`Failed to get link(${id}): ${response.status} ${await response.text()}`);
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
return response.json();
|
|
36
53
|
} catch {
|
|
54
|
+
console.error(`Failed to get link(${id}): network error`);
|
|
37
55
|
return null;
|
|
38
56
|
}
|
|
39
57
|
}
|
package/dist/link/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/link/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport type { CreateLinkDTO } from '../schema/index';\n\nexport interface Link extends CreateLinkDTO {\n id: string;\n created_at: string;\n}\n\nexport async function createLink(dto: CreateLinkDTO) {\n const response = await config.
|
|
1
|
+
{"version":3,"sources":["../../src/link/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport { fetch } from '../utils/fetch';\nimport type { CreateLinkDTO } from '../schema/index';\n\nexport interface Link extends CreateLinkDTO {\n id: string;\n created_at: string;\n}\n\nexport async function createLink(dto: CreateLinkDTO) {\n const response = await fetch(`${config.endpoint}/links`, {\n method: 'POST',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to create link: ${response.status} ${await response.text()}`);\n }\n return response.json() as Promise<Link>;\n}\n\nexport async function getLink(id: string): Promise<Link | null> {\n try {\n const response = await fetch(`${config.endpoint}/links/${id}`, {\n method: 'GET',\n credentials: 'include',\n headers: await config.getHeaders(),\n });\n\n if (!response.ok) {\n console.error(`Failed to get link(${id}): ${response.status} ${await response.text()}`);\n return null;\n }\n return response.json() as Promise<Link>;\n } catch {\n console.error(`Failed to get link(${id}): network error`);\n return null;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAuB;AACvB,mBAAsB;AAQtB,eAAsB,WAAW,KAAoB;AACnD,QAAM,WAAW,UAAM,oBAAM,GAAG,oBAAO,QAAQ,UAAU;AAAA,IACvD,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,MAAM,oBAAO,WAAW;AAAA,IACjC,MAAM,KAAK,UAAU,GAAG;AAAA,EAC1B,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,0BAA0B,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AAAA,EACtF;AACA,SAAO,SAAS,KAAK;AACvB;AAEA,eAAsB,QAAQ,IAAkC;AAC9D,MAAI;AACF,UAAM,WAAW,UAAM,oBAAM,GAAG,oBAAO,QAAQ,UAAU,EAAE,IAAI;AAAA,MAC7D,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,SAAS,MAAM,oBAAO,WAAW;AAAA,IACnC,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,cAAQ,MAAM,sBAAsB,EAAE,MAAM,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AACtF,aAAO;AAAA,IACT;AACA,WAAO,SAAS,KAAK;AAAA,EACvB,QAAQ;AACN,YAAQ,MAAM,sBAAsB,EAAE,kBAAkB;AACxD,WAAO;AAAA,EACT;AACF;","names":[]}
|
package/dist/link/index.mjs
CHANGED
|
@@ -1,14 +1,32 @@
|
|
|
1
1
|
// src/link/index.ts
|
|
2
2
|
import { config } from "../setup/index.mjs";
|
|
3
|
+
import { fetch } from "../utils/fetch.mjs";
|
|
3
4
|
async function createLink(dto) {
|
|
4
|
-
const response = await config.
|
|
5
|
-
|
|
5
|
+
const response = await fetch(`${config.endpoint}/links`, {
|
|
6
|
+
method: "POST",
|
|
7
|
+
credentials: "include",
|
|
8
|
+
headers: await config.getHeaders(),
|
|
9
|
+
body: JSON.stringify(dto)
|
|
10
|
+
});
|
|
11
|
+
if (!response.ok) {
|
|
12
|
+
throw new Error(`Failed to create link: ${response.status} ${await response.text()}`);
|
|
13
|
+
}
|
|
14
|
+
return response.json();
|
|
6
15
|
}
|
|
7
16
|
async function getLink(id) {
|
|
8
17
|
try {
|
|
9
|
-
const response = await config.
|
|
10
|
-
|
|
18
|
+
const response = await fetch(`${config.endpoint}/links/${id}`, {
|
|
19
|
+
method: "GET",
|
|
20
|
+
credentials: "include",
|
|
21
|
+
headers: await config.getHeaders()
|
|
22
|
+
});
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
console.error(`Failed to get link(${id}): ${response.status} ${await response.text()}`);
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
return response.json();
|
|
11
28
|
} catch {
|
|
29
|
+
console.error(`Failed to get link(${id}): network error`);
|
|
12
30
|
return null;
|
|
13
31
|
}
|
|
14
32
|
}
|
package/dist/link/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/link/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport type { CreateLinkDTO } from '../schema/index';\n\nexport interface Link extends CreateLinkDTO {\n id: string;\n created_at: string;\n}\n\nexport async function createLink(dto: CreateLinkDTO) {\n const response = await config.
|
|
1
|
+
{"version":3,"sources":["../../src/link/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport { fetch } from '../utils/fetch';\nimport type { CreateLinkDTO } from '../schema/index';\n\nexport interface Link extends CreateLinkDTO {\n id: string;\n created_at: string;\n}\n\nexport async function createLink(dto: CreateLinkDTO) {\n const response = await fetch(`${config.endpoint}/links`, {\n method: 'POST',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to create link: ${response.status} ${await response.text()}`);\n }\n return response.json() as Promise<Link>;\n}\n\nexport async function getLink(id: string): Promise<Link | null> {\n try {\n const response = await fetch(`${config.endpoint}/links/${id}`, {\n method: 'GET',\n credentials: 'include',\n headers: await config.getHeaders(),\n });\n\n if (!response.ok) {\n console.error(`Failed to get link(${id}): ${response.status} ${await response.text()}`);\n return null;\n }\n return response.json() as Promise<Link>;\n } catch {\n console.error(`Failed to get link(${id}): network error`);\n return null;\n }\n}\n"],"mappings":";AAAA,SAAS,cAAc;AACvB,SAAS,aAAa;AAQtB,eAAsB,WAAW,KAAoB;AACnD,QAAM,WAAW,MAAM,MAAM,GAAG,OAAO,QAAQ,UAAU;AAAA,IACvD,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,MAAM,OAAO,WAAW;AAAA,IACjC,MAAM,KAAK,UAAU,GAAG;AAAA,EAC1B,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,0BAA0B,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AAAA,EACtF;AACA,SAAO,SAAS,KAAK;AACvB;AAEA,eAAsB,QAAQ,IAAkC;AAC9D,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,GAAG,OAAO,QAAQ,UAAU,EAAE,IAAI;AAAA,MAC7D,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,SAAS,MAAM,OAAO,WAAW;AAAA,IACnC,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,cAAQ,MAAM,sBAAsB,EAAE,MAAM,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AACtF,aAAO;AAAA,IACT;AACA,WAAO,SAAS,KAAK;AAAA,EACvB,QAAQ;AACN,YAAQ,MAAM,sBAAsB,EAAE,kBAAkB;AACxD,WAAO;AAAA,EACT;AACF;","names":[]}
|
package/dist/native/index.d.cts
CHANGED
|
@@ -2,7 +2,6 @@ export { getDeviceId, getDeviceType, getTags, storage } from './setup.cjs';
|
|
|
2
2
|
export { useScreenViewAnalytics } from './analytics.cjs';
|
|
3
3
|
export { DeterministicFingerprint, ProbabilisticFingerprint, getDeterministicFingerprint, getProbabilisticFingerprint } from './fingerprint.cjs';
|
|
4
4
|
import '../setup/index.cjs';
|
|
5
|
-
import 'axios';
|
|
6
5
|
import '../track/types.cjs';
|
|
7
6
|
import '../track/gtag.cjs';
|
|
8
7
|
import '../visitor/types.cjs';
|
package/dist/native/index.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ export { getDeviceId, getDeviceType, getTags, storage } from './setup.js';
|
|
|
2
2
|
export { useScreenViewAnalytics } from './analytics.js';
|
|
3
3
|
export { DeterministicFingerprint, ProbabilisticFingerprint, getDeterministicFingerprint, getProbabilisticFingerprint } from './fingerprint.js';
|
|
4
4
|
import '../setup/index.js';
|
|
5
|
-
import 'axios';
|
|
6
5
|
import '../track/types.js';
|
|
7
6
|
import '../track/gtag.js';
|
|
8
7
|
import '../visitor/types.js';
|
package/dist/native/setup.d.cts
CHANGED
package/dist/native/setup.d.ts
CHANGED
package/dist/setup/index.cjs
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
15
|
}
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
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
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
19
|
|
|
30
20
|
// src/setup/index.ts
|
|
@@ -34,10 +24,8 @@ __export(setup_exports, {
|
|
|
34
24
|
setupAnalytics: () => setupAnalytics
|
|
35
25
|
});
|
|
36
26
|
module.exports = __toCommonJS(setup_exports);
|
|
37
|
-
var import_axios = __toESM(require("axios"), 1);
|
|
38
|
-
var import_axios_retry = __toESM(require("axios-retry"), 1);
|
|
39
27
|
var config = {
|
|
40
|
-
|
|
28
|
+
endpoint: "",
|
|
41
29
|
release: "0.0.0",
|
|
42
30
|
storage: null,
|
|
43
31
|
getTags: null,
|
|
@@ -49,13 +37,18 @@ var config = {
|
|
|
49
37
|
function setupAnalytics(init) {
|
|
50
38
|
config.release = init.release;
|
|
51
39
|
config.storage = init.storage;
|
|
40
|
+
config.endpoint = init.endpoint;
|
|
52
41
|
config.getTags = init.getTags;
|
|
53
42
|
config.getDeviceId = init.getDeviceId;
|
|
54
|
-
config.getHeaders =
|
|
43
|
+
config.getHeaders = async () => {
|
|
44
|
+
var _a;
|
|
45
|
+
return {
|
|
46
|
+
"Content-Type": "application/json",
|
|
47
|
+
...await ((_a = init.getHeaders) == null ? void 0 : _a.call(init))
|
|
48
|
+
};
|
|
49
|
+
};
|
|
55
50
|
config.thirdPartyTrackers = init.thirdPartyTrackers ?? [];
|
|
56
51
|
config.thirdPartyUserSetters = init.thirdPartyUserSetters ?? [];
|
|
57
|
-
config.http = import_axios.default.create({ baseURL: init.endpoint, withCredentials: true, adapter: "fetch" });
|
|
58
|
-
(0, import_axios_retry.default)(config.http, { retries: 5, retryDelay: import_axios_retry.default.exponentialDelay });
|
|
59
52
|
}
|
|
60
53
|
// Annotate the CommonJS export names for ESM import in node:
|
|
61
54
|
0 && (module.exports = {
|
package/dist/setup/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/setup/index.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../src/setup/index.ts"],"sourcesContent":["import type { ThirdPartyTracker, TrackTags } from '../track/types';\nimport type { ThirdPartyUserSetter } from '../visitor/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 getHeaders?: () => Record<string, string> | Promise<Record<string, string>>;\n thirdPartyTrackers?: ThirdPartyTracker[];\n thirdPartyUserSetters?: ThirdPartyUserSetter[];\n}\n\ninterface Config {\n release: string;\n endpoint: string;\n storage: Storage;\n getTags: () => TrackTags | Promise<TrackTags>;\n getDeviceId: () => string | Promise<string>;\n getHeaders: () => Record<string, string> | Promise<Record<string, string>>;\n thirdPartyTrackers: ThirdPartyTracker[];\n thirdPartyUserSetters: ThirdPartyUserSetter[];\n}\n\nexport const config: Config = {\n endpoint: '',\n release: '0.0.0',\n storage: null!,\n getTags: null!,\n getDeviceId: null!,\n getHeaders: null!,\n thirdPartyTrackers: [],\n thirdPartyUserSetters: [],\n};\n\nexport function setupAnalytics(init: Options) {\n config.release = init.release;\n config.storage = init.storage;\n config.endpoint = init.endpoint;\n config.getTags = init.getTags;\n config.getDeviceId = init.getDeviceId;\n config.getHeaders = async () => ({\n 'Content-Type': 'application/json',\n ...(await init.getHeaders?.()),\n });\n config.thirdPartyTrackers = init.thirdPartyTrackers ?? [];\n config.thirdPartyUserSetters = init.thirdPartyUserSetters ?? [];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BO,IAAM,SAAiB;AAAA,EAC5B,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,oBAAoB,CAAC;AAAA,EACrB,uBAAuB,CAAC;AAC1B;AAEO,SAAS,eAAe,MAAe;AAC5C,SAAO,UAAU,KAAK;AACtB,SAAO,UAAU,KAAK;AACtB,SAAO,WAAW,KAAK;AACvB,SAAO,UAAU,KAAK;AACtB,SAAO,cAAc,KAAK;AAC1B,SAAO,aAAa,YAAS;AA/C/B;AA+CmC;AAAA,MAC/B,gBAAgB;AAAA,MAChB,GAAI,QAAM,UAAK,eAAL;AAAA,IACZ;AAAA;AACA,SAAO,qBAAqB,KAAK,sBAAsB,CAAC;AACxD,SAAO,wBAAwB,KAAK,yBAAyB,CAAC;AAChE;","names":[]}
|
package/dist/setup/index.d.cts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { AxiosInstance } from 'axios';
|
|
2
1
|
import { TrackTags, ThirdPartyTracker } from '../track/types.cjs';
|
|
3
2
|
import { ThirdPartyUserSetter } from '../visitor/types.cjs';
|
|
4
3
|
import '../track/gtag.cjs';
|
|
@@ -19,8 +18,8 @@ interface Options {
|
|
|
19
18
|
}
|
|
20
19
|
interface Config {
|
|
21
20
|
release: string;
|
|
21
|
+
endpoint: string;
|
|
22
22
|
storage: Storage;
|
|
23
|
-
http: AxiosInstance;
|
|
24
23
|
getTags: () => TrackTags | Promise<TrackTags>;
|
|
25
24
|
getDeviceId: () => string | Promise<string>;
|
|
26
25
|
getHeaders: () => Record<string, string> | Promise<Record<string, string>>;
|
package/dist/setup/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { AxiosInstance } from 'axios';
|
|
2
1
|
import { TrackTags, ThirdPartyTracker } from '../track/types.js';
|
|
3
2
|
import { ThirdPartyUserSetter } from '../visitor/types.js';
|
|
4
3
|
import '../track/gtag.js';
|
|
@@ -19,8 +18,8 @@ interface Options {
|
|
|
19
18
|
}
|
|
20
19
|
interface Config {
|
|
21
20
|
release: string;
|
|
21
|
+
endpoint: string;
|
|
22
22
|
storage: Storage;
|
|
23
|
-
http: AxiosInstance;
|
|
24
23
|
getTags: () => TrackTags | Promise<TrackTags>;
|
|
25
24
|
getDeviceId: () => string | Promise<string>;
|
|
26
25
|
getHeaders: () => Record<string, string> | Promise<Record<string, string>>;
|
package/dist/setup/index.mjs
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
// src/setup/index.ts
|
|
2
|
-
import axios from "axios";
|
|
3
|
-
import retry from "axios-retry";
|
|
4
2
|
var config = {
|
|
5
|
-
|
|
3
|
+
endpoint: "",
|
|
6
4
|
release: "0.0.0",
|
|
7
5
|
storage: null,
|
|
8
6
|
getTags: null,
|
|
@@ -14,13 +12,18 @@ var config = {
|
|
|
14
12
|
function setupAnalytics(init) {
|
|
15
13
|
config.release = init.release;
|
|
16
14
|
config.storage = init.storage;
|
|
15
|
+
config.endpoint = init.endpoint;
|
|
17
16
|
config.getTags = init.getTags;
|
|
18
17
|
config.getDeviceId = init.getDeviceId;
|
|
19
|
-
config.getHeaders =
|
|
18
|
+
config.getHeaders = async () => {
|
|
19
|
+
var _a;
|
|
20
|
+
return {
|
|
21
|
+
"Content-Type": "application/json",
|
|
22
|
+
...await ((_a = init.getHeaders) == null ? void 0 : _a.call(init))
|
|
23
|
+
};
|
|
24
|
+
};
|
|
20
25
|
config.thirdPartyTrackers = init.thirdPartyTrackers ?? [];
|
|
21
26
|
config.thirdPartyUserSetters = init.thirdPartyUserSetters ?? [];
|
|
22
|
-
config.http = axios.create({ baseURL: init.endpoint, withCredentials: true, adapter: "fetch" });
|
|
23
|
-
retry(config.http, { retries: 5, retryDelay: retry.exponentialDelay });
|
|
24
27
|
}
|
|
25
28
|
export {
|
|
26
29
|
config,
|
package/dist/setup/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/setup/index.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../src/setup/index.ts"],"sourcesContent":["import type { ThirdPartyTracker, TrackTags } from '../track/types';\nimport type { ThirdPartyUserSetter } from '../visitor/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 getHeaders?: () => Record<string, string> | Promise<Record<string, string>>;\n thirdPartyTrackers?: ThirdPartyTracker[];\n thirdPartyUserSetters?: ThirdPartyUserSetter[];\n}\n\ninterface Config {\n release: string;\n endpoint: string;\n storage: Storage;\n getTags: () => TrackTags | Promise<TrackTags>;\n getDeviceId: () => string | Promise<string>;\n getHeaders: () => Record<string, string> | Promise<Record<string, string>>;\n thirdPartyTrackers: ThirdPartyTracker[];\n thirdPartyUserSetters: ThirdPartyUserSetter[];\n}\n\nexport const config: Config = {\n endpoint: '',\n release: '0.0.0',\n storage: null!,\n getTags: null!,\n getDeviceId: null!,\n getHeaders: null!,\n thirdPartyTrackers: [],\n thirdPartyUserSetters: [],\n};\n\nexport function setupAnalytics(init: Options) {\n config.release = init.release;\n config.storage = init.storage;\n config.endpoint = init.endpoint;\n config.getTags = init.getTags;\n config.getDeviceId = init.getDeviceId;\n config.getHeaders = async () => ({\n 'Content-Type': 'application/json',\n ...(await init.getHeaders?.()),\n });\n config.thirdPartyTrackers = init.thirdPartyTrackers ?? [];\n config.thirdPartyUserSetters = init.thirdPartyUserSetters ?? [];\n}\n"],"mappings":";AA8BO,IAAM,SAAiB;AAAA,EAC5B,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,oBAAoB,CAAC;AAAA,EACrB,uBAAuB,CAAC;AAC1B;AAEO,SAAS,eAAe,MAAe;AAC5C,SAAO,UAAU,KAAK;AACtB,SAAO,UAAU,KAAK;AACtB,SAAO,WAAW,KAAK;AACvB,SAAO,UAAU,KAAK;AACtB,SAAO,cAAc,KAAK;AAC1B,SAAO,aAAa,YAAS;AA/C/B;AA+CmC;AAAA,MAC/B,gBAAgB;AAAA,MAChB,GAAI,QAAM,UAAK,eAAL;AAAA,IACZ;AAAA;AACA,SAAO,qBAAqB,KAAK,sBAAsB,CAAC;AACxD,SAAO,wBAAwB,KAAK,yBAAyB,CAAC;AAChE;","names":[]}
|
package/dist/track/index.cjs
CHANGED
|
@@ -25,6 +25,7 @@ __export(track_exports, {
|
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(track_exports);
|
|
27
27
|
var import_setup = require("../setup/index.cjs");
|
|
28
|
+
var import_fetch = require("../utils/fetch.cjs");
|
|
28
29
|
var import_token_bucket = require("../utils/token-bucket.cjs");
|
|
29
30
|
var import_visitor = require("../visitor/index.cjs");
|
|
30
31
|
var defaultOptions = { enableThirdPartyTracking: true };
|
|
@@ -43,8 +44,16 @@ async function sendEvents(events) {
|
|
|
43
44
|
visitor_id,
|
|
44
45
|
timestamp: event.timestamp
|
|
45
46
|
}));
|
|
46
|
-
const
|
|
47
|
-
|
|
47
|
+
const response = await (0, import_fetch.fetch)(`${import_setup.config.endpoint}/events`, {
|
|
48
|
+
method: "POST",
|
|
49
|
+
credentials: "include",
|
|
50
|
+
headers: await import_setup.config.getHeaders(),
|
|
51
|
+
body: JSON.stringify(dto)
|
|
52
|
+
});
|
|
53
|
+
if (!response.ok) {
|
|
54
|
+
throw new Error(`Failed to send track event: ${response.status} ${await response.text()}`);
|
|
55
|
+
}
|
|
56
|
+
const data = await response.json();
|
|
48
57
|
let index = 0;
|
|
49
58
|
while (events.length > 0) {
|
|
50
59
|
const { options, name, properties } = events.shift();
|
|
@@ -55,7 +64,7 @@ async function sendEvents(events) {
|
|
|
55
64
|
import_setup.config.thirdPartyTrackers.forEach((tracker) => tracker(name, properties, eventId));
|
|
56
65
|
}
|
|
57
66
|
} catch (e) {
|
|
58
|
-
if (e instanceof Error) console.log(
|
|
67
|
+
if (e instanceof Error) console.log(e.message);
|
|
59
68
|
events.forEach((event) => {
|
|
60
69
|
var _a2, _b;
|
|
61
70
|
return (_b = (_a2 = event.options).onError) == null ? void 0 : _b.call(_a2, e);
|
package/dist/track/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/track/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport { TokenBucket } from '../utils/token-bucket';\nimport { getVisitor } from '../visitor/index';\nimport type {\n CreateTrackEventDTO,\n EventName,\n TrackEventResponse,\n TrackName,\n TrackProperties,\n} from './types';\n\nexport interface TrackOptions {\n enableThirdPartyTracking?: boolean;\n onSucceed?: (response?: TrackEventResponse[number]) => void;\n onError?: (error: unknown) => void;\n}\n\nconst defaultOptions: TrackOptions = { enableThirdPartyTracking: true };\nconst tokenBucket = new TokenBucket({ rate: 1, capacity: 20, requested: 2 });\n\ntype Item = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n name: TrackName<any>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n properties: TrackProperties<any>;\n timestamp: string;\n options: TrackOptions;\n};\n\nasync function sendEvents(events: Item[]) {\n try {\n if (events.length === 0) return;\n await tokenBucket.removeTokens();\n\n const tags = await config.getTags();\n const visitor_id = (await getVisitor()).id;\n const dto: CreateTrackEventDTO = events.map((event) => ({\n name: event.name,\n properties: event.properties,\n tags,\n visitor_id,\n timestamp: event.timestamp,\n }));\n const
|
|
1
|
+
{"version":3,"sources":["../../src/track/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport { fetch } from '../utils/fetch';\nimport { TokenBucket } from '../utils/token-bucket';\nimport { getVisitor } from '../visitor/index';\nimport type {\n CreateTrackEventDTO,\n EventName,\n TrackEventResponse,\n TrackName,\n TrackProperties,\n} from './types';\n\nexport interface TrackOptions {\n enableThirdPartyTracking?: boolean;\n onSucceed?: (response?: TrackEventResponse[number]) => void;\n onError?: (error: unknown) => void;\n}\n\nconst defaultOptions: TrackOptions = { enableThirdPartyTracking: true };\nconst tokenBucket = new TokenBucket({ rate: 1, capacity: 20, requested: 2 });\n\ntype Item = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n name: TrackName<any>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n properties: TrackProperties<any>;\n timestamp: string;\n options: TrackOptions;\n};\n\nasync function sendEvents(events: Item[]) {\n try {\n if (events.length === 0) return;\n await tokenBucket.removeTokens();\n\n const tags = await config.getTags();\n const visitor_id = (await getVisitor()).id;\n const dto: CreateTrackEventDTO = events.map((event) => ({\n name: event.name,\n properties: event.properties,\n tags,\n visitor_id,\n timestamp: event.timestamp,\n }));\n\n const response = await fetch(`${config.endpoint}/events`, {\n method: 'POST',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to send track event: ${response.status} ${await response.text()}`);\n }\n\n const data = (await response.json()) as TrackEventResponse;\n\n let index = 0;\n while (events.length > 0) {\n const { options, name, properties } = events.shift()!;\n const eventId = data[index].id;\n options.onSucceed?.({ id: eventId });\n index++;\n if (!options.enableThirdPartyTracking || !config.thirdPartyTrackers) continue;\n config.thirdPartyTrackers.forEach((tracker) => tracker(name, properties, eventId));\n }\n } catch (e: unknown) {\n if (e instanceof Error) console.log(e.message);\n events.forEach((event) => event.options.onError?.(e));\n }\n}\n\nconst batch = 10;\nconst delay = 2000;\nconst list: Item[] = [];\nlet timer: ReturnType<typeof setTimeout> | null = null;\n\nexport function track<T extends EventName = EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n options: TrackOptions = defaultOptions\n) {\n list.push({ name, properties, options, timestamp: new Date().toISOString() });\n if (list.length >= batch) {\n const copy = [...list];\n list.length = 0;\n sendEvents(copy);\n return;\n }\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => {\n timer = null;\n const copy = [...list];\n list.length = 0;\n sendEvents(copy);\n }, delay);\n}\n\nexport async function trackAsync<T extends EventName = EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n options: TrackOptions = defaultOptions\n) {\n await sendEvents([{ name, properties, options, timestamp: new Date().toISOString() }]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAuB;AACvB,mBAAsB;AACtB,0BAA4B;AAC5B,qBAA2B;AAe3B,IAAM,iBAA+B,EAAE,0BAA0B,KAAK;AACtE,IAAM,cAAc,IAAI,gCAAY,EAAE,MAAM,GAAG,UAAU,IAAI,WAAW,EAAE,CAAC;AAW3E,eAAe,WAAW,QAAgB;AA9B1C;AA+BE,MAAI;AACF,QAAI,OAAO,WAAW,EAAG;AACzB,UAAM,YAAY,aAAa;AAE/B,UAAM,OAAO,MAAM,oBAAO,QAAQ;AAClC,UAAM,cAAc,UAAM,2BAAW,GAAG;AACxC,UAAM,MAA2B,OAAO,IAAI,CAAC,WAAW;AAAA,MACtD,MAAM,MAAM;AAAA,MACZ,YAAY,MAAM;AAAA,MAClB;AAAA,MACA;AAAA,MACA,WAAW,MAAM;AAAA,IACnB,EAAE;AAEF,UAAM,WAAW,UAAM,oBAAM,GAAG,oBAAO,QAAQ,WAAW;AAAA,MACxD,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,SAAS,MAAM,oBAAO,WAAW;AAAA,MACjC,MAAM,KAAK,UAAU,GAAG;AAAA,IAC1B,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI,MAAM,+BAA+B,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AAAA,IAC3F;AAEA,UAAM,OAAQ,MAAM,SAAS,KAAK;AAElC,QAAI,QAAQ;AACZ,WAAO,OAAO,SAAS,GAAG;AACxB,YAAM,EAAE,SAAS,MAAM,WAAW,IAAI,OAAO,MAAM;AACnD,YAAM,UAAU,KAAK,KAAK,EAAE;AAC5B,oBAAQ,cAAR,iCAAoB,EAAE,IAAI,QAAQ;AAClC;AACA,UAAI,CAAC,QAAQ,4BAA4B,CAAC,oBAAO,mBAAoB;AACrE,0BAAO,mBAAmB,QAAQ,CAAC,YAAY,QAAQ,MAAM,YAAY,OAAO,CAAC;AAAA,IACnF;AAAA,EACF,SAAS,GAAY;AACnB,QAAI,aAAa,MAAO,SAAQ,IAAI,EAAE,OAAO;AAC7C,WAAO,QAAQ,CAAC,UAAO;AArE3B,UAAAA,KAAA;AAqE8B,oBAAAA,MAAA,MAAM,SAAQ,YAAd,wBAAAA,KAAwB;AAAA,KAAE;AAAA,EACtD;AACF;AAEA,IAAM,QAAQ;AACd,IAAM,QAAQ;AACd,IAAM,OAAe,CAAC;AACtB,IAAI,QAA8C;AAE3C,SAAS,MACd,MACA,YACA,UAAwB,gBACxB;AACA,OAAK,KAAK,EAAE,MAAM,YAAY,SAAS,YAAW,oBAAI,KAAK,GAAE,YAAY,EAAE,CAAC;AAC5E,MAAI,KAAK,UAAU,OAAO;AACxB,UAAM,OAAO,CAAC,GAAG,IAAI;AACrB,SAAK,SAAS;AACd,eAAW,IAAI;AACf;AAAA,EACF;AACA,MAAI,MAAO,cAAa,KAAK;AAC7B,UAAQ,WAAW,MAAM;AACvB,YAAQ;AACR,UAAM,OAAO,CAAC,GAAG,IAAI;AACrB,SAAK,SAAS;AACd,eAAW,IAAI;AAAA,EACjB,GAAG,KAAK;AACV;AAEA,eAAsB,WACpB,MACA,YACA,UAAwB,gBACxB;AACA,QAAM,WAAW,CAAC,EAAE,MAAM,YAAY,SAAS,YAAW,oBAAI,KAAK,GAAE,YAAY,EAAE,CAAC,CAAC;AACvF;","names":["_a"]}
|
package/dist/track/index.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// src/track/index.ts
|
|
2
2
|
import { config } from "../setup/index.mjs";
|
|
3
|
+
import { fetch } from "../utils/fetch.mjs";
|
|
3
4
|
import { TokenBucket } from "../utils/token-bucket.mjs";
|
|
4
5
|
import { getVisitor } from "../visitor/index.mjs";
|
|
5
6
|
var defaultOptions = { enableThirdPartyTracking: true };
|
|
@@ -18,8 +19,16 @@ async function sendEvents(events) {
|
|
|
18
19
|
visitor_id,
|
|
19
20
|
timestamp: event.timestamp
|
|
20
21
|
}));
|
|
21
|
-
const
|
|
22
|
-
|
|
22
|
+
const response = await fetch(`${config.endpoint}/events`, {
|
|
23
|
+
method: "POST",
|
|
24
|
+
credentials: "include",
|
|
25
|
+
headers: await config.getHeaders(),
|
|
26
|
+
body: JSON.stringify(dto)
|
|
27
|
+
});
|
|
28
|
+
if (!response.ok) {
|
|
29
|
+
throw new Error(`Failed to send track event: ${response.status} ${await response.text()}`);
|
|
30
|
+
}
|
|
31
|
+
const data = await response.json();
|
|
23
32
|
let index = 0;
|
|
24
33
|
while (events.length > 0) {
|
|
25
34
|
const { options, name, properties } = events.shift();
|
|
@@ -30,7 +39,7 @@ async function sendEvents(events) {
|
|
|
30
39
|
config.thirdPartyTrackers.forEach((tracker) => tracker(name, properties, eventId));
|
|
31
40
|
}
|
|
32
41
|
} catch (e) {
|
|
33
|
-
if (e instanceof Error) console.log(
|
|
42
|
+
if (e instanceof Error) console.log(e.message);
|
|
34
43
|
events.forEach((event) => {
|
|
35
44
|
var _a2, _b;
|
|
36
45
|
return (_b = (_a2 = event.options).onError) == null ? void 0 : _b.call(_a2, e);
|
package/dist/track/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/track/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport { TokenBucket } from '../utils/token-bucket';\nimport { getVisitor } from '../visitor/index';\nimport type {\n CreateTrackEventDTO,\n EventName,\n TrackEventResponse,\n TrackName,\n TrackProperties,\n} from './types';\n\nexport interface TrackOptions {\n enableThirdPartyTracking?: boolean;\n onSucceed?: (response?: TrackEventResponse[number]) => void;\n onError?: (error: unknown) => void;\n}\n\nconst defaultOptions: TrackOptions = { enableThirdPartyTracking: true };\nconst tokenBucket = new TokenBucket({ rate: 1, capacity: 20, requested: 2 });\n\ntype Item = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n name: TrackName<any>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n properties: TrackProperties<any>;\n timestamp: string;\n options: TrackOptions;\n};\n\nasync function sendEvents(events: Item[]) {\n try {\n if (events.length === 0) return;\n await tokenBucket.removeTokens();\n\n const tags = await config.getTags();\n const visitor_id = (await getVisitor()).id;\n const dto: CreateTrackEventDTO = events.map((event) => ({\n name: event.name,\n properties: event.properties,\n tags,\n visitor_id,\n timestamp: event.timestamp,\n }));\n const
|
|
1
|
+
{"version":3,"sources":["../../src/track/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport { fetch } from '../utils/fetch';\nimport { TokenBucket } from '../utils/token-bucket';\nimport { getVisitor } from '../visitor/index';\nimport type {\n CreateTrackEventDTO,\n EventName,\n TrackEventResponse,\n TrackName,\n TrackProperties,\n} from './types';\n\nexport interface TrackOptions {\n enableThirdPartyTracking?: boolean;\n onSucceed?: (response?: TrackEventResponse[number]) => void;\n onError?: (error: unknown) => void;\n}\n\nconst defaultOptions: TrackOptions = { enableThirdPartyTracking: true };\nconst tokenBucket = new TokenBucket({ rate: 1, capacity: 20, requested: 2 });\n\ntype Item = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n name: TrackName<any>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n properties: TrackProperties<any>;\n timestamp: string;\n options: TrackOptions;\n};\n\nasync function sendEvents(events: Item[]) {\n try {\n if (events.length === 0) return;\n await tokenBucket.removeTokens();\n\n const tags = await config.getTags();\n const visitor_id = (await getVisitor()).id;\n const dto: CreateTrackEventDTO = events.map((event) => ({\n name: event.name,\n properties: event.properties,\n tags,\n visitor_id,\n timestamp: event.timestamp,\n }));\n\n const response = await fetch(`${config.endpoint}/events`, {\n method: 'POST',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n if (!response.ok) {\n throw new Error(`Failed to send track event: ${response.status} ${await response.text()}`);\n }\n\n const data = (await response.json()) as TrackEventResponse;\n\n let index = 0;\n while (events.length > 0) {\n const { options, name, properties } = events.shift()!;\n const eventId = data[index].id;\n options.onSucceed?.({ id: eventId });\n index++;\n if (!options.enableThirdPartyTracking || !config.thirdPartyTrackers) continue;\n config.thirdPartyTrackers.forEach((tracker) => tracker(name, properties, eventId));\n }\n } catch (e: unknown) {\n if (e instanceof Error) console.log(e.message);\n events.forEach((event) => event.options.onError?.(e));\n }\n}\n\nconst batch = 10;\nconst delay = 2000;\nconst list: Item[] = [];\nlet timer: ReturnType<typeof setTimeout> | null = null;\n\nexport function track<T extends EventName = EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n options: TrackOptions = defaultOptions\n) {\n list.push({ name, properties, options, timestamp: new Date().toISOString() });\n if (list.length >= batch) {\n const copy = [...list];\n list.length = 0;\n sendEvents(copy);\n return;\n }\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => {\n timer = null;\n const copy = [...list];\n list.length = 0;\n sendEvents(copy);\n }, delay);\n}\n\nexport async function trackAsync<T extends EventName = EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n options: TrackOptions = defaultOptions\n) {\n await sendEvents([{ name, properties, options, timestamp: new Date().toISOString() }]);\n}\n"],"mappings":";AAAA,SAAS,cAAc;AACvB,SAAS,aAAa;AACtB,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAe3B,IAAM,iBAA+B,EAAE,0BAA0B,KAAK;AACtE,IAAM,cAAc,IAAI,YAAY,EAAE,MAAM,GAAG,UAAU,IAAI,WAAW,EAAE,CAAC;AAW3E,eAAe,WAAW,QAAgB;AA9B1C;AA+BE,MAAI;AACF,QAAI,OAAO,WAAW,EAAG;AACzB,UAAM,YAAY,aAAa;AAE/B,UAAM,OAAO,MAAM,OAAO,QAAQ;AAClC,UAAM,cAAc,MAAM,WAAW,GAAG;AACxC,UAAM,MAA2B,OAAO,IAAI,CAAC,WAAW;AAAA,MACtD,MAAM,MAAM;AAAA,MACZ,YAAY,MAAM;AAAA,MAClB;AAAA,MACA;AAAA,MACA,WAAW,MAAM;AAAA,IACnB,EAAE;AAEF,UAAM,WAAW,MAAM,MAAM,GAAG,OAAO,QAAQ,WAAW;AAAA,MACxD,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,SAAS,MAAM,OAAO,WAAW;AAAA,MACjC,MAAM,KAAK,UAAU,GAAG;AAAA,IAC1B,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI,MAAM,+BAA+B,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,CAAC,EAAE;AAAA,IAC3F;AAEA,UAAM,OAAQ,MAAM,SAAS,KAAK;AAElC,QAAI,QAAQ;AACZ,WAAO,OAAO,SAAS,GAAG;AACxB,YAAM,EAAE,SAAS,MAAM,WAAW,IAAI,OAAO,MAAM;AACnD,YAAM,UAAU,KAAK,KAAK,EAAE;AAC5B,oBAAQ,cAAR,iCAAoB,EAAE,IAAI,QAAQ;AAClC;AACA,UAAI,CAAC,QAAQ,4BAA4B,CAAC,OAAO,mBAAoB;AACrE,aAAO,mBAAmB,QAAQ,CAAC,YAAY,QAAQ,MAAM,YAAY,OAAO,CAAC;AAAA,IACnF;AAAA,EACF,SAAS,GAAY;AACnB,QAAI,aAAa,MAAO,SAAQ,IAAI,EAAE,OAAO;AAC7C,WAAO,QAAQ,CAAC,UAAO;AArE3B,UAAAA,KAAA;AAqE8B,oBAAAA,MAAA,MAAM,SAAQ,YAAd,wBAAAA,KAAwB;AAAA,KAAE;AAAA,EACtD;AACF;AAEA,IAAM,QAAQ;AACd,IAAM,QAAQ;AACd,IAAM,OAAe,CAAC;AACtB,IAAI,QAA8C;AAE3C,SAAS,MACd,MACA,YACA,UAAwB,gBACxB;AACA,OAAK,KAAK,EAAE,MAAM,YAAY,SAAS,YAAW,oBAAI,KAAK,GAAE,YAAY,EAAE,CAAC;AAC5E,MAAI,KAAK,UAAU,OAAO;AACxB,UAAM,OAAO,CAAC,GAAG,IAAI;AACrB,SAAK,SAAS;AACd,eAAW,IAAI;AACf;AAAA,EACF;AACA,MAAI,MAAO,cAAa,KAAK;AAC7B,UAAQ,WAAW,MAAM;AACvB,YAAQ;AACR,UAAM,OAAO,CAAC,GAAG,IAAI;AACrB,SAAK,SAAS;AACd,eAAW,IAAI;AAAA,EACjB,GAAG,KAAK;AACV;AAEA,eAAsB,WACpB,MACA,YACA,UAAwB,gBACxB;AACA,QAAM,WAAW,CAAC,EAAE,MAAM,YAAY,SAAS,YAAW,oBAAI,KAAK,GAAE,YAAY,EAAE,CAAC,CAAC;AACvF;","names":["_a"]}
|
package/dist/visitor/index.cjs
CHANGED
|
@@ -25,32 +25,35 @@ __export(visitor_exports, {
|
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(visitor_exports);
|
|
27
27
|
var import_setup = require("../setup/index.cjs");
|
|
28
|
+
var import_fetch = require("../utils/fetch.cjs");
|
|
28
29
|
var key = "visitor_id";
|
|
29
30
|
async function createVisitor() {
|
|
30
31
|
const dto = {
|
|
31
32
|
device_id: await import_setup.config.getDeviceId(),
|
|
32
33
|
properties: await import_setup.config.getTags()
|
|
33
34
|
};
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
const response = await (0, import_fetch.fetch)(`${import_setup.config.endpoint}/visitors`, {
|
|
36
|
+
method: "POST",
|
|
37
|
+
credentials: "include",
|
|
38
|
+
headers: await import_setup.config.getHeaders(),
|
|
39
|
+
body: JSON.stringify(dto)
|
|
40
|
+
});
|
|
41
|
+
const data = await response.json();
|
|
42
|
+
await import_setup.config.storage.setItem(key, data.id);
|
|
43
|
+
return data;
|
|
37
44
|
}
|
|
38
45
|
async function getOrCreateVisitor() {
|
|
39
46
|
const visitorId = await import_setup.config.storage.getItem(key);
|
|
40
47
|
if (visitorId) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return visitor2;
|
|
49
|
-
}
|
|
48
|
+
const response = await (0, import_fetch.fetch)(`${import_setup.config.endpoint}/visitors/${visitorId}`, {
|
|
49
|
+
method: "GET",
|
|
50
|
+
credentials: "include",
|
|
51
|
+
headers: await import_setup.config.getHeaders()
|
|
52
|
+
});
|
|
53
|
+
if (!response.ok) return createVisitor();
|
|
54
|
+
return response.json();
|
|
50
55
|
} else {
|
|
51
|
-
|
|
52
|
-
await import_setup.config.storage.setItem(key, visitor2.id);
|
|
53
|
-
return visitor2;
|
|
56
|
+
return createVisitor();
|
|
54
57
|
}
|
|
55
58
|
}
|
|
56
59
|
var visitor = null;
|
|
@@ -65,11 +68,17 @@ async function getVisitor() {
|
|
|
65
68
|
}
|
|
66
69
|
async function setVisitor(dto) {
|
|
67
70
|
const { id } = await getVisitor();
|
|
68
|
-
const
|
|
69
|
-
|
|
71
|
+
const response = await (0, import_fetch.fetch)(`${import_setup.config.endpoint}/visitors/${id}`, {
|
|
72
|
+
method: "PATCH",
|
|
73
|
+
credentials: "include",
|
|
74
|
+
headers: await import_setup.config.getHeaders(),
|
|
75
|
+
body: JSON.stringify(dto)
|
|
76
|
+
});
|
|
77
|
+
if (!response.ok) throw new Error("Failed to set visitor");
|
|
78
|
+
const data = await response.json();
|
|
70
79
|
import_setup.config.thirdPartyUserSetters.forEach((setter) => setter(dto));
|
|
71
|
-
visitor =
|
|
72
|
-
return
|
|
80
|
+
visitor = data;
|
|
81
|
+
return data;
|
|
73
82
|
}
|
|
74
83
|
// Annotate the CommonJS export names for ESM import in node:
|
|
75
84
|
0 && (module.exports = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/visitor/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport type { CreateVisitorDTO, UpdateVisitorDTO, Visitor, VisitorProperties } from './types';\n\nconst key = 'visitor_id';\n\nasync function createVisitor(): Promise<Visitor> {\n const dto: CreateVisitorDTO = {\n device_id: await config.getDeviceId(),\n properties: (await config.getTags()) as VisitorProperties,\n };\n const
|
|
1
|
+
{"version":3,"sources":["../../src/visitor/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport { fetch } from '../utils/fetch';\nimport type { CreateVisitorDTO, UpdateVisitorDTO, Visitor, VisitorProperties } from './types';\n\nconst key = 'visitor_id';\n\nasync function createVisitor(): Promise<Visitor> {\n const dto: CreateVisitorDTO = {\n device_id: await config.getDeviceId(),\n properties: (await config.getTags()) as VisitorProperties,\n };\n\n const response = await fetch(`${config.endpoint}/visitors`, {\n method: 'POST',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n const data = (await response.json()) as Visitor;\n await config.storage.setItem(key, data.id);\n return data;\n}\n\nasync function getOrCreateVisitor(): Promise<Visitor> {\n const visitorId = await config.storage.getItem(key);\n if (visitorId) {\n const response = await fetch(`${config.endpoint}/visitors/${visitorId}`, {\n method: 'GET',\n credentials: 'include',\n headers: await config.getHeaders(),\n });\n\n if (!response.ok) return createVisitor();\n return response.json() as Promise<Visitor>;\n } else {\n return createVisitor();\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(dto: UpdateVisitorDTO) {\n const { id } = await getVisitor();\n const response = await fetch(`${config.endpoint}/visitors/${id}`, {\n method: 'PATCH',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n if (!response.ok) throw new Error('Failed to set visitor');\n const data = (await response.json()) as Visitor;\n\n config.thirdPartyUserSetters.forEach((setter) => setter(dto));\n visitor = data;\n return data;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAuB;AACvB,mBAAsB;AAGtB,IAAM,MAAM;AAEZ,eAAe,gBAAkC;AAC/C,QAAM,MAAwB;AAAA,IAC5B,WAAW,MAAM,oBAAO,YAAY;AAAA,IACpC,YAAa,MAAM,oBAAO,QAAQ;AAAA,EACpC;AAEA,QAAM,WAAW,UAAM,oBAAM,GAAG,oBAAO,QAAQ,aAAa;AAAA,IAC1D,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,MAAM,oBAAO,WAAW;AAAA,IACjC,MAAM,KAAK,UAAU,GAAG;AAAA,EAC1B,CAAC;AAED,QAAM,OAAQ,MAAM,SAAS,KAAK;AAClC,QAAM,oBAAO,QAAQ,QAAQ,KAAK,KAAK,EAAE;AACzC,SAAO;AACT;AAEA,eAAe,qBAAuC;AACpD,QAAM,YAAY,MAAM,oBAAO,QAAQ,QAAQ,GAAG;AAClD,MAAI,WAAW;AACb,UAAM,WAAW,UAAM,oBAAM,GAAG,oBAAO,QAAQ,aAAa,SAAS,IAAI;AAAA,MACvE,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,SAAS,MAAM,oBAAO,WAAW;AAAA,IACnC,CAAC;AAED,QAAI,CAAC,SAAS,GAAI,QAAO,cAAc;AACvC,WAAO,SAAS,KAAK;AAAA,EACvB,OAAO;AACL,WAAO,cAAc;AAAA,EACvB;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,KAAuB;AACtD,QAAM,EAAE,GAAG,IAAI,MAAM,WAAW;AAChC,QAAM,WAAW,UAAM,oBAAM,GAAG,oBAAO,QAAQ,aAAa,EAAE,IAAI;AAAA,IAChE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,MAAM,oBAAO,WAAW;AAAA,IACjC,MAAM,KAAK,UAAU,GAAG;AAAA,EAC1B,CAAC;AAED,MAAI,CAAC,SAAS,GAAI,OAAM,IAAI,MAAM,uBAAuB;AACzD,QAAM,OAAQ,MAAM,SAAS,KAAK;AAElC,sBAAO,sBAAsB,QAAQ,CAAC,WAAW,OAAO,GAAG,CAAC;AAC5D,YAAU;AACV,SAAO;AACT;","names":[]}
|
package/dist/visitor/index.mjs
CHANGED
|
@@ -1,31 +1,34 @@
|
|
|
1
1
|
// src/visitor/index.ts
|
|
2
2
|
import { config } from "../setup/index.mjs";
|
|
3
|
+
import { fetch } from "../utils/fetch.mjs";
|
|
3
4
|
var key = "visitor_id";
|
|
4
5
|
async function createVisitor() {
|
|
5
6
|
const dto = {
|
|
6
7
|
device_id: await config.getDeviceId(),
|
|
7
8
|
properties: await config.getTags()
|
|
8
9
|
};
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const response = await fetch(`${config.endpoint}/visitors`, {
|
|
11
|
+
method: "POST",
|
|
12
|
+
credentials: "include",
|
|
13
|
+
headers: await config.getHeaders(),
|
|
14
|
+
body: JSON.stringify(dto)
|
|
15
|
+
});
|
|
16
|
+
const data = await response.json();
|
|
17
|
+
await config.storage.setItem(key, data.id);
|
|
18
|
+
return data;
|
|
12
19
|
}
|
|
13
20
|
async function getOrCreateVisitor() {
|
|
14
21
|
const visitorId = await config.storage.getItem(key);
|
|
15
22
|
if (visitorId) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return visitor2;
|
|
24
|
-
}
|
|
23
|
+
const response = await fetch(`${config.endpoint}/visitors/${visitorId}`, {
|
|
24
|
+
method: "GET",
|
|
25
|
+
credentials: "include",
|
|
26
|
+
headers: await config.getHeaders()
|
|
27
|
+
});
|
|
28
|
+
if (!response.ok) return createVisitor();
|
|
29
|
+
return response.json();
|
|
25
30
|
} else {
|
|
26
|
-
|
|
27
|
-
await config.storage.setItem(key, visitor2.id);
|
|
28
|
-
return visitor2;
|
|
31
|
+
return createVisitor();
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
34
|
var visitor = null;
|
|
@@ -40,11 +43,17 @@ async function getVisitor() {
|
|
|
40
43
|
}
|
|
41
44
|
async function setVisitor(dto) {
|
|
42
45
|
const { id } = await getVisitor();
|
|
43
|
-
const
|
|
44
|
-
|
|
46
|
+
const response = await fetch(`${config.endpoint}/visitors/${id}`, {
|
|
47
|
+
method: "PATCH",
|
|
48
|
+
credentials: "include",
|
|
49
|
+
headers: await config.getHeaders(),
|
|
50
|
+
body: JSON.stringify(dto)
|
|
51
|
+
});
|
|
52
|
+
if (!response.ok) throw new Error("Failed to set visitor");
|
|
53
|
+
const data = await response.json();
|
|
45
54
|
config.thirdPartyUserSetters.forEach((setter) => setter(dto));
|
|
46
|
-
visitor =
|
|
47
|
-
return
|
|
55
|
+
visitor = data;
|
|
56
|
+
return data;
|
|
48
57
|
}
|
|
49
58
|
export {
|
|
50
59
|
getVisitor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/visitor/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport type { CreateVisitorDTO, UpdateVisitorDTO, Visitor, VisitorProperties } from './types';\n\nconst key = 'visitor_id';\n\nasync function createVisitor(): Promise<Visitor> {\n const dto: CreateVisitorDTO = {\n device_id: await config.getDeviceId(),\n properties: (await config.getTags()) as VisitorProperties,\n };\n const
|
|
1
|
+
{"version":3,"sources":["../../src/visitor/index.ts"],"sourcesContent":["import { config } from '../setup/index';\nimport { fetch } from '../utils/fetch';\nimport type { CreateVisitorDTO, UpdateVisitorDTO, Visitor, VisitorProperties } from './types';\n\nconst key = 'visitor_id';\n\nasync function createVisitor(): Promise<Visitor> {\n const dto: CreateVisitorDTO = {\n device_id: await config.getDeviceId(),\n properties: (await config.getTags()) as VisitorProperties,\n };\n\n const response = await fetch(`${config.endpoint}/visitors`, {\n method: 'POST',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n const data = (await response.json()) as Visitor;\n await config.storage.setItem(key, data.id);\n return data;\n}\n\nasync function getOrCreateVisitor(): Promise<Visitor> {\n const visitorId = await config.storage.getItem(key);\n if (visitorId) {\n const response = await fetch(`${config.endpoint}/visitors/${visitorId}`, {\n method: 'GET',\n credentials: 'include',\n headers: await config.getHeaders(),\n });\n\n if (!response.ok) return createVisitor();\n return response.json() as Promise<Visitor>;\n } else {\n return createVisitor();\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(dto: UpdateVisitorDTO) {\n const { id } = await getVisitor();\n const response = await fetch(`${config.endpoint}/visitors/${id}`, {\n method: 'PATCH',\n credentials: 'include',\n headers: await config.getHeaders(),\n body: JSON.stringify(dto),\n });\n\n if (!response.ok) throw new Error('Failed to set visitor');\n const data = (await response.json()) as Visitor;\n\n config.thirdPartyUserSetters.forEach((setter) => setter(dto));\n visitor = data;\n return data;\n}\n"],"mappings":";AAAA,SAAS,cAAc;AACvB,SAAS,aAAa;AAGtB,IAAM,MAAM;AAEZ,eAAe,gBAAkC;AAC/C,QAAM,MAAwB;AAAA,IAC5B,WAAW,MAAM,OAAO,YAAY;AAAA,IACpC,YAAa,MAAM,OAAO,QAAQ;AAAA,EACpC;AAEA,QAAM,WAAW,MAAM,MAAM,GAAG,OAAO,QAAQ,aAAa;AAAA,IAC1D,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,MAAM,OAAO,WAAW;AAAA,IACjC,MAAM,KAAK,UAAU,GAAG;AAAA,EAC1B,CAAC;AAED,QAAM,OAAQ,MAAM,SAAS,KAAK;AAClC,QAAM,OAAO,QAAQ,QAAQ,KAAK,KAAK,EAAE;AACzC,SAAO;AACT;AAEA,eAAe,qBAAuC;AACpD,QAAM,YAAY,MAAM,OAAO,QAAQ,QAAQ,GAAG;AAClD,MAAI,WAAW;AACb,UAAM,WAAW,MAAM,MAAM,GAAG,OAAO,QAAQ,aAAa,SAAS,IAAI;AAAA,MACvE,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,SAAS,MAAM,OAAO,WAAW;AAAA,IACnC,CAAC;AAED,QAAI,CAAC,SAAS,GAAI,QAAO,cAAc;AACvC,WAAO,SAAS,KAAK;AAAA,EACvB,OAAO;AACL,WAAO,cAAc;AAAA,EACvB;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,KAAuB;AACtD,QAAM,EAAE,GAAG,IAAI,MAAM,WAAW;AAChC,QAAM,WAAW,MAAM,MAAM,GAAG,OAAO,QAAQ,aAAa,EAAE,IAAI;AAAA,IAChE,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,MAAM,OAAO,WAAW;AAAA,IACjC,MAAM,KAAK,UAAU,GAAG;AAAA,EAC1B,CAAC;AAED,MAAI,CAAC,SAAS,GAAI,OAAM,IAAI,MAAM,uBAAuB;AACzD,QAAM,OAAQ,MAAM,SAAS,KAAK;AAElC,SAAO,sBAAsB,QAAQ,CAAC,WAAW,OAAO,GAAG,CAAC;AAC5D,YAAU;AACV,SAAO;AACT;","names":[]}
|
package/dist/web/index.d.cts
CHANGED
package/dist/web/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shware/analytics",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.13.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -58,8 +58,6 @@
|
|
|
58
58
|
"dist"
|
|
59
59
|
],
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"axios": "^1.13.1",
|
|
62
|
-
"axios-retry": "^4.5.0",
|
|
63
61
|
"bowser": "^2.12.1",
|
|
64
62
|
"cookie": "^1.0.2",
|
|
65
63
|
"uuid": "^13.0.0",
|
|
@@ -68,11 +66,11 @@
|
|
|
68
66
|
},
|
|
69
67
|
"devDependencies": {
|
|
70
68
|
"@types/facebook-nodejs-business-sdk": "^23.0.0",
|
|
71
|
-
"@types/node": "^24.
|
|
69
|
+
"@types/node": "^24.10.0",
|
|
72
70
|
"@types/react": "^19.2.2",
|
|
73
71
|
"typescript": "^5.9.3",
|
|
74
|
-
"@repo/
|
|
75
|
-
"@repo/
|
|
72
|
+
"@repo/typescript-config": "0.0.0",
|
|
73
|
+
"@repo/eslint-config": "0.0.7"
|
|
76
74
|
},
|
|
77
75
|
"peerDependencies": {
|
|
78
76
|
"@react-native-firebase/analytics": "^23.3.1",
|